Skip to content

Adaptive learned key geometry (taps + gestures) #1

Description

@SHAWNERZZ

Status: in progress — branch feat/adaptive-key-geometry.

Make the keyboard adapt to how the user actually types — for both tapping and gesture/glide input — by learning per-user key geometry and applying a light context prior. Opt-in.

Full design: docs/ADAPTIVE_TYPING.md.

Summary

  • One per-user model keyed by (key, layout, orientation): mean landing offset + variance + count. Content-free (no text), incognito-gated, opt-in.
  • Gestures (hard requirement): adjust the per-key sweet spots in ProximityInfo (Java-only, no native rebuild) so swipes match where your hand goes.
  • Taps: bias KeyDetector.detectHitKey toward the learned center, plus a completion-derived next-character prior — all hard-capped so a clear key press can't flip to a neighbor.
  • Persistence: a new table in leantype.db → rides the existing Advanced-tab backup/restore for free, backward-compatibly. Deletable via a "reset" action.
  • Stats page: visualize the learned keyboard + per-key accuracy/consistency.

Build phases

  1. Foundation: opt-in pref + DB table + DAO + TouchModelManager (EMA + capped geometry API).
  2. Learning + gesture/tap injection (testable on-device).
  3. Context prior (Layer A) for taps.
  4. Stats page + reset UI + strength tuning.

Safety / privacy

Hard caps + confidence gating (no wrong literals); content-free storage; respects incognito and the opt-in toggle; validate on-device that gesture recognition improves, not destabilizes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions