[Feature]: Add an option to invert Thumb Wheel scroll direction
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
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
The Thumb Wheel direction is currently fixed, and there is no dedicated option to invert it.
On devices such as the Logitech MX Master 3S, users may prefer the opposite physical scroll direction. This is especially noticeable when the Thumb Wheel is mapped to actions such as switching browser tabs.
At the moment, the workaround is to manually swap `ThumbwheelScrollUp` and `ThumbwheelScrollDown` bindings. This works in simple cases, but becomes inconvenient when using multiple actions or per-application bindings.
### Proposed solution
Add a dedicated option to invert the Thumb Wheel direction, similar to the existing inversion option for the main scroll wheel.
For example:
```toml
invert_thumbwheel = true
```
It would also be useful to expose this as an **Invert Thumb Wheel** toggle in the GUI.
When enabled, the physical left/right Thumb Wheel directions should be reversed globally, while existing bindings and per-application bindings remain unchanged.
### Alternatives considered
_No response_
### Related area(s)
- [ ] GUI
- [ ] CLI
- [ ] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] 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 tracing the existing main scroll-wheel inversion option through configuration, input handling, and the GUI, since the issue identifies that as the model. Check how global and per-application bindings are represented. Done means a TOML option and GUI toggle invert Thumb Wheel directions globally without changing existing bindings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100