# -*-Shell-Script-*- if [ ! -z "$MC_CONTROL_FILE" ]; then cd $HOME fi #unset MANPATH #export MANPATH="`manpath 2>/dev/null`" #export PATH="$HOME:/bin:/usr/bin:/usr/sbin:/sbin:/usr/games:/usr/bin/X11:/usr/local/bin:/usr/local/sbin:/usr/local/libexec/xscreensaver:/usr/local/jdk/bin:." PATH="/bin:/usr/bin:/usr/local/bin" PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin" PATH="$PATH:/usr/X11R6/bin" PATH="$PATH:/usr/games" PATH="$PATH:/usr/local/java/bin" # MacPorts if [ -d "/opt/local/bin" ]; then PATH="$PATH:/opt/local/bin:/opt/local/sbin" fi if [ -f "$HOME/.local/etc/zshrc.paths" ]; then . "$HOME/.local/etc/zshrc.paths" fi PATH="$PATH:$HOME/.local/bin:$HOME/.local/sbin" export PATH if which emacs > /dev/null 2>&1; then export EDITOR="emacs -nw" elif which joe > /dev/null 2>&1; then export EDITOR="joe -nobackups" elif which vim > /dev/null 2>&1; then export EDITOR="vim" elif which nano > /dev/null 2>&1; then export EDITOR="nano" elif which vi > /dev/null 2>&1; then export EDITOR="vi" fi alias e="$EDITOR" alias logout='clear;logout' alias lo='logout' if [ -d "$HOME/.bak" ]; then alias joe='joe -backpath ~/.bak' else alias joe='joe -nobackups' fi #alias indent='indent -bad -bap -br -ce -cs -fca -fc1 -l78 -nbc -ncdb -npsl -nsc -ncs -pcs -sob' #alias traceroute='/usr/local/sbin/traceroute -A -h whois.radb.net -N -S -l' if [ "$TERM" = "linux" ]; then setterm -hbcolor bright white -ulcolor cyan -blank 5 setterm -powersave on -powerdown 10 >/dev/null 2>&1 fi #biff n #mesg y #if [ ! -z "$DISPLAY" -o "$TERM" = "screen" -o "$TERM" = "xterm" ]; then # UPDATE_XTERM=1 #fi #if [ "$TERM" = "dumb" ]; then # unset UPDATE_XTERM #fi # Ask terminfo about the hardware status line if which tput >/dev/null 2>&1; then TERM_STATUS_START="$(tput tsl)" TERM_STATUS_END="$(tput fsl)" # TODO: use this TERM_STATUS_LEN="$(tput wsl)" if [ "$TERM_STATUS_LEN" = "-1" ]; then # If unspecified, assume terminal width is OK TERM_STATUS_LEN="$(tput cols)" fi # grumble if [ -z "$TERM_STATUS_START" ]; then if [ "$TERM" '=~' '^(screen.*|xterm.*)' ]; then TERM_STATUS_START="\e]2;" TERM_STATUS_END="\a" fi fi fi function preexec() { # psvar[0]="$0" psvar[1]="$1" psvar[2]="$2" if [ ! -z "$TERM_STATUS_START" ]; then print -Pn "${TERM_STATUS_START}${XFORMAT_RUN}${TERM_STATUS_END}" # [%80>...>${2//[^ -~]/}%>>]\a" fi # if [ "$1" "=~" "(hg|git) .*" ]; then # QUEUE_RCSPROMPT=1 # fi } # called before a prompt is drawn function precmd() { vcs_info # if [ ! -z "$QUEUE_RCSPROMPT" ]; then # rcsprompt # unset QUEUE_RCSPROMPT # fi } function rcsprompt() { return local BRANCH BRANCH="`git branch 2>/dev/null | sed -n '/^\* /s/^..//p'`" if [ -z "$BRANCH" ]; then BRANCH="`hg branch 2>/dev/null`" fi if [ ! -z "$BRANCH" ]; then RCSPROMPT="%{%}[%{%}$BRANCH%{%}]%{%} " else RCSPROMPT='' fi } function chpwd() { # rcsprompt } CLOCKFMT="%I:%M%p" case "$OSTYPE" in *-gnu) # GNU environment alias ls='ls --color=auto -F' # glibc offers %P as a lowercase am/pm indicator CLOCKFMT="%I:%M%P" ;; darwin*) # If we have GNU coreutils, prefer them for some things if which gls >/dev/null 2>&1; then alias ls='gls --color=auto -F' # FIXME: gdf has no 64-bit support # alias df=gdf else alias ls='ls -GF' fi ;; esac function prompt_charset() { if ! which iconv >/dev/null 2>&1; then return fi PROMPT="$(echo "$PROMPT" | iconv -f utf-8 -t //TRANSLIT//IGNORE)" RPROMPT="$(echo "$RPROMPT" | iconv -f utf-8 -t //TRANSLIT//IGNORE)" XFORMAT="$(echo "$XFORMAT" | iconv -f utf-8 -t //TRANSLIT//IGNORE)" XFORMAT_RUN="$(echo "$XFORMAT_RUN" | iconv -f utf-8 -t //TRANSLIT//IGNORE)" } # TODO: charset consideration for prompts? function prompt1 { export XFORMAT="[%n@%m:%35<...<%~%<<] [%y]" export XFORMAT_RUN="$XFORMAT [%80>...>%1v%>>]" export PROMPT="%{${TERM_STATUS_START:+${TERM_STATUS_START}${XFORMAT}${TERM_STATUS_END}}%}\$RCSPROMPT\${vcs_info_msg_0_}%B%F{black}(%b%n%B@%b%m%B%(#.!.:)%b%~%B%F{black})%b%F{gray} " export RPROMPT="%B%F{black}(%b%D{$CLOCKFMT}%B/%b%h%B/%b%y%B%F{black})%b" prompt_charset typeset -f prompt_local >/dev/null 2>&1 && prompt_local } function prompt2 { export XFORMAT="[%n@%m:%35<...<%~%<<] [%y]" export XFORMAT_RUN="$XFORMAT [%80>...>%1v%>>]" export PROMPT="%{${TERM_STATUS_START:+${TERM_STATUS_START}${XFORMAT}${TERM_STATUS_END}}%}%U%B·%b%n%B@%b%m(%B%~%b)%B·%b%u " export RPROMPT="%U%B·%bt(%B%t%b)%B:%bc(%B%!%b)%B:%bt(%B%y%b)%B·%b%u" prompt_charset typeset -f prompt_local >/dev/null 2>&1 && prompt_local } function prompt3 { export XFORMAT="[%n@%m:%35<...<%~%<<] [%y]" export XFORMAT_RUN="$XFORMAT [%80>...>%1v%>>]" export PROMPT="%{${TERM_STATUS_START:+${TERM_STATUS_START}${XFORMAT}${TERM_STATUS_END}}%}%U%n%B(%b%m%B%):%b%~%B%(#.%u%B»%b.·)%u%b " export RPROMPT="%U%B·%b%!%B%u∙%b%U%y%B%u∙%b%U%@%B%U·%u%b" prompt_charset typeset -f prompt_local >/dev/null 2>&1 && prompt_local } function prompt4 { export XFORMAT="[%n@%m:%35<...<%~%<<] [%1v]" export XFORMAT_RUN="$XFORMAT [%80>...>%N%>>]" export PROMPT="%{${TERM_STATUS_START:+${TERM_STATUS_START}${XFORMAT}${TERM_STATUS_END}}%}%{%B%F{black}%}·%{%b%F{cyan}%}%n%{%B%}@%{%b%F{cyan}%}%m%{%B%F{black}%}(%{%b%F{cyan}%}%y%{%B%F{black}%}) [%{%B%F{blue}%}%~%{%B%F{black}%}]%(#.%{%B%F{cyan}%}·.·)%{%b%} " export RPROMPT="%{%B%F{black}%}«%{%b%F{magenta}%}zsh%{%B%}∙%{%b%F{magenta}%}%!%{%B%}∙%{%b%F{magenta}%}%@%{%B%F{black}%}» %{%b%} " prompt_charset typeset -f prompt_local >/dev/null 2>&1 && prompt_local } export LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=00;31:so=01;37:bd=01;35:cd=00;35:ex=01;32:or=47;30:*.cmd=01;30:*.exe=01;30:*.com=01;30:*.btm=01;30:*.bat=01;30:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.rar=01;31:*.jpg=34:*.gif=34:*.bmp=34:*.xbm=34:*.xpm=34:*.tif=34:*.c=32:*.h=32:*.bx=32:*.irc=34:*.tcl=34:*.ans=36:*.mp3=01;35:*.wav=01;35:*.mid=01;35:*.flac=01;35:*.ogg=01;35:*.aac=01;35:*.m4a=01;35:*.o=32" export GREP_COLOR='1;32' export GREP_OPTIONS='--text --color=auto' ulimit -c unlimited umask 022 prompt1 # . /etc/qt.conf #export JAVA_HOME=/usr/local/java #export QTDIR=/usr/local/qt #export PATH=$PATH:$QTDIR/bin #export MANPATH=$MANPATH:$QTDIR/doc/man #export PATH=$PATH:/usr/local/kde/bin #echo "(K" #export ftp_proxy="http://proxy.bluecherry.net:3128" #export http_proxy="http://proxy.bluecherry.net:3128" #export ftp_proxy="http://blackhole.home:3128" #export http_proxy="http://blackhole.home:3128" #if [ ! $UPDATE_XTERM ]; then # export LANG="en_US" # iso-8859-1 #else export LANG="en_US.UTF-8" #fi if which ccal >/dev/null 2>&1; then ccal --american echo fi if which fortune >/dev/null 2>&1; then fortune fi #echo #quota -v # zsh options # emacs key mode bindkey -e # overrides for defective termcaps bindkey "^[[1~" beginning-of-line # Home (some terms) bindkey "^[[4~" end-of-line # End (some terms) bindkey "^[[7~" beginning-of-line # Home (some terms) bindkey "^[[8~" end-of-line # End (some terms) bindkey "^[[3~" delete-char # Delete bindkey "^[[2~" overwrite-mode # Insert bindkey "^[[5~" up-history # Page up bindkey "^[[6~" down-history # Page down zstyle ':completion:*' auto-description 'specify: %d' zstyle ':completion:*' completer _complete _ignored zstyle ':completion:*' file-sort modification zstyle ':completion:*' format '== %d ==' zstyle ':completion:*' group-name '' zstyle ':completion:*' ignore-parents parent pwd zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' max-errors 1 zstyle ':completion:*' preserve-prefix '//[^/]##/' zstyle ':completion:*' squeeze-slashes true autoload -Uz compinit compinit autoload -Uz zmv # for sub-second sleeps without forking zmodload zsh/zselect function wait_max_jobs() { if [[ "$1" != <-> || "$1" -le 0 ]]; then echo "usage: $0 " >&2 echo " blocks until there are no more than background jobs" >&2 return 1 fi while [ "${(%)#:+%j}" -ge "$1" ]; do zselect -t 25 done return 0 } fignore='~' REPORTTIME=5 WORDCHARS=${WORDCHARS//[\/=;]} zstyle ':vcs_info:*' actionformats '%B%F{black}[%%b%F{white}%c%u%b:%a%B%F{black}]%%b ' zstyle ':vcs_info:*' formats '%B%F{black}[%%b%F{white}%c%u%b%B%F{black}]%%b ' zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b' zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' get-revision false zstyle ':vcs_info:*' stagedstr '%F{yellow}%B' zstyle ':vcs_info:*' unstagedstr '%F{red}' zstyle ':vcs_info:*' disable p4 autoload -Uz vcs_info HISTFILE=~/.histfile HISTSIZE=4096 SAVEHIST=4000 setopt no_list_beep # don't beep on ambiguous completion setopt no_beep # don't beep! setopt menu_complete # do menued tab completion when ambiguous setopt auto_cd # cd on dirname as cmd # setopt glob_complete # maybe? setopt magic_equal_subst # do substitutions for unquoted foo=bar #setopt hist_fcntl_lock # cooperative locking for history flie setopt extended_history # store history in extended format setopt hist_expire_dups_first # remove duplicates from history first setopt hist_reduce_blanks # remove superflous blanks in history list #setopt inc_append_history # incrementally update histfile setopt no_bg_nice # don't automatically renice bg procs setopt chase_links # resolve symlinks on cd; I can't decide whether I like this setopt no_flow_control # disable XON/XOFF for shell editor #setopt print_eight_bit # print all 8-bit chars literally; utf8 only? setopt rc_expand_param # expand ${var} like other {} expansions setopt prompt_subst setopt combining_chars # terminal does the right thing if [ -f "$HOME/.local/etc/zshrc.local" ]; then . "$HOME/.local/etc/zshrc.local" fi