fix(tui): enable extended keys in Alacritty - #88958
Open
valda wants to merge 1 commit into
Open
Conversation
valda
marked this pull request as ready for review
August 18, 2026 12:29
Contributor
Correct allowlist addition — Alacritty implements both the Kitty keyboard protocol and modifyOtherKeys — and threading an optional
No blocking issues found beyond confirming item 1's variable/casing reality. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Depends on #88957. Enabling extended keys makes Alacritty report
Ctrl+Jas a normalized modified key; #88957 preserves its documented newline behavior.Root cause
Alacritty 0.16 implements the Kitty keyboard protocol, but Hermes omitted it from
EXTENDED_KEYS_TERMINALS. As a result, Hermes did not request distinct modified-key reporting, andShift+Returncould collapse to ordinary Return.No existing open PR adds Alacritty to the Ink TUI extended-key allowlist. Related CLI protocol work such as #87630 changes the classic Python CLI, not
@hermes/ink.Behavior
Alacritty now receives the same extended-key activation as Kitty, WezTerm, Ghostty, and the other existing allowlisted terminals. Unknown terminals remain opt-out.
This should land after #88957: enabling extended keys causes Alacritty to report
Ctrl+Jas a normalized modified key, which that PR maps to the documented newline behavior.Testing
npm test --workspace ui-tui -- --run packages/hermes-ink/src/ink/terminal.test.ts(9 passed)npm run typecheck --workspace ui-tuinpm run lint --workspace ui-tui(0 errors; 2 pre-existing warnings)npx prettier --check ui-tui/packages/hermes-ink/src/ink/terminal.ts ui-tui/packages/hermes-ink/src/ink/terminal.test.tsnpm run build --workspace ui-tuigit diff --check upstream/main...HEADDogfood
Verified on Alacritty 0.16.1: after extended-key activation,
Shift+Returnis distinguishable and inserts a newline. With the companion Ctrl+J patch applied,Ctrl+Jalso inserts a newline and normal Return still submits.