# Surface Dial Renewed Driver This is a concept rewrite of the Surface Dial userspace driver. It is kept separate from the existing daemon so the new event model can be tested without touching the current code. ## Goals - Multitouch scrolling first. - Regular wheel scrolling as a fallback mode. - Dial sensitivity adjustment by holding the button and rotating. - Desktop notification feedback for sensitivity changes. - Small, explicit state machines instead of mode/thread sprawl. ## Run ```bash cargo run --manifest-path renewed_driver/Cargo.toml -- --mode multitouch ``` Regular wheel mode: ```bash cargo run --manifest-path renewed_driver/Cargo.toml -- --mode wheel ``` The process still needs access to the Surface Dial event device and `/dev/uinput`, just like the original daemon. ## Controls - Rotate: scroll. - Hold and rotate: change sensitivity. - Release after changing sensitivity: resume scroll mode. Sensitivity levels are 1 through 32. KDE displays the current value through the native OSD text path, with desktop notifications used only as a fallback. ## Documentation Detailed architecture, behavior, protocol, install, and troubleshooting notes live under [`doc/`](doc/README.md).