Skip to content

iOS: full keyboard keys, Hex key, and recording panel (experiment) - #914

Merged
kitlangton merged 1 commit into
devfrom
ios-full-keyboard-keys
Nov 1, 2026
Merged

kitlangton merged 1 commit into
devfrom
ios-full-keyboard-keys

Conversation

@kitlangton

@kitlangton kitlangton commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Behind the experiments.fullKeyboard flag from #910 (off by default), the Hex keyboard becomes a full QWERTY keyboard on iPhone: 123, space, the Hex key, return. With the flag off, the dictation bar mounts exactly as today; KeyboardSurface.swift is untouched.

Before: the Hex keyboard is a 140 pt dictation bar; you switch keyboards to type.
After (flag on):

KeyboardViewController.mountSurface()      // only while idle
  flag off → KeyboardSurfaceView, 140 pt, polls 25 Hz (unchanged)
  flag on  → FullKeyboardView, 267 pt (190 landscape), polls 4 Hz, 30 Hz while recording
    KeyboardKeyPlaneView   CoreGraphics keys + balloons, multi-touch rollover
    FullKeyboardEngine     pure typing logic over KeyboardTextTarget (tested)
    HexKeyControl          tap: record here (warm) or open Hex (cold, ↗); hold: styles + Return to
    HexKeyRecordingPanel   clock, style, Dot Scope, ✕ / Done, same height as the keys

Colours follow the field's keyboardAppearance first, then the system style. After an insertion, an "Undo dictation" chip takes it back until the next edit. Suggestions and autocorrect are PR 3.

Simulator stills (letters, 123, recording, light, dark, and a dark field in a light app) were reviewed outside this PR.

Read: 13 engine tests (rollover, slide, shift chord and lock, 123 hold-slide, double-space, word delete, email and number fields) pass on an iOS 18 simulator with the PR 1 suites (40 total). Not yet tried on a device.

@kitlangton
kitlangton merged commit 55b50e7 into dev Nov 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant