[Bug]: middle click unbindable on G-series mice — its marker is on a different render than the Buttons panel shows
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 180
Description
### Problem
After #949, a G-series mouse gets a Buttons panel with working back/forward. Middle
click is missing from it, even though the OS input hook supports that button —
`ButtonId::is_os_hook_button` is exactly middle/back/forward.
So of the three controls OpenLogi can actually remap on these mice, the panel offers
two.
### Cause
Gaming asset depots split assignment markers across two images. On `g502_wireless`:
| image entry | slots |
|---|---|
| `device_image` | `g1`, `g2`, `g3` (left, right, **middle**), plus `g7`–`g11` |
| `device_side` | `g4`, `g5` (back, forward), `g6` (sniper) |
The Buttons panel renders a single view, and markers are calibrated against the
image they belong to, so no one render carries all three hook-remappable controls.
The side view is currently chosen because it holds two of the three rather than one.
This is not G502-specific — it affects any depot that splits markers this way.
Options+ depots don't: the MX Master's `device_buttons_image` carries middle, back,
forward and the thumb wheel together on one view, which is why the problem has not
shown up before.
### Effect
Middle click cannot be bound at all on these mice. There is no second binding
surface — the Actions Ring tab configures ring slots, and the ring's own trigger is
assigned by binding `ShowActionsRing` to a button in the Buttons panel.
### Possible fixes
A two-view Buttons panel (a toggle, or both renders side by side) is the real
answer, and it's a UI design decision rather than a mapping one.
Synthesizing a middle-click marker onto the side render is explicitly ruled out by
the "if the metadata omits a button marker, omit the button — never synthesize
hotspot positions" rule in `.claude/rules/gui.md`.
### Related
- #949 — added the gaming-depot hotspot reading this builds on
- #886 — gaming-device umbrella
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the gaming-depot hotspot work in #949 and the marker rule in .claude/rules/gui.md, then inspect how the Buttons panel selects and renders a view. A complete fix must expose middle, back, and forward for split-marker depots without synthesizing hotspot positions; the remaining two-view layout choice needs to be resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100