about summary refs log tree commit diff
path: root/Functions/Prompts/prompt_fade_setup
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Prompts/prompt_fade_setup')
-rw-r--r--Functions/Prompts/prompt_fade_setup58
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 "$@"