Skip to content

Instantly share code, notes, and snippets.

@penryu
Created September 22, 2010 04:07
Show Gist options
  • Save penryu/591122 to your computer and use it in GitHub Desktop.
Save penryu/591122 to your computer and use it in GitHub Desktop.
# .zshrc fragment
setopt prompt_subst
autoload -Uz vcs_info
if vcs_info 2> /dev/null; then
zstyle ':vcs_info:*' disable cdv darcs mtn p4 svk tla
zstyle ':vcs_info:*' actionformats " [%s:b|%a]"
zstyle ':vcs_info:*' formats " [%s:%b]"
zstyle ':vcs_info:cvs:*' formats " [%s:%r]"
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b:%r"
fi
loadavg2colour () {
case `uname -s` in
Darwin ) loadavg=$(sysctl vm.loadavg) && load=${loadavg[15,18]} ;;
Linux ) loadavg=$(< /proc/loadavg) && load=${loadavg[1,4]} ;;
OpenBSD ) loadavg=$(sysctl vm.loadavg) && load=${loadavg[12,15]} ;;
*) load="NI"
esac
[[ ${load} -lt 0.5 ]] && loadprompt=""
[[ (${load} -ge 0.5) && (${load} -lt 0.7) ]] && loadprompt=" %B%F{white}${load}%f%b"
[[ (${load} -ge 0.7) && (${load} -lt 1.0) ]] && loadprompt=" %B%F{yellow}${load}%f%b"
[[ ${load} -ge 1.0 ]] && loadprompt=" %B%F{red}${load}%f%b"
}
precmd () {
lastexit=$?
if [ $lastexit -eq 0 ] ; then
exitresult=""
else
exitresult="%F{red}$lastexit^%f"
fi
if [[ -w $PWD ]]; then
pwdcol="%B%F{blue}"
else
pwdcol="%B%F{magenta}"
fi
psvar=()
vcs_info
[[ -n $vcs_info_msg_0_ ]] && psvar[1]="$vcs_info_msg_0_"
vimode=""
loadavg2colour
}
PS1='$exitresult%m:%4(~.%{$pwdcol%}…/.)%{$pwdcol%}%3~%f%b>%# '
RPS1='%F{blue}<%f$vimode%(v.%F{yellow}%v%f.)%1(j. %B%F{green}(%j%)%f%b.)$loadprompt %F{magenta}%*%f'
function zle-keymap-select {
if [ "$KEYMAP" = "vicmd" ]; then
vimode=" %B%F{yellow}--COMMAND--%f%b"
else
vimode=""
fi
zle reset-prompt
}
zle -N zle-keymap-select
TMOUT=15
TRAPALRM () {
loadavg2colour
zle reset-prompt
}
#EOF vim: ft=zsh
@penryu
Copy link
Author

penryu commented Sep 22, 2010

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment