diff --git a/shell-integration/bash/kitty.bash b/shell-integration/bash/kitty.bash index a699dbc7a..68cebd5b6 100644 --- a/shell-integration/bash/kitty.bash +++ b/shell-integration/bash/kitty.bash @@ -155,7 +155,11 @@ _ksi_main() { fi if [[ "${_ksi_prompt[title]}" == "y" ]]; then - [[ "$(builtin command who -m 2> /dev/null)" =~ "\([a-fA-F.:0-9]+\)$" ]] && _ksi_prompt[hostname_prefix]="\h: " + if [[ -n "$SSH_TTY$SSH2_TTY" ]]; then + _ksi_prompt[hostname_prefix]="\h: "; + elif [[ -n "$(builtin command -v who)" ]]; then + [[ "$(builtin command who -m 2> /dev/null)" =~ "\([a-fA-F.:0-9]+\)$" ]] && _ksi_prompt[hostname_prefix]="\h: "; + fi # see https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html#Controlling-the-Prompt # we use suffix here because some distros add title setting to their bashrc files by default _ksi_prompt[ps1_suffix]+="\[\e]2;${_ksi_prompt[hostname_prefix]}\w\a\]" diff --git a/shell-integration/zsh/kitty-integration b/shell-integration/zsh/kitty-integration index 9f73d6e52..34bfe55ec 100644 --- a/shell-integration/zsh/kitty-integration +++ b/shell-integration/zsh/kitty-integration @@ -90,11 +90,11 @@ _ksi_deferred_init() { unset KITTY_SHELL_INTEGRATION # The directory where kitty-integration is located: /.../shell-integration/zsh. - builtin local self_dir=${functions_source[_ksi_deferred_init]:A:h} + builtin local self_dir="${functions_source[_ksi_deferred_init]:A:h}" # The directory with _kitty. We store it in a directory of its own rather than # in $self_dir because we are adding it to fpath and we don't want any other # files to be accidentally autoloadable. - builtin local comp_dir=$self_dir/completions + builtin local comp_dir="$self_dir/completions" # Enable completions for `kitty` command. if (( ! opt[(Ie)no-complete] )) && [[ -r $comp_dir/_kitty ]]; then @@ -232,8 +232,14 @@ _ksi_deferred_init() { # We use (V) in preexec to convert control characters to something visible # (LF becomes \n, etc.). This isn't necessary in precmd because (%) does it # for us. + builtin local is_ssh_session="n" + if [[ -n "$SSH_TTY$SSH2_TTY" ]]; then + is_ssh_session="y"; + elif [[ -n "$(builtin command -v who)" ]]; then + [[ "$(builtin command who -m 2> /dev/null)" =~ "\([a-fA-F.:0-9]+\)$" ]] && is_ssh_session="y"; + fi - if [[ "$(builtin command who -m 2> /dev/null)" =~ "\([a-fA-F.:0-9]+\)$" ]]; then + if [[ "$is_ssh_session" == "y" ]]; then # show the hostname via %m for SSH sessions functions[_ksi_precmd]+=" builtin print -Prnu $_ksi_fd \$'\\e]2;'\"%m: \${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"