From ec2ae70fe9c96cbde89048f19c578ee3a2abb080 Mon Sep 17 00:00:00 2001 From: Nick Stenning Date: Sat, 24 Sep 2011 17:16:01 +0100 Subject: [PATCH] Add borior theme --- themes/borior.zsh-theme | 94 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 themes/borior.zsh-theme diff --git a/themes/borior.zsh-theme b/themes/borior.zsh-theme new file mode 100755 index 000000000..8e9f1dd95 --- /dev/null +++ b/themes/borior.zsh-theme @@ -0,0 +1,94 @@ +#!/usr/bin/env zsh + +prompt_borior_help () { + cat <<'EOF' +This prompt is color-scheme-able. You can invoke it thus: + + prompt borior [ [ [ [ []]]]] + +EOF +} + +precmd () { + case ${TERM} in + *xterm*|rxvt*|ansi) + # Set term title to "user@host:cwd" + print -Pn "\e]0;${PR_TITLEBAR:q}\a" + ;; + screen*) + # Set screen title to "cwd" + print -Pn "\ek${PR_CWD:q}\e\\" + ;; + esac + + [[ -z "${OLD_RPROMPT}" ]] && OLD_RPROMPT=$RPROMPT + + GIT_BRANCH="$(git branch --no-color 2>/dev/null | noglob grep "\*" | cut -d" " -f2-)" + if [[ -n "${GIT_BRANCH}" ]]; then + RPROMPT="%{$fg_bold[red]%}${GIT_BRANCH} %{$reset_color%}${OLD_RPROMPT}" + else + RPROMPT="${OLD_RPROMPT}" + fi +} + +preexec () { + case ${TERM} in + xterm*|rxvt*) + # Set term title to "[cmdname] user@host:cwd" + print -Pn "\e]0;[${1:q}] - ${PR_TITLEBAR:q} \a" + ;; + screen*) + # Set screen title to "[cmdname]" + print -Pn "\ek[${1:q}]\e\\" + ;; + esac +} + +prompt_borior_setup () { + setopt prompt_subst localoptions + + # Setup helpers for color + autoload colors zsh/terminfo + + colors + + typeset -A prompt_borior + typeset -A prompt_borior_colours + + local colour_wd=${1:-"blue"} + local colour_prompt=${2:-"green"} + local colour_root=${3:-"red"} + local colour_rprompt=${4:-"grey"} + local colour_hilight=${5:-"yellow"} + + prompt_borior_colours[wd]="%{$fg_bold[$colour_wd]%}" + prompt_borior_colours[prompt]="%{%(!.$fg_bold[$colour_root].$fg_bold[$colour_prompt])%}" + prompt_borior_colours[rprompt]="%{$fg_bold[$colour_rprompt]%}" + prompt_borior_colours[hilight]="%{$fg_bold[$colour_hilight]%}" + prompt_borior_colours[reset]="%{$reset_color%}" + + for k in ${(k)prompt_borior_colours}; do + local "pbc_$k"=$prompt_borior_colours[$k] + done + + prompt_borior[cwd]="%25<...<%~%<<" + prompt_borior[exit_code]="%(?.%?.$pbc_hilight%?)" + + for k in ${(k)prompt_borior}; do + local "pb_$k"=$prompt_borior[$k] + done + + prompt_borior[PS1]="$pbc_wd$pb_cwd $pbc_prompt%#$pbc_reset " + prompt_borior[PS2]="$pbc_prompt>> $pbc_user%_ $pbc_prompt:$pbc_reset " + prompt_borior[RPROMPT]="$pbc_rprompt(${pb_exit_code}${pbc_rprompt}) %T$pbc_reset" + + PR_TITLEBAR="%(!.[ROOT].) $pb_cwd" + PR_CWD=$prompt_borior[cwd] + + PS1=$prompt_borior[PS1] + PS2=$prompt_borior[PS2] + RPROMPT=$prompt_borior[RPROMPT] + +} + +prompt_borior_setup "$@"