about summary refs log tree commit diff
path: root/Functions/Prompts
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2001-10-15 11:59:11 +0000
committerClint Adams <clint@users.sourceforge.net>2001-10-15 11:59:11 +0000
commit8923b5ab554c1a64989e5193f09b6a72b7294b47 (patch)
treef85a6a25723e1d9f81c97d41cb6bc377c04a2cbf /Functions/Prompts
parentce1a485fadcad08b58afad55e28f6ccc6547e1c9 (diff)
downloadzsh-8923b5ab554c1a64989e5193f09b6a72b7294b47.tar.gz
zsh-8923b5ab554c1a64989e5193f09b6a72b7294b47.tar.xz
zsh-8923b5ab554c1a64989e5193f09b6a72b7294b47.zip
15094: backport from trunk
Diffstat (limited to 'Functions/Prompts')
-rw-r--r--Functions/Prompts/prompt_clint_setup73
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..4f14fff8d
--- /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
+
+  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]]%}>"
+
+  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['\]']"
+
+  p_userpwd="$pc['<']%{$fg_no_bold[$pcc[3]]%}%n@%m%{$fg_bold[$pcc[5]]%}:%{$fg_no_bold[$pcc[4]]%}%~$pc['>']"
+  [[ -f /proc/apm ]] && p_apm="%(2v.-%2v-.)"
+
+  p_shlvlhist="%{$reset_color%}zsh%(2L./$SHLVL.) %B%h%b "
+  p_rc="%(?..[%?%v1] )"
+  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_apm$p_end"
+  PS2='%(4_.\.)%3_> %E'
+
+  [[ -f /proc/apm ]] &&
+     precmd () { prompt_clint_precmd ; prompt_clint_apm_precmd } ||
+     precmd () { prompt_clint_precmd }
+  preexec () { }
+}
+
+prompt_clint_precmd () {
+  setopt noxtrace localoptions
+  local exitstatus=$?
+
+  [[ $exitstatus -ge 128 ]] && psvar[1]=" $signals[$exitstatus-127]" ||
+	psvar[1]=""
+
+  [[ -o interactive ]] && jobs -l
+
+}
+
+prompt_clint_apm_precmd () {
+  setopt noxtrace localoptions
+  local bat
+
+  bat=${${="$(</proc/apm)"}[7]/%/%%}
+  [[ $bat == ("100%"|"-1%") ]] && psvar[3]=() || psvar[2]=$bat
+}
+
+prompt_clint_setup "$@"