Initial commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user