Skip to content

Instantly share code, notes, and snippets.

@maxleiko
Last active April 14, 2020 21:20
Show Gist options
  • Save maxleiko/9855724 to your computer and use it in GitHub Desktop.
Save maxleiko/9855724 to your computer and use it in GitHub Desktop.
# ZSH Theme
# Based on gnzh theme
# load some modules
autoload -U colors zsh/terminfo # Used in the colour alias below
colors
setopt prompt_subst
# make some aliases for the colours: (coud use normal escap.seq's too)
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$fg[${(L)color}]%}'
done
eval PR_NO_COLOR="%{$terminfo[sgr0]%}"
eval PR_BOLD="%{$terminfo[bold]%}"
### Git
ZSH_THEME_GIT_PROMPT_PREFIX="%{$PR_YELLOW%}‹"
ZSH_THEME_GIT_PROMPT_SUFFIX="›%{$PR_NO_COLOR%}"
### User UID
if [[ $UID -ge 1000 ]]; then # normal user
eval PR_USER='${PR_GREEN}%n${PR_NO_COLOR}'
eval PR_USER_OP='${PR_GREEN}%#${PR_NO_COLOR}'
local PR_PROMPT='$PR_NO_COLOR➤ $PR_NO_COLOR'
elif [[ $UID -eq 0 ]]; then # root
eval PR_USER='${PR_RED}%n${PR_NO_COLOR}'
eval PR_USER_OP='${PR_RED}%#${PR_NO_COLOR}'
local PR_PROMPT='$PR_RED➤ $PR_NO_COLOR'
fi
### Ssh
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
eval PR_HOST='${PR_YELLOW}%M${PR_NO_COLOR}' #SSH
else
eval PR_HOST='${PR_CYAN}%M${PR_NO_COLOR}' # no SSH
fi
local user_host='${PR_USER}${PR_MAGENTA}@${PR_CYAN}${PR_HOST}'
local current_dir='%{$PR_BOLD$PR_BLUE%}%~%{$PR_NO_COLOR%}'
local git_branch='$(git_prompt_info)%{$PR_NO_COLOR%}'
local return_code="%(?..%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})"
PROMPT="╭${user_host} ${current_dir} ${git_branch}
╰$PR_PROMPT"
RPS1="${return_code}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment