83 lines
2.7 KiB
Bash
83 lines
2.7 KiB
Bash
# ZSH Theme - Preview: https://raw.githubusercontent.com/KorvinSilver/blokkzh/master/preview.png
|
|
# Mod of the gnzh theme
|
|
|
|
setopt prompt_subst
|
|
|
|
(){
|
|
|
|
local PR_USER PR_USER_OP PR_PROMPT PR_HOST PR_AT
|
|
local userName hostName atSign promptSign
|
|
local returnSymbol promptSymbolFrom promptSymbolTo promptSymbol rvmSymbol
|
|
|
|
# Switch to ASCII characters in Linux term
|
|
if [[ ${TERM} == "linux" ]];
|
|
then
|
|
returnSymbol='<<'
|
|
promptSymbolFrom='/-'
|
|
promptSymbolTo='\-'
|
|
promptSymbol='>'
|
|
rvmSymbol='%F{red}rvm%f'
|
|
ZSH_THEME_GIT_PROMPT_PREFIX='-[%F{yellow}git '
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX='%f]'
|
|
ZSH_THEME_VIRTUALENV_PREFIX='-[%F{green}python '
|
|
ZSH_THEME_VIRTUALENV_SUFFIX='%f]'
|
|
else
|
|
returnSymbol='↵'
|
|
promptSymbolFrom='┌─'
|
|
promptSymbolTo='└─'
|
|
promptSymbol='➤'
|
|
rvmSymbol='%F{red}🔻%f'
|
|
ZSH_THEME_GIT_PROMPT_PREFIX='─[%F{yellow} '
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX='%f]'
|
|
ZSH_THEME_VIRTUALENV_PREFIX='─[%F{green}🐍 '
|
|
ZSH_THEME_VIRTUALENV_SUFFIX='%f]'
|
|
fi
|
|
|
|
# Check the UID
|
|
if [[ $UID -ne 0 ]]; then # normal user
|
|
PR_USER='%F{yellow}%n%f'
|
|
PR_USER_OP='%F{yellow}%#%f'
|
|
PR_PROMPT="${promptSymbol}"
|
|
PR_AT='@'
|
|
else # root
|
|
PR_USER=''
|
|
PR_USER_OP=''
|
|
PR_PROMPT="%F{red}${promptSymbol}%f"
|
|
PR_AT=''
|
|
fi
|
|
|
|
# Check if we are on SSH or not
|
|
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
|
|
if [[ $UID -eq 0 ]]; then
|
|
PR_HOST='%B%F{magenta}%M%f%b' # SSH, root
|
|
else
|
|
PR_HOST='%F{green}%M%f' # SSH, normal user
|
|
fi
|
|
elif [[ $UID -eq 0 ]]; then
|
|
PR_HOST='%B%F{red}%M%f%b' # no SSH, root
|
|
else
|
|
PR_HOST='%F{cyan}%M%f' # no SSH, normal user
|
|
fi
|
|
|
|
local return_code="%(?..%F{red}%? ${returnSymbol}%f)"
|
|
|
|
local user_host="${PR_USER}${PR_AT}${PR_HOST}"
|
|
local current_dir="%B%F{blue}%~%f%b"
|
|
local rvm_ruby=''
|
|
if ${HOME}/.rvm/bin/rvm-prompt &> /dev/null; then # detect user-local rvm installation
|
|
rvm_ruby='─['${rvmSymbol}' %F{red}$(${HOME}/.rvm/bin/rvm-prompt i v g s)%f]'
|
|
elif which rvm-prompt &> /dev/null; then # detect system-wide rvm installation
|
|
rvm_ruby='─['${rvmSymbol}' %F{red}$(rvm-prompt i v g s)%f]'
|
|
elif which rbenv &> /dev/null; then # detect Simple Ruby Version Management
|
|
rvm_ruby='─['${rvmSymbol}' %F{red}$(rbenv version | sed -e "s/ (set.*$//")%f]'
|
|
fi
|
|
|
|
local git_branch='$(git_prompt_info)'
|
|
local venv_python='$(virtualenv_prompt_info)'
|
|
|
|
PROMPT="${promptSymbolFrom}[${user_host}]${rvm_ruby}${venv_python}─[${current_dir}]${git_branch}
|
|
${promptSymbolTo}$PR_PROMPT "
|
|
|
|
RPROMPT="${return_code}"
|
|
}
|