diff --git a/.zprezto/abra/options.zsh b/.zprezto/abra/options.zsh index 2413689..00c14d2 100644 --- a/.zprezto/abra/options.zsh +++ b/.zprezto/abra/options.zsh @@ -50,6 +50,7 @@ bindkey "\eOF" end-of-line # saves $EPOCHSECONDS zmodload zsh/datetime +zmodload zsh/mathfunc # profiler # zmodload zsh/zprof diff --git a/.zprezto/abra/prompt_abra_setup.zsh b/.zprezto/abra/prompt_abra_setup.zsh index 65e6de4..e461d34 100644 --- a/.zprezto/abra/prompt_abra_setup.zsh +++ b/.zprezto/abra/prompt_abra_setup.zsh @@ -21,6 +21,7 @@ COLOR_PWD_ROOT='red' COLOR_PROMPT_STARTER='green' COLOR_TIME='green' COLOR_USERHOSTNAME='blue' +COLOR_DURATION='magenta' NEWLINE=$'\n' @@ -41,10 +42,22 @@ function prompt_abra_precmd { PRE=$(print ${(l:${COLUMNS}:)PRE}) # print -P '%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_PWD}})${PRE}%f' print -P '%F{${COLOR_PWD}}${PRE}%f' + + if [[ -z $PREEXEC_TIME ]]; then + EXECTIME=0 + else + EXECTIME=$(( EPOCHREALTIME - PREEXEC_TIME )) + fi + + if (( EXECTIME > 5 )); then + DURATION=$(TZ=GMT; strftime '%H:%M:%S ' $(( int(rint(EXECTIME)) )) ) + else + DURATION='' + fi } function prompt_abra_preexec { - # echo hi + PREEXEC_TIME=$EPOCHREALTIME } function prompt_abra_setup { @@ -88,6 +101,7 @@ function prompt_abra_setup { RPROMPT=$RPROMPT'%(?..%F{red}%?%f )' # last command code if nonzero RPROMPT=$RPROMPT'%B%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_USERHOSTNAME}})%n@%M%f%b' RPROMPT=$RPROMPT'${git_info[rprompt]} ' + RPROMPT=$RPROMPT'%F{$COLOR_DURATION}$DURATION%f' RPROMPT=$RPROMPT'%F{$COLOR_TIME}%*%f' }