c3ce41645c
Ghostty (and any terminal reporting modified letters via the kitty CSI-u or xterm modifyOtherKeys protocols) sends Shift+R as a lowercase keycode with a shift modifier. keycodeToName() lowercases the printable ASCII range, so the composer received 'r' instead of 'R' — uppercase input was silently destroyed. The shift flag was parsed correctly but discarded at the input layer. Re-apply shift to a single lowercase letter in inputForSpecialSequence so the inserted text is case-restored while keybinding consumers still see the lowercase canonical name via key.name. Covers both the CSI-u and modifyOtherKeys paths. Fixes #90663