From b39ca84ee8fd6f206e763fae39c18fd276d38f46 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Thu, 16 Jan 2025 07:47:23 -0500 Subject: [PATCH] fix(input): kitty: handle ModShift|ModCapsLock as uppercase (#335) This fixes an issue when both shift and caps-lock are on at the same time. In this case, the key should be treated as uppercase as if one of the two was pressed. --- input/kitty.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/kitty.go b/input/kitty.go index efc39327..246406f7 100644 --- a/input/kitty.go +++ b/input/kitty.go @@ -310,12 +310,12 @@ func parseKittyKeyboard(csi *ansi.CsiSequence) (Event Event) { } if len(key.Text) == 0 && unicode.IsPrint(key.Code) && - (key.Mod <= ModShift || key.Mod == ModCapsLock) { + (key.Mod <= ModShift || key.Mod == ModCapsLock || key.Mod == ModShift|ModCapsLock) { if key.Mod == 0 { key.Text = string(key.Code) } else { desiredCase := unicode.ToLower - if key.Mod == ModShift || key.Mod == ModCapsLock { + if key.Mod.Contains(ModShift) || key.Mod.Contains(ModCapsLock) { desiredCase = unicode.ToUpper } if key.ShiftedCode != 0 {