From a08494a766973cb580dc09ff4d5b3efb40f6ecb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 21 Nov 2021 11:59:28 +0100 Subject: [PATCH] =?UTF-8?q?input:=20kitty:=20only=20emit=20CSIs=20for=20Ca?= =?UTF-8?q?ps-=20and=20Num-Lock=20when=20they=20aren=E2=80=99t=20modifiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- input.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/input.c b/input.c index 8be6639d..06f5b731 100644 --- a/input.c +++ b/input.c @@ -1207,9 +1207,7 @@ kitty_kbd_protocol(struct seat *seat, struct terminal *term, case XKB_KEY_Page_Down: key = 6; final = '~'; break; case XKB_KEY_Home: key = 1; final = 'H'; break; case XKB_KEY_End: key = 1; final = 'F'; break; - //case XKB_KEY_Caps_Lock: key = 57358; final = 'u'; break; case XKB_KEY_Scroll_Lock: key = 57359; final = 'u'; break; - //case XKB_KEY_Num_Lock: key = 57360; final = 'u'; break; case XKB_KEY_Print: key = 57361; final = 'u'; break; case XKB_KEY_Pause: key = 57362; final = 'u'; break; case XKB_KEY_Menu: key = 57363; final = 'u'; break; @@ -1278,6 +1276,20 @@ kitty_kbd_protocol(struct seat *seat, struct terminal *term, case XKB_KEY_KP_Delete: key = 57426; final = 'u'; break; case XKB_KEY_KP_Begin: key = 1; final = 'E'; break; + case XKB_KEY_Caps_Lock: + if (seat->kbd.mod_caps == XKB_MOD_INVALID) { + key = 57358; + final = 'u'; + } + break; + + case XKB_KEY_Num_Lock: + if (seat->kbd.mod_num == XKB_MOD_INVALID) { + key = 57360; + final = 'u'; + } + break; + default: if (count > 0) { if (effective == 0) {