Repository navigation
Conversation
JM-FRANK
force-pushed
the
feat/kitty-keyboard-basic
branch
from
October 6, 2026 15:36
25dc6dd to
65c625b
Compare
…port Add negotiated flag 1 keyboard encoding, independent screen mode stacks, layout-aware text handling and existing scroll shortcut precedence. Include input regression tests and documented local and device validation. Virtual Fn combinations currently do not preserve Ctrl modifiers. Refs termux#5300 and termux#5198.
JM-FRANK
force-pushed
the
feat/kitty-keyboard-basic
branch
from
October 6, 2026 16:36
a2abaaf to
60a581a
Compare
JM-FRANK
marked this pull request as ready for review
October 6, 2026 16:37
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.
Termux currently sends overlapping legacy encodings for Ctrl+I/Tab and unmodified/modified Enter. This adds negotiated kitty keyboard disambiguation (flag
1), so applications can distinguish these combinations, Ctrl+digits such as Ctrl+0, and Escape.Refs #5300 and #5198.
Changes
CSI ? u,CSI > flags u,CSI < count u, andCSI = flags ; mode u, with separate bounded mode stacks for the main and alternate screens and reset handling.Review fixes and current validation
KeyHandler.getCodefor view and virtual Fn consumers.65c625b2. Complete Debug APK assembly passed for arm64-v8a, armeabi-v7a, x86, x86_64 and universal output. APKs, checksums, local test reports and a device-retest checklist are retained locally.0.118.0+kitty.65c625b2is now installed on the Android 16 arm64 test phone. All 96 recorded checks passed: 83 Android framework KeyEvents delivered directly to production TerminalView/native PTY with scroll checks, 2 checks of the current virtual AltGr+Space mapping (no character), and 11 real Rime touch/modifier/lifecycle checks. The direct framework-event checks do not cover physical HID or OS input dispatch.65c625b2, across on-device/external physical keyboards, local Termux/SSH, and Zellij/tmux. This is user-reported verification; versions and raw captures were not supplied.git diff --checkpassed.Historical validation before review fixes
91ae4885. It does not validate the review fixes below.Protocol scope and validation records.
Protocol scope and limitations
Only disambiguation flag
1is implemented. Repeat/release events (2), alternate key codes (4), reporting all keys (8), and associated text (16) are not implemented; unsupported flags are masked out and are not advertised as enabled. This PR references the feature requests without closing the full-protocol request.Text-only IME commits cannot preserve physical modifier/key identity that Android does not deliver. Termux application shortcuts retain precedence over terminal input.
Known limitation deferred to future work: virtual Fn (volume-up shortcut) mappings do not preserve Ctrl on the resulting key. For example, Ctrl+virtual Fn+W sends an unmodified Up rather than Ctrl+Up. That combination is not covered by the recorded passing checks.