Skip to content

fix(gui): recognize MX Ergo's DPI slot name for the mouse diagram - #1391

Open
armandodollia wants to merge 6 commits into
AprilNEA:masterfrom
armandodollia:bugfix/mx-ergo-s_dpi-toggle
Open

armandodollia wants to merge 6 commits into
AprilNEA:masterfrom
armandodollia:bugfix/mx-ergo-s_dpi-toggle

Conversation

@armandodollia

@armandodollia armandodollia commented Sep 14, 2026

Copy link
Copy Markdown

Summary

  • The MX Ergo S's DPI/precision-mode button never appeared as remappable in the mouse diagram, even though its binding target and HID++ capture path already work.

Changes

  • openlogi-desktop: map_slot_name() in crates/openlogi-desktop/src/features/mouse/geometry.rs now also recognizes SLOT_NAME_CHANGE_POINTER_SPEED — the slot name Logitech's own asset metadata uses for the MX Ergo family's DPI/precision-mode button (confirmed against the cached mx_ergo_s metadata), alongside the existing SLOT_NAME_MODESHIFT_BUTTON/SLOT_NAME_DPI_BUTTON names. Added a test case for the new alias.

Testing

  • cargo test -p openlogi-desktop features::mouse::geometry:: — pass (including new dpi_slot_names_map_to_dpi_toggle_button case)
  • cargo test -p openlogi-desktop — 213 passed
  • cargo fmt --all -- --check — pass
  • cargo clippy -p openlogi-desktop --all-targets -- -D warnings — pass
  • Runtime-verified on real hardware: dev build (cargo run -p openlogi-desktop) against a physical MX Ergo S over Bluetooth — the DPI Toggle button now shows up as a hotspot in the Buttons panel and is bindable (screenshot below).

🤖 Generated with Claude Code

p.s. Used Claude to find where the issue was because I am not as familiar with the codebase then spend some time working backwards and checking all the logs from the main branch ap and the code changes it made and deemed the change to be safe with a small blast radius

Logitech's asset metadata names the MX Ergo family's precision-mode/DPI
button SLOT_NAME_CHANGE_POINTER_SPEED rather than the SLOT_NAME_DPI_BUTTON
/ SLOT_NAME_MODESHIFT_BUTTON names other mice use, so the hotspot was
silently dropped and the button never appeared as remappable.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Sep 14, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the mapping change is narrowly scoped and covered by a focused test.

Summary

This PR recognizes the MX Ergo family’s pointer-speed slot name as the existing DPI-toggle control.

  • Adds SLOT_NAME_CHANGE_POINTER_SPEED as an alias for ButtonId::DpiToggle.
  • Extends the geometry mapping test to cover the new alias.

Reviews (6) · Last reviewed commit: "Merge branch 'master' into bugfix/mx-erg..."

@armandodollia

Copy link
Copy Markdown
Author

Verified by building the app locally and confirming that I can remap the DPI switch button on my MX Ergo S.

Screenshot:
Screenshot 2026-09-14 at 2 06 27 PM

@davidbudnick davidbudnick added type: bug Something is broken or behaves incorrectly area: gui Graphical user interface platform: all Cross-platform issue labels Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: gui Graphical user interface platform: all Cross-platform issue type: bug Something is broken or behaves incorrectly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants