[Feature]: Allow click and drag to change pointer DPI
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 180
Description
### Pre-flight checklist
- [x] I searched existing issues and the [Roadmap](https://github.com/AprilNEA/OpenLogi#roadmap), and this isn't already tracked.
### Problem / motivation
An older version of Options had this feature, then Options+ dropped it for some reason. I'd like to see this implemented in OpenLogi.
### Proposed solution
It's basically this: a binding for Cycle DPI would work as it does now when clicked, but also allows you to click and drag, and from that point dragging left decreases the current DPI and drag right increases it, with a small UI slider appearing near the cursor to visualise the change. When you let go of the button, the selected value is persisted in the current slot as if you manually changed it in the UI. The setting is app-specific if applicable (or global if not).
Some people might find it useful to click and scroll to change DPI instead - I think it's also valid. Dragging up/down instead would be another possibility.
There are multiple possible ways I see this implemented in the UI:
1) Keep the current "Cycle DPI Presets" action in the bindings, but add a checkbox under Pointer tuning that controls whether click+drag/click+scroll is active.
2) Add a distinct action (named something like "Cycle DPI Presets / Drag to adjust") that combines the two as proposed.
### Alternatives considered
The last version of Options had this, Options+ dropped the feature.
### Related area(s)
- [x] GUI
- [ ] CLI
- [x] Button actions / remapping
- [x] DPI
- [ ] SmartShift
- [x] Per-application profiles
- [ ] Configuration (TOML)
- [ ] Auto-update
- [ ] Other
### Additional context
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the existing Cycle DPI Presets binding, Pointer tuning UI, and per-application profile handling mentioned in the issue. Clarify whether click-and-drag or click-and-scroll is in scope and which proposed UI design to use. Done means dragging changes DPI with visible feedback and persists the selected value in the current slot.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100