aboutsummaryrefslogtreecommitdiff
path: root/powerlevel9k.zsh-theme
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-03-17 10:46:33 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-03-17 10:46:33 +0300
commitab43f19909861e06fe8b79ec483aa6ceb392b14c (patch)
treec440899f05b2245302f22c44edfc6f483ea4e1cd /powerlevel9k.zsh-theme
parent25510ef7ad38d49c7ec95f277a5d8d663cee4a48 (diff)
remove _P9K_H* stuff that is no longer necessary
Diffstat (limited to 'powerlevel9k.zsh-theme')
-rwxr-xr-xpowerlevel9k.zsh-theme61
1 files changed, 17 insertions, 44 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index b8494994..31254db8 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -2034,9 +2034,6 @@ typeset -fH _p9k_set_prompt() {
build_right_prompt
RPROMPT=$_P9K_RIGHT_PREFIX$_P9K_PROMPT$_P9K_RIGHT_SUFFIX
fi
-
- unset _P9K_H1
- unset _P9K_H2
}
typeset -g _P9K_REFRESH_REASON
@@ -2085,46 +2082,30 @@ typeset -g OS
typeset -g OS_ICON
typeset -g SED_EXTENDED_REGEX_PARAMETER
-typeset -gi _P9K_TIMER_FD1=0
-typeset -gi _P9K_TIMER_FD2=0
+typeset -gi _P9K_TIMER_FD=0
_p9k_init_timer() {
- local fifo1 fifo2
+ local fifo
_p9k_start_timer() {
emulate -L zsh
setopt err_return no_bg_nice
- fifo1=$(mktemp -u "${TMPDIR:-/tmp}"/p9k.$$.pipe1.timer.XXXXXXXXXX)
- fifo2=$(mktemp -u "${TMPDIR:-/tmp}"/p9k.$$.pipe2.timer.XXXXXXXXXX)
- mkfifo $fifo1
- mkfifo $fifo2
- exec {_P9K_TIMER_FD1}<>$fifo1
- exec {_P9K_TIMER_FD2}<>$fifo2
+ fifo=$(mktemp -u "${TMPDIR:-/tmp}"/p9k.$$.pipe.timer.XXXXXXXXXX)
+ mkfifo $fifo
+ exec {_P9K_TIMER_FD}<>$fifo
function _p9k_on_timer() {
emulate -L zsh
- local reason
- IFS='' read -u $_P9K_TIMER_FD1 reason || return
- unset _P9K_H1
- unset _P9K_H2
- [[ -n $reason ]] && _p9k_update_prompt $reason || zle .reset-prompt
+ local dummy && IFS='' read -u $_P9K_TIMER_FD dummy && zle .reset-prompt
}
- zle -F $_P9K_TIMER_FD1 _p9k_on_timer
-
- # This `sleep 1 && kill -WINCH $$` is a workaround for what seems like a bug in zsh.
- zsh -c "
- while kill -0 $$; do
- if IFS='' read -u $_P9K_TIMER_FD2 -t 1; then
- sleep 1
- kill -WINCH $$
- echo job-complete
- elif [[ $POWERLEVEL9K_EXPERIMENTAL_TIME_REALTIME == true ]]; then
- echo
- fi
- done
- " <&$_P9K_TIMER_FD2 >&$_P9K_TIMER_FD1 2>/dev/null &!
+ zle -F $_P9K_TIMER_FD _p9k_on_timer
+
+ # `kill -WINCH $$` is a workaround for a bug in zsh. After a background job completes, callbacks
+ # registered with `zle -F` stop firing until the user presses any key or the process receives a
+ # signal (any signal at all).
+ zsh -c "while kill -WINCH $$; do sleep 1; echo; done" </dev/null >&$_P9K_TIMER_FD 2>/dev/null &!
local pid=$!
function _p9k_kill_timer_${pid}() {
emulate -L zsh
@@ -2135,18 +2116,14 @@ _p9k_init_timer() {
if ! _p9k_start_timer ; then
echo "powerlevel10k: failed to initialize background timer" >&2
- if (( _P9K_TIMER_FD1 )); then
- zle -F $_P9K_TIMER_FD1
- exec {_P9K_TIMER_FD1}>&-
+ if (( _P9K_TIMER_FD )); then
+ zle -F $_P9K_TIMER_FD
+ exec {_P9K_TIMER_FD}>&-
+ _P9K_TIMER_FD=0
fi
- if (( _P9K_TIMER_FD2 )); then
- exec {_P9K_TIMER_FD2}>&-
- fi
- _P9K_TIMER_FD1=0
- _P9K_TIMER_FD2=0
unset -f _p9k_on_timer
fi
- command rm -f "$fifo1" "$fifo2"
+ command rm -f "$fifo"
}
_p9k_init() {
@@ -2279,10 +2256,6 @@ _p9k_init() {
_P9K_LEFT_PREFIX="%{$(iterm2_prompt_mark)%}$_P9K_LEFT_PREFIX"
fi
- if segment_in_use background_jobs && (( _P9K_TIMER_FD2 )); then
- _P9K_LEFT_SUFFIX+="\${_P9K_H1+\${_P9K_H2-\${_P9K_H2=}\$(echo>&$_P9K_TIMER_FD2)}}\${_P9K_H1=}"
- fi
-
# If the terminal `LANG` is set to `C`, this theme will not work at all.
if [[ $LANG == C && $POWERLEVEL9K_IGNORE_TERM_LANG == false ]]; then
print -P "\t%F{red}WARNING!%f Your terminal's 'LANG' is set to 'C', which breaks this theme!"