Skip to content

Preserve native keypad identity in terminal input - #337

Open
cristicretu wants to merge 2 commits into
parity/terminal-key-inputfrom
parity/native-keypad-identity
Open

cristicretu wants to merge 2 commits into
parity/terminal-key-inputfrom
parity/native-keypad-identity

Conversation

@cristicretu

Copy link
Copy Markdown
Owner

Behavior

Physical numeric-keypad keys now reach the terminal's shared key encoder, including DEC application-keypad sequences. Keypad Enter stays distinct from Return; top-row digits stay ordinary characters.

The existing pinned gpui_macos patch exposes read-only hardware metadata only during the matching synchronous callback. Nested callbacks and unwinding restore the previous context. Logical GPUI text, IME fields and shortcut identity remain unchanged. The app adds a direct edge to the already-present pinned platform crate; no new package, event monitor, timer or encoder is introduced.

Stacked on #336. Legacy key releases and modified application-keypad chords retain that PR's explicit unsupported behavior.

Validation

  • 1,676 workspace tests passed; 36 ignored. All 15 vendored platform tests passed.
  • Formatting, strict workspace Clippy and release build passed.
  • Synthetic AppKit events verify physical keypad/top-row/Return identities. Tests cover nested duplicate logical keys, unwind/thread cleanup, exact terminal bytes, ordinary query-field insertion and Command shortcut identity.
  • A first broad run exposed the existing login-path late-success/deadline race. Its exact rerun and the final full suite passed; a separate deterministic deadline correction is being prepared.

Test evidence

Rendered results from real synthetic AppKit events and shared-encoder assertions. No OS input was posted and this is test evidence, not a GUI mockup.

Native keypad test evidence

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 15, 2026

Copy link
Copy Markdown

Deploying diri with  Cloudflare Pages  Cloudflare Pages

Latest commit: 84a4883
Status: ✅  Deploy successful!
Preview URL: https://32e21661.diri-53j.pages.dev
Branch Preview URL: https://parity-native-keypad-identit.diri-53j.pages.dev

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant