docs(tui): document shifted-letter keybinding compatibility

Clarify that shifted letter bindings are matched compatibly when
terminals emit uppercase letters without an explicit SHIFT modifier.

Update config guidance, the default keymap template, and the action
matrix with examples for shift-i, shift-a, and shift-o mapping to I, A,
and O.
This commit is contained in:
Felipe Coury
2026-04-23 10:35:17 -03:00
committed by Felipe Coury
parent eb2275a64a
commit 006fb5ae5b
3 changed files with 8 additions and 1 deletions
+3 -1
View File
@@ -95,7 +95,9 @@ Actions accept a single key or multiple keys:
Some defaults intentionally include multiple variants for one logical shortcut
because terminal modifier reporting can differ by platform/emulator. For
example, `?` may arrive as plain `?` or `shift-?`, and control chords may
arrive with or without `SHIFT`.
arrive with or without `SHIFT`. Shifted letter bindings are also matched
compatibly when terminals report uppercase letters without explicit `SHIFT`
(for example, `shift-i` matching `I`).
Aliases like `escape`, `pageup`, and `pgdn` are normalized.
+2
View File
@@ -73,6 +73,8 @@ yank = ["ctrl-y"]
[tui.keymap.vim_normal]
# Vim normal-mode actions for modal editing.
# Shifted letter bindings also match uppercase event forms reported without
# explicit SHIFT by some terminals.
enter_insert = "i"
append_after_cursor = "a"
append_line_end = "shift-a"
+3
View File
@@ -24,6 +24,9 @@ For runtime behavior, safety invariants, and testing guidance, see
- `composer.toggle_shortcuts`: `?` and `shift-?`
- `approval.open_fullscreen`: `ctrl-a` and `ctrl-shift-a`
- `onboarding.toggle_animation`: `ctrl-.` and `ctrl-shift-.`
- Shifted letter bindings are also matched compatibly across terminal variants
when reported as uppercase letters without explicit `SHIFT` (for example
`shift-i` matching `I`, `shift-a` matching `A`, and `shift-o` matching `O`).
- Keep these paired defaults unless/until key-event normalization is made
platform-consistent at a lower layer.