The themes do use modern features, that require this constraint.
The fallback prompt, that was being used when promptsys wasn't available
is _way_ more backwards compatible (and will remain like that). Use that
fallback in cases of $ZSH_VERSION < 4.3.7 as well.
This also means, that the GRMLPROMPT=1 and [[ -n $GRML_CHROOT ]] prompts
are not available with shells that old. Version 4.3.7 of zsh was
released on 2008-10-28. I think it's reasonable to require ~5 year old
software for the full-blown version of a setup. The last stable debian
release ships version 4.3.10 and the upcoming release will sport version
4.3.17. Grml ISOs come with version >= 5.0.0.
Signed-off-by: Frank Terbeck <ft@grml.org>
+is437(){
+ [[ $ZSH_VERSION == 4.3.<7->* || $ZSH_VERSION == 4.<4->* \
+ || $ZSH_VERSION == <5->* ]] && return 0
+ return 1
+}
+
is439(){
[[ $ZSH_VERSION == 4.3.<9->* || $ZSH_VERSION == 4.<4->* \
|| $ZSH_VERSION == <5->* ]] && return 0
is439(){
[[ $ZSH_VERSION == 4.3.<9->* || $ZSH_VERSION == 4.<4->* \
|| $ZSH_VERSION == <5->* ]] && return 0
+grml_prompt_fallback() {
+ setopt prompt_subst
+ precmd() {
+ (( ${+functions[vcs_info]} )) && vcs_info
+ }
+
+ p0="${RED}%(?..%? )${WHITE}${debian_chroot:+($debian_chroot)}"
+ p1="${BLUE}%n${NO_COLOR}@%m %40<...<%B%~%b%<< "'${vcs_info_msg_0_}'"%# "
+ if (( EUID == 0 )); then
+ PROMPT="${BLUE}${p0}${RED}${p1}"
+ else
+ PROMPT="${RED}${p0}${BLUE}${p1}"
+ fi
+ unset p0 p1
+}
+
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'
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'
prompt_themes+=( grml grml-chroot grml-large )
# Also, keep the array sorted...
prompt_themes=( "${(@on)prompt_themes}" )
prompt_themes+=( grml grml-chroot grml-large )
# Also, keep the array sorted...
prompt_themes=( "${(@on)prompt_themes}" )
+else
+ print 'Notice: no promptinit available :('
+ grml_prompt_fallback
+fi
+if is437; then
+ # The prompt themes use modern features of zsh, that require at least
+ # version 4.3.7 of the shell. Use the fallback otherwise.
if [[ $BATTERY -gt 0 ]]; then
zstyle ':prompt:grml:right:setup' items sad-smiley battery
add-zsh-hook precmd battery
if [[ $BATTERY -gt 0 ]]; then
zstyle ':prompt:grml:right:setup' items sad-smiley battery
add-zsh-hook precmd battery
- print 'Notice: no promptinit available :('
-
- # Support a fallback, in case promptsys isn't available.
- setopt prompt_subst
-
- precmd() { (( ${+functions[vcs_info]} )) && vcs_info; }
-
- p0="${RED}%(?..%? )${WHITE}${debian_chroot:+($debian_chroot)}"
- p1="${BLUE}%n${NO_COLOR}@%m %40<...<%B%~%b%<< "'${vcs_info_msg_0_}'"%# "
- if (( EUID == 0 )); then
- PROMPT="${BLUE}${p0}${RED}${p1}"
- else
- PROMPT="${RED}${p0}${BLUE}${p1}"
- fi
- unset p0 p1
-# make sure to use right prompt only when not running a command
-is41 && setopt transient_rprompt
-
+# Terminal-title wizardry
function ESC_print () {
info_print $'\ek' $'\e\\' "$@"
function ESC_print () {
info_print $'\ek' $'\e\\' "$@"