dotfiles: rename shell confs and add ssh-withautoadd.sh
[shutils.git] / dotfiles / shell / .zshrc
diff --git a/dotfiles/shell/.zshrc b/dotfiles/shell/.zshrc
new file mode 100644 (file)
index 0000000..291c4ab
--- /dev/null
@@ -0,0 +1,131 @@
+# sample by Peter Palfrader: http://svn.noreply.org/svn/weaselutils/trunk/dotfiles/zshrc
+
+[ -r /etc/zsh/zprofile ] && source /etc/zsh/zprofile
+[ -r $HOME/.profile ] && source $HOME/.profile
+
+
+bindkey -e
+zstyle :compinstall filename "$HOME/.zshrc"
+
+
+autoload -U compinit promptinit
+compinit
+zstyle ':completion::complete:*' use-cache 1
+
+autoload colors zsh/terminfo
+if [[ "$terminfo[colors]" -ge 8 ]]; then
+       colors
+fi
+
+eval `dircolors`
+LS_COLORS="${LS_COLORS}*.divx=01;35:"
+zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+
+zstyle ':completion:*' menu select
+zmodload -i zsh/complist
+
+#TERM=xterm-256color
+
+
+# bind special keys according to readline configuration
+#eval "$(sed -n 's/^/bindkey /; s/: / /p' /etc/inputrc)"
+
+bindkey "\e[1~" beginning-of-line
+bindkey "\e[4~" end-of-line
+bindkey "\e[5~" history-search-backward
+bindkey "\e[6~" history-search-forward
+bindkey "\e[3~" delete-char
+bindkey "\e[2~" quoted-insert
+bindkey "\e[5C" forward-word
+bindkey "\e[5D" backward-word
+bindkey "\e\e[C" forward-word
+bindkey "\e\e[D" backward-word
+bindkey "\e[1;5C" forward-word
+bindkey "\e[1;5D" backward-word
+bindkey "\eOc" forward-word
+bindkey "\eOd" backward-word
+bindkey "\e[1;3C" forward-word
+bindkey "\e[1;3D" backward-word
+bindkey "\e[8~" end-of-line
+bindkey "\eOH" beginning-of-line
+bindkey "\eOF" end-of-line
+bindkey "\e[H" beginning-of-line
+bindkey "\e[F" end-of-line
+bindkey "\e[7~" beginning-of-line
+bindkey "\e[8~" end-of-line
+
+
+
+setopt \
+       EXTENDEDGLOB \
+       BASH_AUTO_LIST \
+       LIST_AMBIGUOUS \
+       CHECK_JOBS \
+       INC_APPEND_HISTORY \
+       HIST_IGNORE_DUPS \
+       HIST_IGNORE_SPACE \
+       NO_HUP
+
+
+for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
+       eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
+       eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
+done
+PR_BOLD="%{$terminfo[bold]%}"
+PR_NO_COLOUR="%{$terminfo[sgr0]%}"
+
+HISTFILE=~/.zsh_history
+HISTSIZE=50000
+SAVEHIST=50000
+REPORTTIME=5
+TIMEFMT="$fg[magenta]%J  %U user  %S sys  %P cpu  %*E total  %M kB max$terminfo[sgr0]"
+
+autoload -Uz vcs_info && vcs_info
+zstyle ':vcs_info:*' enable git cvs svn hg
+zstyle ':vcs_info:*' use-prompt-escapes
+zstyle ':vcs_info:*' max-exports 1
+
+
+function setprompt()
+{
+       # default: " (%s)-[%b|%a]%u%c-"
+       zstyle ':vcs_info:*' actionformats "  %s: %b|%a"
+       # default: " (%s)-[%b]%u%c-"
+       zstyle ':vcs_info:*' formats       "  %s: %b"
+
+       setopt PROMPT_SUBST
+       PROMPT='
+%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%})%n@%m%{$reset_color%}$PR_SCREEN$PR_JOBS%{$fg_bold[yellow]%}${vcs_info_msg_0_}%{$reset_color%}  %{$fg_bold[blue]%}%~%{$reset_color%}
+$PR_EXIT%# '
+}
+setprompt
+
+# Obtain the autofs mountpoints
+autofs_mp=""
+[ -r /etc/auto.master ] && autofs_mp=$(/bin/grep -e "^/" /etc/auto.master)
+
+function precmd ()
+{
+       PR_EXIT="%{$fg_bold[red]%}%(?..[%?] )%{$reset_color%}"
+
+       # autofs always complains not being able to mount .hg/ and the like
+       if echo "$autofs_mp" | /bin/grep -qe "^$PWD\s"; then
+               vcs_info_msg_0_="[autofs]"
+       else
+               vcs_info
+       fi
+
+       PR_SCREEN=""
+       if [[ -n "${WINDOW}" ]]; then
+               PR_SCREEN=" S:${WINDOW}"
+       fi
+
+       PR_JOBS=""
+       if [[ $(jobs | wc -l) -gt 0 ]]; then
+               PR_JOBS=" J:%j"
+       fi
+
+}
+
+
+