Define mobile SSH input tiers
This commit is contained in:
@@ -38,6 +38,29 @@ The input path has three distinct layers:
|
||||
No command should inspect layout quirks directly. A new keyboard layout is a new
|
||||
source-patched profile and trace fixture, not an ad-hoc branch in command code.
|
||||
|
||||
## Input capability tiers
|
||||
|
||||
Mobile SSH clients commonly expose more than a plain software keyboard: Escape,
|
||||
Control, arrow keys, paste, and sometimes an attached hardware keyboard. The v1
|
||||
keymap therefore treats these as capability tiers, not separate products:
|
||||
|
||||
1. **Core mobile tier**: commands reachable without required Esc/Ctrl/Alt,
|
||||
function keys, number-row comfort, or symbol gymnastics. Space rails and
|
||||
mnemonic letter aliases live here.
|
||||
2. **Mobile SSH accelerator tier**: Esc, Ctrl, arrows, Home/End/Page, and paste
|
||||
may accelerate the same intents when the SSH client exposes them. They must
|
||||
never be the only recovery or core editing path.
|
||||
3. **Attached keyboard tier**: Vim-style and terminal-standard direct keys such
|
||||
as `gg`, `G`, `Ctrl-u`, `Ctrl-d`, `0`, `^`, `$`, and `.` are first-class when
|
||||
available, but each core operation keeps a discoverable mobile fallback or
|
||||
visible rail.
|
||||
|
||||
When adding a binding, choose the narrowest tier that makes the operation usable,
|
||||
then document any accelerator aliases next to the canonical mobile path. If a
|
||||
terminal trace shows a client cannot send an accelerator reliably, prefer a
|
||||
source-patched layout/profile update or a visible fallback over a special-case
|
||||
command branch.
|
||||
|
||||
## Orthogonality rules
|
||||
|
||||
The keymap should feel small because its parts compose:
|
||||
|
||||
Reference in New Issue
Block a user