From 25caebc1733a26585923a546183807b108d16518 Mon Sep 17 00:00:00 2001 From: Michael Grant Date: Mon, 28 Sep 2026 22:56:25 +0100 Subject: [PATCH] Cleanup and rebase on master. --- Makefile.am | 4 ++-- input-keys.c | 5 ++--- input-kitty.c | 2 +- key-string.c | 34 +++++++++++++++++----------------- regress/kitty-keys-terminal.sh | 3 +-- tmux.1 | 1 - tmux.h | 11 ++++++----- tty-keys.c | 2 +- 8 files changed, 30 insertions(+), 32 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8be4a5305..93754b14e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -174,8 +174,8 @@ dist_tmux_SOURCES = \ grid.c \ hooks.c \ hyperlinks.c \ - input-kitty.c \ input-keys.c \ + input-kitty.c \ input.c \ job.c \ json.c \ @@ -215,8 +215,8 @@ dist_tmux_SOURCES = \ tty-acs.c \ tty-draw.c \ tty-features.c \ - tty-kitty.c \ tty-keys.c \ + tty-kitty.c \ tty-term.c \ tty.c \ utf8-combined.c \ diff --git a/input-keys.c b/input-keys.c index 66936b9ac..6600a6a4b 100644 --- a/input-keys.c +++ b/input-keys.c @@ -682,9 +682,8 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key) log_debug("%s: ignoring key 0x%llx", __func__, key); return (0); } - if (key & (KEYC_SUPER|KEYC_HYPER)) - return (input_key_vt10x(bev, key)); - if (s->kitty_keys.flags & KITTY_KEY_SUPPORTED) + if ((key & (KEYC_SUPER|KEYC_HYPER)) || + (s->kitty_keys.flags & KITTY_KEY_SUPPORTED)) return (input_key_vt10x(bev, key)); /* diff --git a/input-kitty.c b/input-kitty.c index 912652f2d..1ad5e5622 100644 --- a/input-kitty.c +++ b/input-kitty.c @@ -233,7 +233,7 @@ int input_key_kitty(struct screen *s, struct bufferevent *bev, key_code key) { const struct input_kitty_key *ikk; - struct utf8_data ud; + struct utf8_data ud; wchar_t wc; key_code modifiers, onlykey; u_int flags, number, modifier; diff --git a/key-string.c b/key-string.c index 6cfa09f8b..e45437454 100644 --- a/key-string.c +++ b/key-string.c @@ -163,36 +163,36 @@ static const struct { { "CapsLock", KEYC_CAPSLOCK }, { "ScrollLock", KEYC_SCROLLLOCK }, { "NumLock", KEYC_NUMLOCK }, - { "PrintScreen", KEYC_PRINTSCREEN }, + { "PrintScreen", KEYC_PRINTSCREEN }, { "Pause", KEYC_PAUSE }, { "Menu", KEYC_MENU }, { "MediaPlay", KEYC_MEDIA_PLAY }, - { "MediaPause", KEYC_MEDIA_PAUSE }, - { "MediaPlayPause", KEYC_MEDIA_PLAYPAUSE }, - { "MediaReverse", KEYC_MEDIA_REVERSE }, + { "MediaPause", KEYC_MEDIA_PAUSE }, + { "MediaPlayPause", KEYC_MEDIA_PLAYPAUSE }, + { "MediaReverse", KEYC_MEDIA_REVERSE }, { "MediaStop", KEYC_MEDIA_STOP }, - { "MediaFastForward", KEYC_MEDIA_FASTFORWARD }, - { "MediaRewind", KEYC_MEDIA_REWIND }, + { "MediaFastForward", KEYC_MEDIA_FASTFORWARD }, + { "MediaRewind", KEYC_MEDIA_REWIND }, { "MediaNext", KEYC_MEDIA_NEXT }, - { "MediaPrevious", KEYC_MEDIA_PREVIOUS }, - { "MediaRecord", KEYC_MEDIA_RECORD }, - { "VolumeDown", KEYC_VOLUME_DOWN }, + { "MediaPrevious", KEYC_MEDIA_PREVIOUS }, + { "MediaRecord", KEYC_MEDIA_RECORD }, + { "VolumeDown", KEYC_VOLUME_DOWN }, { "VolumeUp", KEYC_VOLUME_UP }, - { "VolumeMute", KEYC_VOLUME_MUTE }, + { "VolumeMute", KEYC_VOLUME_MUTE }, { "LeftShift", KEYC_LEFT_SHIFT }, - { "LeftControl", KEYC_LEFT_CTRL }, + { "LeftControl", KEYC_LEFT_CTRL }, { "LeftAlt", KEYC_LEFT_ALT }, { "LeftSuper", KEYC_LEFT_SUPER }, { "LeftHyper", KEYC_LEFT_HYPER }, { "LeftMeta", KEYC_LEFT_META }, - { "RightShift", KEYC_RIGHT_SHIFT }, - { "RightControl", KEYC_RIGHT_CTRL }, + { "RightShift", KEYC_RIGHT_SHIFT }, + { "RightControl", KEYC_RIGHT_CTRL }, { "RightAlt", KEYC_RIGHT_ALT }, - { "RightSuper", KEYC_RIGHT_SUPER }, - { "RightHyper", KEYC_RIGHT_HYPER }, + { "RightSuper", KEYC_RIGHT_SUPER }, + { "RightHyper", KEYC_RIGHT_HYPER }, { "RightMeta", KEYC_RIGHT_META }, - { "ISOLevel3Shift", KEYC_ISO_LEVEL3_SHIFT }, - { "ISOLevel5Shift", KEYC_ISO_LEVEL5_SHIFT }, + { "ISOLevel3Shift", KEYC_ISO_LEVEL3_SHIFT }, + { "ISOLevel5Shift", KEYC_ISO_LEVEL5_SHIFT }, /* Mouse keys. */ KEYC_MOUSE_STRING(MOUSEDOWN1, MouseDown1), diff --git a/regress/kitty-keys-terminal.sh b/regress/kitty-keys-terminal.sh index 1ca290b9a..736502194 100644 --- a/regress/kitty-keys-terminal.sh +++ b/regress/kitty-keys-terminal.sh @@ -23,8 +23,7 @@ SOCKET=$DIR/kitty OUT=$DIR/out TMUX="$TEST_TMUX -LtestKrt$$ -f$CONF" -printf '%s\n' 'set -g extended-keys on' \ - 'set -g extended-keys-format kitty' >"$CONF" +printf '%s\n' 'set -g extended-keys on' >"$CONF" cleanup() { diff --git a/tmux.1 b/tmux.1 index e36cad8c4..eabb02153 100644 --- a/tmux.1 +++ b/tmux.1 @@ -5144,7 +5144,6 @@ and use the internal set only. .It kittykeys Supports the Kitty keyboard protocol. -This is added automatically if the terminal answers the Kitty keyboard query. .It margins Supports DECSLRM margins. .It mouse diff --git a/tmux.h b/tmux.h index b1371c218..70c089cf8 100644 --- a/tmux.h +++ b/tmux.h @@ -3134,6 +3134,12 @@ int tty_keys_next(struct tty *); int tty_keys_colours(struct tty *, const char *, size_t, size_t *, int *, int *); +/* tty-kitty.c */ +int tty_keys_kitty(struct tty *, const char *, size_t, size_t *, + key_code *); +int tty_keys_kitty_query(struct tty *, const char *, size_t, + size_t *); + /* arguments.c */ void args_set(struct args *, u_char, struct args_value *, int); struct args *args_create(void); @@ -3538,11 +3544,6 @@ void input_kitty_push(struct screen *, u_int); void input_kitty_pop(struct screen *, u_int); int input_key_kitty(struct screen *, struct bufferevent *, key_code); -/* tty-kitty.c */ -int tty_keys_kitty(struct tty *, const char *, size_t, size_t *, - key_code *); -int tty_keys_kitty_query(struct tty *, const char *, size_t, size_t *); - /* colour.c */ int colour_find_rgb(u_char, u_char, u_char); int colour_join_rgb(u_char, u_char, u_char); diff --git a/tty-keys.c b/tty-keys.c index 3c9fa8cdd..b5e93798d 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -879,7 +879,7 @@ tty_keys_next(struct tty *tty) goto partial_key; } - /* Is this an extended key press? */ + /* Is this a Kitty keyboard protocol key press? */ switch (tty_keys_kitty(tty, buf, len, &size, &key)) { case 0: /* yes */ goto complete_key;