New macOS input interface where a keyboard is emulated on the trackpad for silent typing.
Build a desktop app that converts multi-touch trackpad interactions into text with low noise and fast feedback.
For MVP we will type inside the app first (not system-wide input injection yet).
As a user, I can place multiple fingers on the MacBook trackpad and produce letters/commands without pressing physical keys, so I can type quietly.
- Trackpad touch capture
- Detect individual touches and positions.
- Support concurrent touches (multi-finger).
- Touch-to-key mapping
- Map touch coordinates to a key grid.
- Emit a character when a touch begins in a region.
- Text output buffer
- Show produced characters in an in-app text area.
- Force Touch hook (experimental)
- Detect pressure changes where available.
- Map pressure thresholds to alternate behavior (ex: Shift/delete).
- Debug visualization
- Show current touch points and mapped keys for tuning.
- System-wide keyboard emulation.
- Full keyboard layout parity.
- Predictive text/autocorrect.
- Accessibility/permission polish.
- Production packaging/distribution.
- Create a macOS app shell with AppKit touch-capturing view.
- Implement a simple key grid model (letters + space + delete).
- Add a session state object to collect emitted characters.
- Add pressure event handling and simple action mapping.
- Add metrics logging (touch count, key hit rate) for tuning.
- M1: Input Capture
- Touch events visible on screen.
- M2: Character Emission
- Touch regions emit characters into output.
- M3: Multi-touch + Pressure
- Multiple simultaneous touches handled correctly.
- Pressure action path tested on supported hardware.
- M4: Stability Pass
- Reduce accidental hits and improve mapping consistency.
- M1: Touch capture working (MultitouchSupport bridge, live finger dots, event log)
- M2: Character emission (QWERTY key grid, output buffer, force-press alt chars, key grid overlay)
- M3: Multi-touch + pressure handling (modifier-hold zones: shift + delete corners)
- M4: Stability pass (contact-size filter, zone cooldown, adjustable pressure floor, settings panel)
Requirements: macOS 11+, Xcode command-line tools or full Xcode.
swift build
swift runAccessibility permission required: On first launch, macOS will prompt for Accessibility access (needed for the global key monitor that toggles capture). Grant it in System Settings → Privacy & Security → Accessibility.
Once running, double-tap either Control key to start/stop touch capture.