Conversation
Contributor
Author
|
Closing as requested: the mobile terminal already has all four arrow buttons, introduced in #2013 (commit b3e8c03). This draft proposed pinning those controls, keeping them visible with the keyboard hidden, and adding hold-to-repeat and input fixes. We are not pursuing those additional changes in this PR. |
2 tasks
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.
What Changed
Pin four 44-point arrow buttons beside the mobile terminal's scrolling command buttons, and keep the toolbar available when the keyboard is hidden. Taps send one movement; holding repeats until release, navigation, session replacement, backgrounding, or a failed write. Repeats wait for writes to finish so a slow remote connection does not accumulate queued movements.
Encode the toolbar's Ctrl/Alt arrows as modified cursor keys and forward Android hardware arrows, including Shift/Alt/Ctrl combinations, to the terminal.
Why
The existing arrows were buried after six commands in a horizontal scroller and disappeared with the keyboard. This made TUI navigation difficult to discover and use on phones.
Validation
UI Changes
Device verification, before/after screenshots, and a short hold-to-repeat video are deferred at the requester's direction until an emulator is available. Native Android build and iOS runtime validation have not been performed. Shell history, TUI navigation, keyboard transitions, and screen-reader behavior still need an integrated device pass. Application cursor-key mode handling is unchanged and needs compatibility verification during that pass.
Checklist
Implemented with GPT-6 in the Codex harness.
Note
Add press-and-hold arrow controls and hardware arrow-key support for terminal navigation
TerminalArrowControlsgroup that sends terminal arrow sequences on press and repeats while held, usingcreateTerminalKeyRepeat(400ms initial delay, 80ms interval) with cancellation on release, unmount, or failed writes.T3TerminalViewthat maps arrow presses to terminal cursor sequences with Shift/Alt/Ctrl modifier awareness, and bumpshardwareKeyRevisionto 3.resolveModifiedTerminalInputso pending Ctrl and Meta modifiers produce CSI cursor sequences (modifier params 5 and 3) for both CSI and SS3 arrow notation instead of generic control-byte transforms.ThreadTerminalRouteScreento always render the keyboard accessory with the toolbar, arrow controls, and a toggle button; arrow controls are disabled when the terminal is stopped or the route is unfocused.onPressIn/onPressOutprops toComposerToolbarButtonto support the repeat lifecycle.writeModifiedInputnow returnsPromise<boolean>.Macroscope summarized 7eab49b.