Skip to content

feat: add MX Master and MX Anywhere control surfaces#141

Open
thisislvca wants to merge 5 commits intomasterfrom
wider-mice-support
Open

feat: add MX Master and MX Anywhere control surfaces#141
thisislvca wants to merge 5 commits intomasterfrom
wider-mice-support

Conversation

@thisislvca
Copy link
Copy Markdown
Collaborator

Summary

This adds dedicated Logitech control-surface support for more MX devices, so Mouser can show exact device layouts instead of leaning on broad fallback behavior.

The practical user-facing change: supported MX Master and MX Anywhere mice now resolve to specific layout keys, images, hotspots, and button sets.

What Changed

  • Added a curated Logitech device catalog with product IDs, aliases, DPI bounds, button sets, layout keys, and image assets.
  • Added dedicated interactive layouts/assets for MX Master-family devices.
  • Added dedicated MX Anywhere support for:
    • MX Anywhere 2S
    • MX Anywhere 3
    • MX Anywhere 3S
  • Added exact MX Anywhere hotspots and supported button sets.
  • Added MX Anywhere 3 product ID 0xB02D, while keeping MX Anywhere 3S on 0xB037.
  • Moved MX Anywhere devices out of the broad fallback path so they resolve to exact ui_layout and image_asset values.
  • Kept unsupported/unknown Logitech mice on the existing fallback behavior.

Device Behavior

MX Anywhere 2S supports:

  • middle click
  • gesture tap + swipe directions
  • back / forward
  • horizontal scroll left / right

MX Anywhere 3 and 3S support the same controls plus:

  • mode shift / SmartShift toggle

Testing

Ran:

python3 -m unittest tests.test_logi_devices tests.test_device_layouts tests.test_backend tests.test_config

Result:

OK - 63 tests, 22 skipped

Also ran:

git diff --check

@thisislvca thisislvca added the enhancement New feature or request label Apr 30, 2026
@baileywickham
Copy link
Copy Markdown

Hey, I appreciate the work on this. I have a PR to add support for the haptic button on the MX Master 4, should I wait for this PR to land before submitting my own PR?

* test: lock broader mouse catalog invariants

* refactor: derive HID-gated buttons from reprog controls

* feat: apply runtime button guardrail to connected HID devices

* docs: document static catalog runtime guardrail

* fix: gate catalog buttons by HID capabilities
@thisislvca thisislvca marked this pull request as ready for review May 5, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants