Last active
May 14, 2021 11:44
-
-
Save akostadinov/bc910869ec58ce2e6c884e78cb949b29 to your computer and use it in GitHub Desktop.
bash red hat prompt on Fedora 34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function _shell_char { | |
| if [ "$_EXIT_CODE" -eq 0 ]; then | |
| #printf "%s" "$" | |
| printf "$RED$shellchar$RESET" | |
| else | |
| # printf "$RED$FancyX$RESET" | |
| printf "$RED$collision$RESET" | |
| fi | |
| } | |
| function _generated_ps1 { | |
| local _EXIT_CODE=$? # must be called first | |
| # using \001 and \002 instead of \[ \] here | |
| # https://unix.stackexchange.com/a/447520/14907 | |
| local RED="\001\033[0;31m\002" | |
| local RESET="\001\e[0m\002" | |
| # see https://unix.stackexchange.com/a/468983/14907 | |
| local FancyX="\001\342\002\234\227" | |
| local Checkmark="\001\342\002\234\223" | |
| # such unicodes see https://stackoverflow.com/a/602924/520567 | |
| local lightning='\001\xe2\002\x9a\xa1' | |
| local collision='\001\xf0\x9f\002\x92\xa5' | |
| local shellchar='\001\xf0\x9f\002\x90\x9a' | |
| printf "$RED%s${RESET}%s" "$(__git_ps1)" "$(_shell_char)" | |
| } | |
| new_line_ps1() { | |
| local _EXIT_CODE=$? # must be called first | |
| local LIGHT_YELLOW="\001\033[1;93m\002" | |
| local RESET="\001\e[0m\002" | |
| local _ y x _ | |
| # https://github.com/dylanaraps/pure-bash-bible#get-the-current-cursor-position | |
| IFS='[;' read -p $'\e[6n' -d R -rs _ y x _ | |
| if [[ "$x" != 1 ]]; then | |
| printf "\n${LIGHT_YELLOW}^^ no newline at end of output ^^\n${RESET}" | |
| fi | |
| return $_EXIT_CODE | |
| } | |
| # Fancy prompt function (from nhr) | |
| function proml { | |
| GIT_PS1_SHOWUPSTREAM="auto" | |
| GIT_PS1_SHOWUNTRACKEDFILES=1 | |
| GIT_PS1_SHOWDIRTYSTATE=1 | |
| # GIT_PS1_STATESEPARATOR="" | |
| GIT_PS1_HIDE_IF_PWD_IGNORED=1 | |
| # from git package | |
| if [ -f /usr/share/git-core/contrib/completion/git-prompt.sh ] ; then | |
| . /usr/share/git-core/contrib/completion/git-prompt.sh | |
| elif [ -f /usr/share/git/git-prompt.sh ] ; then | |
| . /usr/share/git/git-prompt.sh | |
| fi | |
| local BLUE="\[\033[0;34m\]" | |
| local LIGHT_BLUE="\[\033[0;36m\]" | |
| local RED="\[\033[0;31m\]" | |
| local LIGHT_RED="\[\033[1;31m\]" | |
| local GREEN="\[\033[0;32m\]" | |
| local LIGHT_GREEN="\[\033[1;32m\]" | |
| local WHITE="\[\033[1;37m\]" | |
| local LIGHT_GRAY="\[\033[0;37m\]" | |
| local BLACK="\[\033[0;30m\]" | |
| local RESET="\[\e[0m\]" | |
| # this is 🎩︎ hat in UTF, use `printf 🎩︎| hexdump -C` or `printf 🎩︎| od -t x1` | |
| # local HAT=`printf '\001\xf0\x9f\x8e\xa9\002\xef\xb8\x8e\x0a'` | |
| local HAT="\[🎩︎\]\e\e" | |
| case $TERM in | |
| xterm*) | |
| TITLEBAR='\[\033]0;\u@\h:\w\007\]' | |
| ;; | |
| *) | |
| TITLEBAR="" | |
| ;; | |
| esac | |
| # Standard Prompt | |
| #PS1="$LIGHT_BLUE[$BLUE\u $GREEN\W$LIGHT_BLUE] $RED\$(parse_git_branch)${RESET} $ " | |
| # Red Hat Prompt | |
| PS1="\$(new_line_ps1)$LIGHT_BLUE[$RED$HAT$BLUE\u $GREEN\W$LIGHT_BLUE]\$(_generated_ps1) " | |
| PS2='> ' | |
| PS4='+ ' | |
| } | |
| # Call the fancy prompt function | |
| proml |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Really funny!! And nice redhat logo!