#!/usr/bin/env 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 2>/dev/null; rm $PROMPT_TMP_DIR 2>/dev/null;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 #vim:ft=zsh