aboutsummaryrefslogtreecommitdiff
path: root/powerlevel9k.zsh-theme
diff options
context:
space:
mode:
authorDominik Ritter <dritter03@googlemail.com>2017-02-13 02:56:32 +0300
committerDominik Ritter <dritter03@googlemail.com>2017-02-13 02:56:32 +0300
commit7e5bef14d76029df4474ad8cc5e3d9582fdffcd8 (patch)
treee47d13f722cb0a950660b750fcf57aa75e9e7528 /powerlevel9k.zsh-theme
parent1de14df11fb3bf67958555b921f8323cda0d3d03 (diff)
Add `command_execution_time` segment
Diffstat (limited to 'powerlevel9k.zsh-theme')
-rwxr-xr-xpowerlevel9k.zsh-theme21
1 files changed, 21 insertions, 0 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 7499197b..de00496c 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -560,6 +560,16 @@ prompt_custom() {
fi
}
+# Display the duration the command needed to run.
+prompt_command_execution_time() {
+ set_default POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD 3
+
+ local timing=$((EPOCHSECONDS - _P9K_TIMER_START))
+ if [ $timing -ge $POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD ]; then
+ "$1_prompt_segment" "$0" "$2" "red" "226" "Dur ${timing}" ''
+ fi
+}
+
# Dir: current working directory
set_default POWERLEVEL9K_DIR_PATH_SEPARATOR "/"
prompt_dir() {
@@ -1164,6 +1174,10 @@ build_right_prompt() {
done
}
+powerlevel9k_preexec() {
+ _P9K_TIMER_START=$EPOCHSECONDS
+}
+
powerlevel9k_prepare_prompts() {
RETVAL=$?
@@ -1195,6 +1209,9 @@ $(print_icon 'MULTILINE_SECOND_PROMPT_PREFIX')"
}
prompt_powerlevel9k_setup() {
+ # Disable false display of command execution time
+ _P9K_TIMER_START=99999999999
+
# Display a warning if the terminal does not support 256 colors
local term_colors
term_colors=$(echotc Co)
@@ -1239,11 +1256,15 @@ prompt_powerlevel9k_setup() {
powerlevel9k_vcs_init
fi
+ # initialize timing functions
+ zmodload zsh/datetime
+
# initialize hooks
autoload -Uz add-zsh-hook
# prepare prompts
add-zsh-hook precmd powerlevel9k_prepare_prompts
+ add-zsh-hook preexec powerlevel9k_preexec
}
prompt_powerlevel9k_setup "$@"