From 04e75a683d442e8662b09202978504a372c0b2a5 Mon Sep 17 00:00:00 2001 From: Dominik Ritter Date: Mon, 13 Feb 2017 23:11:53 +0100 Subject: [PATCH] Reworked `command_execution_time` segment - Add a visual identifier - Fix a bug that the time was not reset - Make calculation independent of segment (thx @rjorgenson) --- functions/icons.zsh | 3 +++ powerlevel9k.zsh-theme | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/functions/icons.zsh b/functions/icons.zsh index 44d99095..d8232f07 100644 --- a/functions/icons.zsh +++ b/functions/icons.zsh @@ -79,6 +79,7 @@ case $POWERLEVEL9K_MODE in SWIFT_ICON '' PUBLIC_IP_ICON '' LOCK_ICON $'\UE138' #  + EXECUTION_TIME_ICON $'\UE89C' #  ) ;; 'awesome-fontconfig') @@ -140,6 +141,7 @@ case $POWERLEVEL9K_MODE in SWIFT_ICON '' PUBLIC_IP_ICON '' LOCK_ICON $'\UE138' #  + EXECUTION_TIME_ICON $'\uF253' ) ;; *) @@ -201,6 +203,7 @@ case $POWERLEVEL9K_MODE in SWIFT_ICON 'Swift' PUBLIC_IP_ICON '' LOCK_ICON $'\UE0A2' + EXECUTION_TIME_ICON 'Dur' ) ;; esac diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index de00496c..840dde14 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -564,9 +564,8 @@ prompt_custom() { 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}" '' + if [ $_P9K_COMMAND_DURATION -ge $POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD ]; then + "$1_prompt_segment" "$0" "$2" "red" "226" "${_P9K_COMMAND_DURATION}s" 'EXECUTION_TIME_ICON' fi } @@ -1181,6 +1180,10 @@ powerlevel9k_preexec() { powerlevel9k_prepare_prompts() { RETVAL=$? + _P9K_COMMAND_DURATION=$((EPOCHSECONDS - _P9K_TIMER_START)) + # Reset start time + _P9K_TIMER_START=99999999999 + if [[ "$POWERLEVEL9K_PROMPT_ON_NEWLINE" == true ]]; then PROMPT="$(print_icon 'MULTILINE_FIRST_PROMPT_PREFIX')%f%b%k$(build_left_prompt) $(print_icon 'MULTILINE_SECOND_PROMPT_PREFIX')"