diff options
Diffstat (limited to 'Functions/Prompts/prompt_fade_setup')
-rw-r--r-- | Functions/Prompts/prompt_fade_setup | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Functions/Prompts/prompt_fade_setup b/Functions/Prompts/prompt_fade_setup new file mode 100644 index 000000000..5b49f6105 --- /dev/null +++ b/Functions/Prompts/prompt_fade_setup @@ -0,0 +1,58 @@ +# Generic colour fade-bar prompt theme from bashprompt +# Created by Jim Foltz <aa204@acorn.net> +# Changed by Spidey 08/06 +# Converted to zsh prompt theme by <adam@spiers.net> + +prompt_fade_help () { + cat <<EOH +This prompt is color-scheme-able. You can invoke it thus: + + prompt fade [<fade-bar-and-cwd> [<userhost> [<date>]]] + +where the parameters are the colors for the fade-bar and current +working directory, user@host text, and date text respectively. The +default colors are green, white, and white. This theme works best +with a dark background. + +Recommended fonts for this theme: nexus or vga or similar. If you +don't have any of these, the 8-bit characters will probably look +stupid. +EOH +} + +# emacs shell-script mode gets confused with ' in heredoc above + +prompt_fade_setup () { + local fadebar_cwd=${1:-'green'} + local userhost=${2:-'white'} + local date=${3:-'white'} + + for code in 333 262 261 260 333 262 261 260 333 262 261 260; do + local varname=char_$code + : ${(P)varname=$(echo -n "\\0$code")} + done + + PS1="%{$fg[$fadebar_cwd]$bg[$fadebar_cwd]$bold_color%}$char_333$char_262$char_261$char_260%{$fg[$userhost]$bg[$fadebar_cwd]$bold_color%}%n@%m%{$reset_color$fg[$fadebar_cwd]$bg[grey]%}$char_333$char_262$char_261$char_260%{$fg[$date]$bg[grey]$bold_color%} %D{%a %b %d} %D{%I:%M:%S%P} $prompt_newline%{$fg[$fadebar_cwd]$bg[grey]$bold_color%}%~/%{$reset_color%} " + PS2="%{$fg[$fadebar_cwd]$bg[grey]%}$char_333$char_262$char_261$char_260%{$reset_color%}>" + + precmd () { setopt promptsubst } + preexec () { } +} + +prompt_fade_preview () { + local color colors + colors=(red yellow green blue magenta) + + if (( ! $#* )); then + for (( i = 1; i <= $#colors; i++ )); do + color=$colors[$i] + prompt_preview_theme fade $color + print + done + prompt_preview_theme fade white grey blue + else + prompt_preview_theme fade "$@" + fi +} + +prompt_fade_setup "$@" |