__EOF0__
}
-function prompt_grml_setup () {
+function grml_prompt_setup () {
emulate -L zsh
autoload -Uz vcs_info
autoload -Uz add-zsh-hook
- add-zsh-hook precmd prompt_grml_precmd
+ add-zsh-hook precmd prompt_$1_precmd
+}
+
+function prompt_grml_setup () {
+ grml_prompt_setup grml
+}
+
+function prompt_grml-chroot_setup () {
+ grml_prompt_setup grml-chroot
+}
+
+function prompt_grml-large_setup () {
+ grml_prompt_setup grml-large
}
typeset -gA grml_prompt_pre_default \
percent ''
sad-smiley ''
battery ' '
+ newline ''
+ jobs '%F{cyan}'
+ history '%F{green}'
+ date '%F{blue}'
+ time '%F{blue}'
+ shell-level '%F{red}'
+ grml-chroot '%F{red}'
)
grml_prompt_post_default=(
change-root ''
user '%f%b'
at ''
- host ' '
- path ' %B'
+ host ''
+ path '%B'
vcs ''
- percent ' '
+ percent ''
sad-smiley ''
battery ''
+ newline ''
+ jobs '%f'
+ history '%f'
+ date '%f'
+ time '%f'
+ shell-level '%f'
+ grml-chroot '%f '
)
grml_prompt_token_default=(
change-root 'debian_chroot'
user '%n'
at '@'
- host '%m'
- path '%40<..<%~%<<'
+ host '%m '
+ path '%40<..<%~%<< '
vcs '0'
- percent '%%'
+ percent '%% '
sad-smiley '%(?..:()'
battery 'PERCENT'
+ newline $'\n'
+ jobs '[%j running job(s)] '
+ history '{history#%!} '
+ date '%D{%Y-%m-%d}'
+ time '%D{%H:%M:%S} '
+ shell-level '%(3L.+ .)'
+ grml-chroot 'GRML_CHROOT'
)
function grml_typeset_and_wrap () {
change-root)
grml_typeset_and_wrap $target $new '(' ')'
;;
+ grml-chroot)
+ if [[ -n ${(P)new} ]]; then
+ typeset -g "${target}=${(P)target}(CHROOT)"
+ fi
+ ;;
vcs)
v="vcs_info_msg_${new}_"
if (( ! vcscalled )); then
function prompt_grml_precmd () {
emulate -L zsh
- local -i vcscalled=0
local grmltheme=grml
+ local -a left_items right_items
+ left_items=(rc change-root user at host path vcs percent)
+ right_items=(sad-smiley)
+
+ prompt_grml_precmd_worker
+}
+
+function prompt_grml-chroot_precmd () {
+ emulate -L zsh
+ local grmltheme=grml-chroot
+ local -a left_items right_items
+ left_items=(grml-chroot user at host path percent)
+ right_items=()
+
+ prompt_grml_precmd_worker
+}
+
+function prompt_grml-large_precmd () {
+ emulate -L zsh
+ local grmltheme=grml-large
+ local -a left_items right_items
+ left_items=(rc jobs history shell-level change-root time date newline
+ user at host path vcs percent)
+ right_items=(sad-smiley)
- grml_prompt_addto PS1 rc change-root user at host path vcs percent
+ prompt_grml_precmd_worker
+}
+
+function prompt_grml_precmd_worker () {
+ emulate -L zsh
+ local -i vcscalled=0
+
+ grml_prompt_addto PS1 "${left_items[@]}"
if zstyle -T ":prompt:${grmltheme}:right:setup" use-rprompt; then
- grml_prompt_addto RPS1 sad-smiley
+ grml_prompt_addto RPS1 "${right_items[@]}"
fi
}
# Since we define the required functions in here and not in files in
# $fpath, we need to stick the theme's name into `$prompt_themes'
# ourselves, since promptinit does not pick them up otherwise.
- prompt_themes+=( grml )
+ prompt_themes+=( grml grml-chroot grml-large )
# Also, keep the array sorted...
prompt_themes=( "${(@on)prompt_themes}" )
zstyle ':prompt:grml:right:setup' items sad-smiley battery
add-zsh-hook precmd battery
fi
+ if [[ "$TERM" == dumb ]] ; then
+ for i in rc user path jobs history date time shell-level; do
+ zstyle ":prompt:grml(|-large|-chroot):*:items:$i" pre ''
+ zstyle ':prompt:grml(|-large|-chroot):*:items:$i' post ''
+ done
+ unset i
+ zstyle ':prompt:grml(|-large|-chroot):right:setup' use-rprompt false
+ elif (( EUID == 0 )); then
+ zstyle ':prompt:grml(|-large|-chroot):*:items:user' pre '%F{red}'
+ fi
else
print 'Notice: no promptinit available :('
fi