Files
surface-dial-renewed/README.md
T

1.4 KiB

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

cargo run --manifest-path renewed_driver/Cargo.toml -- --mode multitouch

Regular wheel mode:

cargo run --manifest-path renewed_driver/Cargo.toml -- --mode wheel

Multitouch timing can be tuned without recompiling:

cargo run --manifest-path renewed_driver/Cargo.toml -- --mode multitouch --mt-idle-ms 100 --mt-idle-max-ms 1500 --mt-settle-ms 80

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/.