Skip to content

fix: use MX Anywhere 3S layout key#136

Merged
hieshima merged 3 commits intoTomBadash:masterfrom
hieshima:fix/mx-anywhere-3s-layout-key
May 5, 2026
Merged

fix: use MX Anywhere 3S layout key#136
hieshima merged 3 commits intoTomBadash:masterfrom
hieshima:fix/mx-anywhere-3s-layout-key

Conversation

@hieshima
Copy link
Copy Markdown
Collaborator

Problem

MX Anywhere 3S is already present in the Logitech device catalog, but its ui_layout is set to the image filename:

ui_layout="mouse_mx_anywhere_3s.png"

ui_layout is supposed to be a layout key, not an asset path. Because of this, an MX Anywhere 3S (0xB037) does not use the existing mx_anywhere_3s -> mx_anywhere family fallback and instead resolves to the generic mouse layout.

That means the device can be detected as MX Anywhere 3S while still losing the interactive Anywhere-family overlay.

Related context:

Fix

  • Change MX Anywhere 3S ui_layout from the image filename to mx_anywhere_3s
  • Keep image_asset="mouse_mx_anywhere_3s.png" unchanged
  • Add regression coverage for Anywhere family layout fallback
  • Add a catalog invariant test to prevent known device ui_layout values from silently being asset filenames or resolving to generic layouts

Scope

This is a static metadata fix only.

It does not change:

  • HID++ runtime behavior
  • button capability semantics
  • unknown-device fallback policy
  • QML/UI code
  • config schema or migrations

It does not attempt to fix the MX Anywhere 2S button/capability issues tracked in #94/#96/#98.

Tested

uv run --with-requirements requirements.txt python -m unittest discover -s tests
Ran 265 tests in 23.217s
OK

@hieshima hieshima merged commit e32181f into TomBadash:master May 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant