From 76c7e00a69a57292381caee925be76b6f1f6f274 Mon Sep 17 00:00:00 2001 From: Frank Terbeck Date: Tue, 5 Mar 2013 02:08:28 +0100 Subject: [PATCH] zshrc: New prompt: Add new theme: grml-chroot This should replace the GRML_CHROOT specific prompt. Signed-off-by: Frank Terbeck --- etc/zsh/zshrc | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 9682d09..cfb1b97 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1350,6 +1350,10 @@ 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 } @@ -1376,6 +1380,7 @@ grml_prompt_pre_default=( date '%F{blue}' time '%F{blue}' shell-level '%F{red}' + grml-chroot '%F{red}' ) grml_prompt_post_default=( @@ -1396,6 +1401,7 @@ grml_prompt_post_default=( date '%f' time '%f' shell-level '%f' + grml-chroot '%f ' ) grml_prompt_token_default=( @@ -1416,6 +1422,7 @@ grml_prompt_token_default=( date '%D{%Y-%m-%d}' time '%D{%H:%M:%S} ' shell-level '%(3L.+ .)' + grml-chroot 'GRML_CHROOT' ) function grml_typeset_and_wrap () { @@ -1455,6 +1462,11 @@ function grml_prompt_addto () { 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 @@ -1481,6 +1493,16 @@ function prompt_grml_precmd () { 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 @@ -1509,7 +1531,7 @@ if zrcautoload promptinit && promptinit 2>/dev/null ; then # 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 grml-large ) + prompt_themes+=( grml grml-chroot grml-large ) # Also, keep the array sorted... prompt_themes=( "${(@on)prompt_themes}" ) @@ -1519,13 +1541,13 @@ if zrcautoload promptinit && promptinit 2>/dev/null ; then fi if [[ "$TERM" == dumb ]] ; then for i in rc user path jobs history date time shell-level; do - zstyle ":prompt:grml(|-large):*:items:$i" pre '' - zstyle ':prompt:grml(|-large):*:items:$i' post '' + zstyle ":prompt:grml(|-large|-chroot):*:items:$i" pre '' + zstyle ':prompt:grml(|-large|-chroot):*:items:$i' post '' done unset i - zstyle ':prompt:grml:right:setup' use-rprompt false + zstyle ':prompt:grml(|-large|-chroot):right:setup' use-rprompt false elif (( EUID != 0 )); then - zstyle ':prompt:grml:*:items:user' pre '%F{red}' + zstyle ':prompt:grml(|-large|-chroot):*:items:user' pre '%F{red}' fi else print 'Notice: no promptinit available :(' -- 2.1.4