Before submitting
Area
apps/web
Steps to reproduce
- Open T3 Code's built-in terminal.
- Start Neovim with
nvim.
- In normal mode, press Shift+
; to enter the : command line.
- Exit Neovim and press the same key combination in the shell for comparison.
Expected behavior
Shift+; should produce : inside Neovim and open its command-line prompt, just as it produces : in the shell.
Actual behavior
Inside Neovim, the terminal reports ; instead of :, so the command-line prompt does not open. The same key produces : correctly outside Neovim.
Neovim enables Kitty keyboard disambiguation, exposing a problem in the Ghostty WASM keyboard bridge:
apps/web/src/terminal/ghostty/core.ts always calls ghostty_key_event_set_consumed_mods(..., 0).
- For Shift+
;, the event text is :, the unshifted codepoint is ;, and Shift should be marked as consumed by key translation.
- With
consumed_mods = 0, the pinned encoder emits ESC[59;2u.
- With Shift marked consumed, it emits
:.
This likely affects other shifted printable characters in applications using the Kitty keyboard protocol, not only Neovim or colon.
Impact
Minor bug or occasional failure
Version or commit
main @ 30c9622
Environment
Built-in web terminal, including the web surface wrapped by the desktop app; Neovim with Kitty keyboard protocol support.
Logs or stack traces
Current consumed_mods=0: \x1b[59;2u
With consumed Shift: :
Screenshots, recordings, or supporting files
No response
Workaround
N/A
Before submitting
Area
apps/web
Steps to reproduce
nvim.;to enter the:command line.Expected behavior
Shift+
;should produce:inside Neovim and open its command-line prompt, just as it produces:in the shell.Actual behavior
Inside Neovim, the terminal reports
;instead of:, so the command-line prompt does not open. The same key produces:correctly outside Neovim.Neovim enables Kitty keyboard disambiguation, exposing a problem in the Ghostty WASM keyboard bridge:
apps/web/src/terminal/ghostty/core.tsalways callsghostty_key_event_set_consumed_mods(..., 0).;, the event text is:, the unshifted codepoint is;, and Shift should be marked as consumed by key translation.consumed_mods = 0, the pinned encoder emitsESC[59;2u.:.This likely affects other shifted printable characters in applications using the Kitty keyboard protocol, not only Neovim or colon.
Impact
Minor bug or occasional failure
Version or commit
main @ 30c9622
Environment
Built-in web terminal, including the web surface wrapped by the desktop app; Neovim with Kitty keyboard protocol support.
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
N/A