diff options
-rw-r--r-- | Functions/Prompts/prompt_clint_setup | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Functions/Prompts/prompt_clint_setup b/Functions/Prompts/prompt_clint_setup new file mode 100644 index 000000000..6cf76db72 --- /dev/null +++ b/Functions/Prompts/prompt_clint_setup @@ -0,0 +1,73 @@ +# clint prompt theme + +prompt_clint_help () { + cat <<'EOF' + + prompt clint [<color1> [<color2> [<color3> [<color4> [<color5>]]]]] + + defaults are red, cyan, green, yellow, and white, respectively. + +EOF +} + +prompt_clint_setup () { + local -a pcc + local -A pc + local p_date p_tty p_plat p_ver p_userpwd p_apm p_shlvlhist p_rc p_end p_win + + pcc[1]=${1:-'red'} + pcc[2]=${2:-'cyan'} + pcc[3]=${3:-'green'} + pcc[4]=${4:-'yellow'} + pcc[5]=${5:-'white'} + + pc['\[']="%{$fg_no_bold[$pcc[1]]%}[" + pc['\]']="%{$fg_no_bold[$pcc[1]]%}]" + pc['<']="%{$fg_no_bold[$pcc[1]]%}<" + pc['>']="%{$fg_no_bold[$pcc[1]]%}>" + pc['\(']="%{$fg_no_bold[$pcc[1]]%}(" + pc['\)']="%{$fg_no_bold[$pcc[1]]%})" + + p_date="$pc['\[']%{$fg_no_bold[$pcc[2]]%}%D{%a %y/%m/%d %R %Z}$pc['\]']" + p_tty="$pc['\[']%{$fg_no_bold[$pcc[3]]%}%l$pc['\]']" + p_plat="$pc['\[']%{$fg_no_bold[$pcc[2]]%}${MACHTYPE}/${OSTYPE}/$(uname -r)$pc['\]']" + p_ver="$pc['\[']%{$fg_no_bold[$pcc[2]]%}${ZSH_VERSION}$pc['\]']" + + [[ -n "$WINDOW" ]] && p_win="$pc['\(']%{$fg_bold[$pcc[4]]%}$WINDOW$pc['\)']" + + p_userpwd="$pc['<']%{$fg_no_bold[$pcc[3]]%}%n@%m$p_win%{$fg_bold[$pcc[5]]%}:%{$fg_no_bold[$pcc[4]]%}%~$pc['>']" + p_git="%(2v.-%U%2v%u-.)" + + p_shlvlhist="%{$reset_color%}zsh%(2L./$SHLVL.) %B%h%b " + p_rc="%(?..[%?%1v] )" + p_end="%{$reset_color%}%B%#%b %{$fg_no_bold[$pcc[2]]%}" + + POSTEDIT="$reset_color" + + prompt="$p_date$p_tty$p_plat$p_ver +$p_userpwd +$p_shlvlhist$p_rc$p_git$p_end" + PS2='%(4_.\.)%3_> %E' + + precmd () { prompt_clint_precmd } + preexec () { } +} + +prompt_clint_precmd () { + setopt noxtrace noksharrays localoptions + local exitstatus=$? + local git_dir git_ref + + psvar=() + [[ $exitstatus -ge 128 ]] && psvar[1]=" $signals[$exitstatus-127]" || + psvar[1]="" + + [[ -o interactive ]] && jobs -l + + git_dir=$(git-rev-parse --git-dir 2> /dev/null) || return + git_ref=$(git-symbolic-ref HEAD 2> /dev/null) || git_ref="(no branch)" + psvar[2]=${ref#refs/heads/} + +} + +prompt_clint_setup "$@" |