From 96646e8b9c676a9f3302d27fd96e9343826afee3 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Thu, 26 Nov 2020 12:05:00 +0100 Subject: [PATCH] enable iterm2 shell integration when running in tmux in zsh4humans --- internal/p10k.zsh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/internal/p10k.zsh b/internal/p10k.zsh index 2e19eec4..08faac75 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -6025,7 +6025,7 @@ _p9k_dump_instant_prompt() { local -i fill=$((COLUMNS > _p9k__ret ? COLUMNS - _p9k__ret : 0)) out+="${(%):-%b%k%f%s%u$mark${(pl.$fill.. .)}$cr%b%k%f%s%u%E}" fi - out+="${(pl.$height..$lf.)}$esc${height}A$terminfo[sc]" + (( _z4h_can_save_restore_screen == 1 )) || out+="${(pl.$height..$lf.)}$esc${height}A$terminfo[sc]" out+=${(%):-"$__p9k_used_instant_prompt[1]$__p9k_used_instant_prompt[2]"} if [[ -n $__p9k_used_instant_prompt[3] ]]; then _p9k_prompt_length "$__p9k_used_instant_prompt[2]" @@ -6036,6 +6036,7 @@ _p9k_dump_instant_prompt() { out+="${(pl.$gap.. .)}${(%):-${__p9k_used_instant_prompt[3]}%b%k%f%s%u}$cr$esc${left_len}C" fi fi + (( _z4h_can_save_restore_screen == 1 )) && out+="$cr$esc${height}A$terminfo[sc]$out" typeset -g __p9k_instant_prompt_output=${TMPDIR:-/tmp}/p10k-instant-prompt-output-${(%):-%n}-$$ { echo -n > $__p9k_instant_prompt_output } || return print -rn -- "$out" || return @@ -7839,8 +7840,13 @@ _p9k_init_prompt() { fi if [[ $ITERM_SHELL_INTEGRATION_INSTALLED == Yes ]]; then - _p9k_prompt_prefix_left+=$'%{\e]133;A\a%}' - _p9k_prompt_suffix_left+=$'%{\e]133;B\a%}' + if (( _z4h_can_save_restore_screen == 1 )); then + _p9k_prompt_prefix_left+=$'%{\ePtmux;\e\e]133;A\a\e\\\\%}' + _p9k_prompt_suffix_left+=$'%{\ePtmux;\e\e]133;B\a\e\\\\%}' + else + _p9k_prompt_prefix_left+=$'%{\e]133;A\a\e%}' + _p9k_prompt_suffix_left+=$'%{\e]133;B\a\e%}' + fi fi if (( _POWERLEVEL9K_PROMPT_ADD_NEWLINE_COUNT > 0 )); then @@ -7931,7 +7937,7 @@ _p9k_must_init() { [[ $sig == $_p9k__param_sig ]] && return 1 _p9k_deinit fi - _p9k__param_pat=$'v109\1'${(q)ZSH_VERSION}$'\1'${(q)ZSH_PATCHLEVEL}$'\1' + _p9k__param_pat=$'v110\1'${(q)ZSH_VERSION}$'\1'${(q)ZSH_PATCHLEVEL}$'\1' _p9k__param_pat+=$'${#parameters[(I)POWERLEVEL9K_*]}\1${(%):-%n%#}\1$GITSTATUS_LOG_LEVEL\1' _p9k__param_pat+=$'$GITSTATUS_ENABLE_LOGGING\1$GITSTATUS_DAEMON\1$GITSTATUS_NUM_THREADS\1' _p9k__param_pat+=$'$GITSTATUS_CACHE_DIR\1$GITSTATUS_AUTO_INSTALL\1${ZLE_RPROMPT_INDENT:-1}\1' @@ -8004,7 +8010,11 @@ function _p9k_init_cacheable() { _p9k_transient_prompt+='${:-"'$_p9k__ret'"}' _p9k_transient_prompt+=')%b%k%f%s%u ' if [[ $ITERM_SHELL_INTEGRATION_INSTALLED == Yes ]]; then - _p9k_transient_prompt=$'%{\e]133;A\a%}'$_p9k_transient_prompt$'%{\e]133;B\a%}' + if (( _z4h_can_save_restore_screen == 1 )); then + _p9k_transient_prompt=$'%{\ePtmux;\e\e]133;A\a\e\\\\%}'$_p9k_transient_prompt$'%{\ePtmux;\e\e]133;B\a\e\\\\%}' + else + _p9k_transient_prompt=$'%{\e]133;A\a%}'$_p9k_transient_prompt$'%{\e]133;B\a%}' + fi fi fi