zsh-setup: applied patch from Frank Terbeck for improved
[grml-etc-core.git] / etc / zsh / zshrc
index 936c704..131a19b 100644 (file)
@@ -3,7 +3,7 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Sam Okt 21 16:20:30 CEST 2006 [mika]
+# Latest change: Son Okt 29 17:49:13 CET 2006 [mika]
 ################################################################################
 # This file is sourced only for interactive shells. It
 # should contain commands to set up aliases, functions,
 
 # {{{ check for version/system
 # check for versions (compatibility reasons)
-  is4(){
-    [[ $ZSH_VERSION == 4.* ]] && return 0
-    return 1
-  }
-
-# current release
-  is42(){
-    [[ $ZSH_VERSION == 4.<2->* ]] && return 0
-    return 1
-  }
+  if autoload is-at-least && is-at-least ; then
+     is4() { is-at-least 4 }
+     is42() { is-at-least 4.2 }
+  else
+    is4(){
+      [[ $ZSH_VERSION == 4.* ]] && return 0
+      return 1
+    }
+    is42(){
+      [[ $ZSH_VERSION == 4.<2->* ]] && return 0
+      return 1
+    }
+  fi
 
 # grml specific stuff
   isgrml(){
     return 1
   }
 
+  if isgrml ; then
+    isgrmlsmall() {
+    [[ ${${${(f)"$(</etc/grml_version)"}%% *}##*-} == 'small' ]] && return 0 ; return 1
+  }
+  else
+    isgrmlsmall() { return 1 }
+  fi
+
 # check for user, if not running as root set $SUDO to sudo
  (( EUID != 0 )) && SUDO='sudo' || SUDO=''
 
@@ -52,7 +63,6 @@
 
 # {{{ set some variables
   export EDITOR=${EDITOR:-vim}
-  export SHELL=${SHELL:-/bin/zsh}
   export MAIL=${MAIL:-/var/mail/$USER}
   [[ -f ~/.terminfo/m/mostlike ]] && MYLESS='LESS=C TERMINFO=~/.terminfo TERM=mostlike less' || MYLESS='less'
   [[ -x /usr/bin/dircolors ]] && eval `dircolors -b`
@@ -286,9 +296,11 @@ fi
   # run 'NOPRECMD=1 zsh' to disable the precmd + preexec commands
   is4 && ! [[ -n "$NOPRECMD" ]] && precmd () {
       if [ -n "$BATTERY" ] ; then
-        RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
+        # RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
+        RPROMPT="${PERCENT}${SCREENTITLE}"
       else
-        RPROMPT="%(?..:()% ${SCREENTITLE}"
+        # RPROMPT="%(?..:()% ${SCREENTITLE}"
+        RPROMPT="${SCREENTITLE}"
       fi
       # adjust title of xterm
       # see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
@@ -326,13 +338,24 @@ fi
       esac
   }
 
+# set colors
+  if autoload colors && colors ; then
+     BLUE="%{${fg[blue]}%}"
+     RED="%{${fg_bold[red]}%}"
+     GREEN="%{${fg[green]}%}"
+     CYAN="%{${fg[cyan]}%}"
+     WHITE="%{${fg[white]}%}"
+     NO_COLOUR="%{${reset_color}%}"
+  else
+     BLUE="%{\e[1;34m%}"
+     RED="%{\e[1;31m%}"
+     GREEN="%{\e[1;32m%}"
+     CYAN="%{\e[1;36m%}"
+     WHITE="%{\e[1;37m%}"
+     NO_COLOUR="%{\e[0m%}"
+  fi
+
   EXITCODE="%(?..%?%1v )"
-  local BLUE="%{\e[1;34m%}"
-  local RED="%{\e[1;31m%}"
-  local GREEN="%{\e[1;32m%}"
-  local CYAN="%{\e[1;36m%}"
-  local WHITE="%{\e[1;37m%}"
-  local NO_COLOUR="%{\e[0m%}"
   PS2='`%_> '       # secondary prompt, printed when the shell needs more information to complete a command.
   PS3='?# '         # selection prompt used within a select loop.
   PS4='+%N:%i:%_> ' # the execution trace prompt (setopt xtrace). default: '+%N:%i>'
@@ -677,8 +700,8 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"."
   setenv()  { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" }  # csh compatibility
   freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done }
   manzsh()  {  /usr/bin/man zshall |  vim -c "se ft=man| se hlsearch" +/"$1" - ; }
+#  manzsh()  { /usr/bin/man zshall |  most +/"$1" ; }
 #  manzsh()  { man zshall | $MYLESS -p $1 ; }
-#  manzsh() {  /usr/bin/man zshall |  most +/"$1" ; }
 
 # use "dchange <package-name>" to view Debian's changelog of the package:
   dchange() {
@@ -723,13 +746,16 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"."
 # use it e.g. via 'Restart apache2'
  if [ -d /etc/init.d ] ; then
   for i in Start Restart Stop Reload ; do
-    eval "$i() { $SUDO /etc/init.d/\$1 ${i:l} $2 ; }"
+    eval "$i() { $SUDO /etc/init.d/\$1 ${i:l} \$2 ; }"
   done
 # now the completion for this:
   compctl -g "$(echo /etc/init.d/*(:t))" Start Restart Stop Reload
  fi
 # }}}
 
+# make sure our environment is clean regarding colors
+  for color in BLUE RED GREEN CYAN WHITE ; unset $color
+
 # source another config file if present {{{
   if [ -r /etc/zsh/zshrc.local ]; then
    source /etc/zsh/zshrc.local