Hi Carsten, I looked through the suggestions from your last mail; comments inline.
Carsten Hey wrote: [...] > I think "#setopt no_beep" and "#stty -ixon" should also be added to The latter might better be replaced by zsh's "no_flow_control" option. [...] > This prompt color-scheme-able via zstyle. If the variabale TERM is set to > 'dumb', colors are disabled, though. You can invoke the prompt thus: > > prompt debian > TERM=dumb prompt debian You could also check something like a "blacklist" style, that could be a list of term names (or better yet, patterns). That way you could blacklist $TERMs like "emacs" for colours as well. > To configure the prompt's colors, this command can be used (don't forget to > run 'prompt debian' again to activate the changes): > > zstyle ':prompt:debian:*' STYLE COLOR Good! I like it when people refrain from polluting the global parameter name space just for prompt colours. This is good. :-) [...] > Displaying version control information via vcs_info and displaying the name of > a Debian chroot is supported by this prompt, but only the latter is enabled by > default. To enable vcs_info with the user-context 'prompt_debian', run: > > add-zsh-hook precmd prompt_debian_precmd_vcsinfo Makes sense. [...] > PROMPT='%B!%!%b '"$PROMPT" > zstyle ':vcs_info:*' nvcsformats '%B%F{2}%(1j.j%j .)%(2L.L%L .)%b%f' Maybe use a name rather than a number here: %F{green} > EOF > } > > prompt_debian_precmd_vcsinfo () { > setopt localoptions noxtrace > vcs_info prompt_debian || return $? > } > > prompt_debian_setup () { > prompt_opts=(cr subst percent) > > local > zstyle_pattern=":prompt:debian:${HOST:-unknown}:${USERNAME:-unknown}" > > local pwd_max_length=60 > local pwd_max_subdirs=5 > local wrap_at_char='-25' Maybe make these configurable via styles? > > local p_exit='${${options[printexitvalue]#on}:+%0(?..%? )}' > local p_pwd="%${pwd_max_length}<...<%$(( pwd_max_subdirs + 1 > ))(~:.../:)%${pwd_max_subdirs}~%<<" > local p_space_or_newline="%${wrap_at_char}(l: :${prompt_newline})" > local p_vcsinfo='${vcs_info_msg_0_-}' > local p_reset='%b%f%k' > local p_2nd_newline="%1(l:%${wrap_at_char}(l..${prompt_newline}):)" I think that looks reasonable. > if [[ ${TERM-} == dumb ]]; then > PROMPT="$p_exit\${debian_chroot:+(\$debian_chroot)}%n@%m $p_pwd" > PROMPT+="$p_space_or_newline$p_vcsinfo$p_reset$p_2nd_newline%# " > else > # color config: > local dircolor= usercolor= usercolor_root= exitcolor= exitcolor_root= > zstyle -s "$zstyle_pattern" dircolor dircolor > zstyle -s "$zstyle_pattern" usercolor usercolor > zstyle -s "$zstyle_pattern" usercolor-root usercolor_root > zstyle -s "$zstyle_pattern" exitcolor exitcolor > zstyle -s "$zstyle_pattern" exitcolor-root exitcolor_root > : "${dircolor:=4}" "${usercolor:=2}" "${usercolor_root:=1}" > : "${exitcolor:=1}" "${exitcolor_root:=2}" To set defaults you can do: zstyle -s "$zstyle_pattern" dircolor dircolor || dircolor=4 And again, maybe rather use names instead of numbers: zstyle -s "$zstyle_pattern" dircolor dircolor || dircolor=blue You also don't need to initialise to the empty string in the "local" above. > > PROMPT="%B%{%0(#:%F{$exitcolor_root}:%F{$exitcolor})%}$p_exit" > PROMPT+="%{%F{$dircolor}%}\${debian_chroot:+(}" > > PROMPT+="%{%0(#:%F{$usercolor_root}:%F{$usercolor})%}\${debian_chroot-}" > PROMPT+="%{%F{$dircolor}%}\${debian_chroot:+)}" > PROMPT+="%{%0(#:%F{$usercolor_root}:%F{$usercolor})%}%n@%m " > PROMPT+="%{%F{$dircolor}%}$p_pwd%b%f" > PROMPT+="$p_space_or_newline$p_vcsinfo$p_reset$p_2nd_newline%B%#%b " Assembling a non-trivial prompt like always looks unreadable. I've seen worse than this. > ##TODO uncomment if setopt transientrprompt works in a prompt function > ## Ease copying multi-line commands with the mouse. > ## <http://www.zsh.org/mla/workers/2015/msg01767.html> > #local rps2color=$dircolor > #setopt transient_rprompt I don't understand this. "transientrprompt" can — and IMO should be — set outside a prompt setup. > #PS2='${${options[singlelinezle]#off}:+%_> }' I'd do this in an "if ...; then...; fi" to improve readability. > #RPS2=${RPS2:-"%B<%{%F{$rps2color}%}%^%f%b"} [...] > # Autoload and configure vcs_info: > # The format strings 'formats' and 'actionformats' should end with a space > # to fit into the prompt's design. > # Colors: 1:=red, 2:=green, 3:=yellow, 4:=blue, 5:=magenta, 6:=cyan, ... Again, you can use the colour names instead of the numbers instead. [...] The contents of the ".thisfiledoesnotexist" file seems very similar to the one of the "prompt_debian_setup" file. Attached by mistake? Regards, Frank -- In protocol design, perfection has been reached not when there is nothing left to add, but when there is nothing left to take away. -- RFC 1925 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org