Documentation

Roadmap

The first development phase is structured around retiring input-safety and compatibility risks before adding polish.

  1. Input reconnaissance — complete. Enumerate candidate mice and preserve real wheel traces as fixtures.
  2. Virtual pointer spike — complete enough. Validate temporary uinput output on a real desktop and use the result to refine the product goal.
  3. Transparent pass-through — complete. Mirror a real pointer through uinput without obvious behavioural regressions.
  4. Safe exclusive capture — complete. Normal shutdown, forced SIGKILL, receiver disappearance/reconnect and suspend/resume recover cleanly on the primary test machine.
  5. Velocity engine v1 — active. The original balanced 1×→4× cadence response is the preferred and provisionally frozen daily-use profile; momentum remains intentionally deferred.
  6. Wheel semantics — complete at engine level. Low/high-resolution, horizontal, burst, mixed-axis, reversal and duplicate-event packet forms have deterministic regression coverage.
  7. Daemon + configuration — complete for the initial model. Stable device identity, hotplug rediscovery, systemd supervision, diagnostics and minimal config are working.
  8. Desktop compatibility — active, initial Wayland/GNOME pass complete. Chrome, VS Code, the terminal and Files passed on Ubuntu/GNOME under Wayland; one PDF viewer was usable but weaker/jumpier. XWayland, X11, other compositors/desktops and broader app coverage remain.
  9. Feel and latency tuning. Optimize slow-scroll precision, fast traversal, stopping and reversal; smoothness is secondary.
  10. Hardening and first release. Hotplug, failures, sanitizers, packaging and clean-machine tests.
Roadmap, not promises. Checkpoints can change when experiments disprove an assumption. We prefer changing the design to preserving a bad plan.