[Feature]: Support Shift + Main Wheel for Horizontal Scrolling
- 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
## Description
It would be useful to support using the **Shift key + main scroll wheel** to perform horizontal scrolling on macOS.
### Expected behavior
| Input | Expected action |
|---|---|
| Wheel Up | Vertical scroll up |
| Wheel Down | Vertical scroll down |
| **Shift + Wheel Up** | **Horizontal scroll right** |
| **Shift + Wheel Down** | **Horizontal scroll left** |
This is a common scrolling behavior in macOS applications and would be especially useful with the **MX Master 3S**.
## Current behavior
OpenLogi supports horizontal scrolling through the thumb wheel, for example:
```toml
[devices."serial:...".bindings]
ThumbwheelScrollUp = "HorizontalScrollRight"
ThumbwheelScrollDown = "HorizontalScrollLeft"
```
However, there does not appear to be a way to configure the main wheel + Shift modifier through the TOML configuration.
### Proposed solution
## Proposed configuration
Ideally, this could be configured in TOML, for example:
```toml
[devices."serial:...".bindings]
ShiftScrollUp = "HorizontalScrollRight"
ShiftScrollDown = "HorizontalScrollLeft"
```
The exact configuration syntax can follow the existing OpenLogi design.
### Related area(s)
- [x] GUI
- [ ] CLI
- [ ] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] Per-application profiles
- [x] Configuration (TOML)
- [ ] Auto-update
- [ ] Other
### Additional context
The desired behavior would be particularly useful for users who want to keep the thumb wheel assigned to another function while using **Shift + main wheel** for horizontal scrolling.
Thank you for considering this feature.
_No response_
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the existing TOML bindings for ThumbwheelScrollUp and ThumbwheelScrollDown and trace how wheel input and modifiers are represented. Confirm the existing main-wheel vertical behavior, then follow the project's established configuration syntax; done means Shift + Wheel Up/Down produce horizontal right/left on macOS while ordinary wheel behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100