NS8 slice: Prove physical keyboard parity without losing mobile access #55

Closed
opened 2026-06-21 09:12:14 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Attached physical keyboards are first-class and efficient, while every core action still has a mobile no-required-modifier path.

AUTHORITY: Parent #43; KEYMAP.md physical-keyboard alias rules; req: input/001, input/004-007, testing/001-004.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes; parent #43 may be commented/checklisted.
  • Handoff state: committed clean, tracker commented/closed.

PARENT: #43 via explicit issue link and parent checklist.

SCOPE: Physical keyboard trace fixtures, alias table for arrows/Escape/Home/End/Page keys/%/digits where available, QWERTZ/iOS profile preservation, acceptance tasks, contextual help labels.

BOUNDARIES: Do not make physical keyboard shortcuts the only path for core actions. Do not add runtime keymap customization. Do not break iOS/QWERTZ traces to satisfy desktop habits.

ACCEPTANCE:

  • Physical arrow/navigation aliases work where terminals emit them.
  • Escape can alias return-to-Normal, but Insert Space pause then n remains the canonical mobile path.
  • % can alias m m, but m m remains the canonical mobile delimiter-match path.
  • Direct digit counts work on physical keyboards, and Space r repeat/count rail remains available for mobile.
  • Help/rails show both canonical mobile paths and physical aliases without overwhelming narrow viewports.
  • Terminal trace fixtures prove at least one iOS software keyboard path and one physical keyboard path for the same core tasks.

VERIFICATION:

  • zig build test
  • Replay/fixture tests for iOS QWERTZ, physical arrows, Escape alias, % alias, digit counts, mobile alternatives, and help/rail rendering.
  • zig build v1-smoke

BLOCKERS: none.

OBJECTIVE: Attached physical keyboards are first-class and efficient, while every core action still has a mobile no-required-modifier path. AUTHORITY: Parent #43; KEYMAP.md physical-keyboard alias rules; req: input/001, input/004-007, testing/001-004. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes; parent #43 may be commented/checklisted. - Handoff state: committed clean, tracker commented/closed. PARENT: #43 via explicit issue link and parent checklist. SCOPE: Physical keyboard trace fixtures, alias table for arrows/Escape/Home/End/Page keys/%/digits where available, QWERTZ/iOS profile preservation, acceptance tasks, contextual help labels. BOUNDARIES: Do not make physical keyboard shortcuts the only path for core actions. Do not add runtime keymap customization. Do not break iOS/QWERTZ traces to satisfy desktop habits. ACCEPTANCE: - Physical arrow/navigation aliases work where terminals emit them. - Escape can alias return-to-Normal, but Insert `Space` pause then `n` remains the canonical mobile path. - `%` can alias `m m`, but `m m` remains the canonical mobile delimiter-match path. - Direct digit counts work on physical keyboards, and `Space r` repeat/count rail remains available for mobile. - Help/rails show both canonical mobile paths and physical aliases without overwhelming narrow viewports. - Terminal trace fixtures prove at least one iOS software keyboard path and one physical keyboard path for the same core tasks. VERIFICATION: - `zig build test` - Replay/fixture tests for iOS QWERTZ, physical arrows, Escape alias, `%` alias, digit counts, mobile alternatives, and help/rail rendering. - `zig build v1-smoke` BLOCKERS: none.
tmk241 added the sliceready-for-agentgoal labels 2026-06-21 09:12:14 +00:00
Author
Owner

Implemented and committed #55 as e96d33e Add physical keyboard parity aliases.

What changed:

  • Added terminal decoding for Home/End/PageUp/PageDown escape sequences.
  • Added trace aliases for physical arrow/Home/End/Page keys.
  • Normal mode now supports physical Home/End/PageUp/PageDown and % match jumping alongside the mobile m m path.
  • Insert and select modes now accept physical arrows/Home/End while preserving Space n mobile escape-to-normal behavior.
  • Panels now support physical PageUp/PageDown movement in addition to arrows/Enter.
  • Updated leader rail/status text and KEYMAP status to show parity without making Esc/Ctrl/Alt/function keys required.

Verification:

  • zig build test
  • zig build
  • zig build v1-smoke
  • zig build run -- --help
  • zig build run -- src/main.zig
  • redgate list /opt/repositories/mim/REQUIREMENTS.md
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

Tests added:

  • raw terminal escape decoding for physical navigation keys
  • physical arrows/Home/End/Page/Escape behavior
  • digit-count physical repeat parity vs repeated movement
  • % match jump parity with m m
  • insert/select physical keys plus mobile Space n
  • panel page-key movement
  • adversarial unknown physical key rejection and narrow help fit
Implemented and committed #55 as `e96d33e Add physical keyboard parity aliases`. What changed: - Added terminal decoding for Home/End/PageUp/PageDown escape sequences. - Added trace aliases for physical arrow/Home/End/Page keys. - Normal mode now supports physical Home/End/PageUp/PageDown and `%` match jumping alongside the mobile `m m` path. - Insert and select modes now accept physical arrows/Home/End while preserving `Space n` mobile escape-to-normal behavior. - Panels now support physical PageUp/PageDown movement in addition to arrows/Enter. - Updated leader rail/status text and KEYMAP status to show parity without making Esc/Ctrl/Alt/function keys required. Verification: - `zig build test` - `zig build` - `zig build v1-smoke` - `zig build run -- --help` - `zig build run -- src/main.zig` - `redgate list /opt/repositories/mim/REQUIREMENTS.md` - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` Tests added: - raw terminal escape decoding for physical navigation keys - physical arrows/Home/End/Page/Escape behavior - digit-count physical repeat parity vs repeated movement - `%` match jump parity with `m m` - insert/select physical keys plus mobile `Space n` - panel page-key movement - adversarial unknown physical key rejection and narrow help fit
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#55