Skip to content

feat: add MX Master 2S (3S) thumb wheel bindings - #525

Merged
davidbudnick merged 3 commits into
AprilNEA:masterfrom
the-long-ride:feature/add-paired-thumb-wheel-action-presets
Aug 10, 2026
Merged

feat: add MX Master 2S (3S) thumb wheel bindings#525
davidbudnick merged 3 commits into
AprilNEA:masterfrom
the-long-ride:feature/add-paired-thumb-wheel-action-presets

Conversation

@the-long-ride

Copy link
Copy Markdown
Contributor

Adds paired thumb-wheel actions for MX Master 2S, including Bluetooth detection and legacy HID++ Gesture2 support.

@the-long-ride
the-long-ride marked this pull request as ready for review August 7, 2026 09:50
@greptile-apps

greptile-apps Bot commented Aug 7, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds paired thumb-wheel presets and capability detection for modern and legacy MX devices, including Bluetooth marketing-name discovery and diagnostic Gestures2 support.

  • Adds a paired thumb-wheel control and preset picker to the mouse model.
  • Extends inventory and IPC capabilities with legacy Gestures2 thumb-wheel detection.
  • Adds Windows native horizontal-wheel action dispatch and diagnostic legacy packet tracing.

Confidence Score: 3/5

The PR does not appear safe to merge because horizontal input can still be attributed to the wrong device on Windows, while legacy thumb-wheel bindings remain nonfunctional on macOS and Linux.

Windows resolves source-less horizontal-wheel events against the selected device’s bindings and suppresses the original input, and non-Windows builds expose legacy thumb-wheel bindings without a runtime path that executes them.

Files Needing Attention: crates/openlogi-agent-core/src/hook_runtime.rs, crates/openlogi-hid/src/gesture.rs

Important Files Changed

Filename Overview
crates/openlogi-agent-core/src/hook_runtime.rs Adds Windows-native horizontal-wheel remapping; previously reported device-attribution and non-Windows dispatch gaps remain.
crates/openlogi-hid/src/gesture.rs Adds diagnostic Gestures2 diversion and packet tracing, but the previously reported legacy rotation-dispatch gap remains.
crates/openlogi-hidpp/src/feature/gestures2/mod.rs Introduces typed Gestures2 descriptor discovery and diversion-state access for legacy thumb wheels.
crates/openlogi-hid/src/inventory/features.rs Detects legacy thumb-wheel capability through Gestures2 gesture 46 and reads HID++ marketing identity.
crates/openlogi-gui/src/mouse_model/thumbwheel.rs Defines paired thumb-wheel presets and exact recognition of persisted directional action pairs.
crates/openlogi-gui/src/mouse_model/view.rs Represents thumb-wheel rotation as one capability-gated visual control backed by two bindings.

Sequence Diagram

sequenceDiagram
  participant Device as MX Thumb Wheel
  participant Inventory as HID Inventory
  participant GUI as Binding UI
  participant Input as OS Hook / HID Capture
  participant Runtime as Agent Runtime
  Inventory->>Device: Probe 0x2150 or Gestures2 gesture 46
  Inventory->>GUI: Report thumbwheel capability
  GUI->>Runtime: Persist paired directional bindings
  Device->>Input: Emit horizontal rotation
  Input->>Runtime: Resolve directional binding
  Runtime->>Runtime: Execute configured action
Loading

Reviews (5): Last reviewed commit: "rebase & resolve conflict" | Re-trigger Greptile

Comment thread crates/openlogi-agent-core/src/hook_runtime.rs Outdated
Comment thread crates/openlogi-agent-core/src/hook_runtime.rs Outdated
@the-long-ride
the-long-ride force-pushed the feature/add-paired-thumb-wheel-action-presets branch from 48a299e to 5a844be Compare August 7, 2026 11:02
@davidbudnick

Copy link
Copy Markdown
Collaborator

@the-long-ride 👋🏻 Can you please rebase, ensure all actions are passing and review comments from greptile-apps? Thanks!

@davidbudnick davidbudnick added the type: feature New feature request label Aug 10, 2026
@davidbudnick davidbudnick added this to the v0.6.25 milestone Aug 10, 2026
@the-long-ride
the-long-ride force-pushed the feature/add-paired-thumb-wheel-action-presets branch from d51017f to aaeaab4 Compare August 10, 2026 13:36
@davidbudnick
davidbudnick merged commit 011415f into AprilNEA:master Aug 10, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants