diff --git a/share/functions/__fish_cursor_konsole.fish b/share/functions/__fish_cursor_konsole.fish index acdcb0de6..ef7c777b8 100644 --- a/share/functions/__fish_cursor_konsole.fish +++ b/share/functions/__fish_cursor_konsole.fish @@ -1,7 +1,7 @@ function __fish_cursor_konsole -d 'Set cursor (konsole)' set -l shape $argv[1] switch "$shape" - case block + case block echo -en '\e]50;CursorShape=0\x7' case underscore echo -en '\e]50;CursorShape=2\x7' diff --git a/share/functions/fish_vi_cursor.fish b/share/functions/fish_vi_cursor.fish index f8d9ccd1f..b7a75d9ce 100644 --- a/share/functions/fish_vi_cursor.fish +++ b/share/functions/fish_vi_cursor.fish @@ -1,31 +1,43 @@ function fish_vi_cursor -d 'Set cursor shape for different vi modes' set -l terminal $argv[1] set -q terminal[1]; or set terminal auto + set -l uses_echo set fcn switch "$terminal" case auto if set -q KONSOLE_PROFILE_NAME set fcn __fish_cursor_konsole + set uses_echo 1 else if set -q XTERM_LOCALE set fcn __fish_cursor_xterm + set uses_echo 1 else return 1 end end - set -g fish_cursor_insert line - set -g fish_cursor_default block - set -g fish_cursor_unknown block blink + set -l tmux_prefix + set -l tmux_postfix + if begin; set -q TMUX; and set -q uses_echo[1]; end + set tmux_prefix echo -ne "'\ePtmux;\e'" + set tmux_postfix echo -ne "'\e\\\\'" + end + + set -q fish_cursor_unknown + or set -g fish_cursor_unknown block blink echo " - function fish_cursor_vi_handle --on-variable fish_bind_mode + function fish_vi_cursor_handle --on-variable fish_bind_mode set -l varname fish_cursor_\$fish_bind_mode if not set -q \$varname set varname fish_cursor_unknown end #echo \$varname \$\$varname + $tmux_prefix $fcn \$\$varname + $tmux_postfix end " | source end +