mirror of
https://github.com/tmux/tmux.git
synced 2026-10-15 07:44:24 +00:00
Detection, done like sync:
- ESC[?u goes to every VT100-like terminal at attach, whatever the options. - A reply turns on a new kittykeys terminal feature. Users can force it on or off with terminal-features kittykeys, including kittykeys@ to turn it off. - Changing extended-keys now takes effect immediately for attached clients (options.c). Use, per client, when extended-keys is on: Kitty for clients that have kittykeys, modifyOtherKeys for clients with extkeys, VT10x otherwise. Pane side: - Applications can request either protocol; Kitty wins if one asks for both. - Each application gets what it asked for, whichever client typed the key. - ESC[?u is answered truthfully. - The per-client gate is gone. window.c and popup.c are simply master's versions again. extended-keys always is back to its master meaning, forcing modifyOtherKeys mode 1 only. Forcing Kitty on every program would have sent bash ESC[97;5u for Ctrl-A. extended-keys-format kitty is still accepted, but now behaves the same as csi-u.
This commit is contained in:
@@ -13,8 +13,7 @@ TMUX="$TEST_TMUX -LtestK$$ -f$CONF"
|
||||
|
||||
trap 'rm -f "$CONF" "$OUT"; $TMUX kill-server 2>/dev/null' 0 1 15
|
||||
|
||||
printf '%s\n' 'set -g extended-keys on' \
|
||||
'set -g extended-keys-format kitty' >"$CONF"
|
||||
printf '%s\n' 'set -g extended-keys on' >"$CONF"
|
||||
|
||||
wait_for_output()
|
||||
{
|
||||
@@ -90,11 +89,13 @@ wait_for_output
|
||||
check_output 1b5b3f31751b5b3f3075
|
||||
|
||||
: >"$OUT"
|
||||
# "always" forces modifyOtherKeys mode 1, not Kitty keys.
|
||||
$TMUX set-option -g extended-keys always
|
||||
$TMUX respawn-pane -k -t: \
|
||||
"stty raw -echo; printf '\033[>0u\033[?u'; dd bs=1 count=5 2>/dev/null | od -An -v -t x1 >'$OUT'; sleep 5"
|
||||
wait_for_output
|
||||
check_output 1b5b3f3175
|
||||
check_output 1b5b3f3075
|
||||
wait_for_mode 'Ext 1'
|
||||
$TMUX set-option -g extended-keys on
|
||||
|
||||
: >"$OUT"
|
||||
|
||||
Reference in New Issue
Block a user