#vim:ft=zsh _command_time_preexec() { timer=${timer:-$SECONDS} } _command_time_precmd() { PROMPT_TMP_DIR=$(mktemp) if [ $timer ]; then ts=$(($SECONDS - $timer)) tts=$ts mi=0 ho=0 if [ $ts -ge 3 ];then while [ $ts -ge 60 ];do ts=$((ts-60)) mi=$((mi+1)) done while [ $mi -ge 60 ];do mi=$((mi-60)) ho=$((ho+1)) done if [ $tts -ge 3600 ];then out=$(printf '%dh %dm %ds\n' $ho $mi $ts) elif [ $tts -ge 60 ];then out=$(printf '%dm %ds\n' $mi $ts) elif [ $tts -lt 60 ];then out=$(printf '%ds\n' $ts) fi export psvar[1]="took $(printf '%s ' "$out")" echo $psvar[1] > $PROMPT_TMP_DIR fi unset timer unset ts unset tts unset mi unset ho fi } _command_ro_precmd() { if ! [ -w $(pwd) ];then echo " " fi } preexec_functions+=(_command_time_preexec) precmd_functions+=(_command_time_precmd) blue="14" red="9" white="15" setopt PROMPT_SUBST export PROMPT='%(?.%F{$blue}.%F{$red})%B%3~%(!. %F{$red}as root %f. )%F{$white}$(if [ -n $PROMPT_TMP_DIR ];then cat $PROMPT_TMP_DIR; rm $PROMPT_TMP_DIR;fi)%f%(?.%F{$blue}.%F{$red})%F{$red}$(_command_ro_precmd)%F{$blue}❯ %b%f' export RPROMPT='' #%(2V.%F{$red}%2v%f$(export psvar[2]="") .) # TODO: # Add git support