From 05cb6f808dedb58193cb753873a23d7706f536b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CArmando?= <“armando.dollia@slalom.com”> Date: Mon, 14 Sep 2026 14:14:14 -0500 Subject: [PATCH] fix(gui): recognize MX Ergo's DPI slot name for the mouse diagram 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 --- .../openlogi-desktop/src/features/mouse/geometry.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/openlogi-desktop/src/features/mouse/geometry.rs b/crates/openlogi-desktop/src/features/mouse/geometry.rs index 9cb6cbc57..3f073d918 100644 --- a/crates/openlogi-desktop/src/features/mouse/geometry.rs +++ b/crates/openlogi-desktop/src/features/mouse/geometry.rs @@ -230,9 +230,11 @@ fn map_slot_name(name: &str) -> Option { } "SLOT_NAME_BACK_BUTTON" => Some(MouseControlId::Button(ButtonId::Back)), "SLOT_NAME_FORWARD_BUTTON" => Some(MouseControlId::Button(ButtonId::Forward)), - "SLOT_NAME_MODESHIFT_BUTTON" | "SLOT_NAME_DPI_BUTTON" => { - Some(MouseControlId::Button(ButtonId::DpiToggle)) - } + // MX Ergo names its precision-mode/DPI-shift button after its + // Options+ function rather than "DPI" or "ModeShift". + "SLOT_NAME_MODESHIFT_BUTTON" + | "SLOT_NAME_DPI_BUTTON" + | "SLOT_NAME_CHANGE_POINTER_SPEED" => Some(MouseControlId::Button(ButtonId::DpiToggle)), "SLOT_NAME_THUMBWHEEL" => Some(MouseControlId::ThumbwheelRotation), "SLOT_NAME_GESTURE_BUTTON" => Some(MouseControlId::Button(ButtonId::GestureButton)), // The MX Master 4 Haptic Sense Panel. Logi names the slot after its @@ -282,6 +284,11 @@ mod tests { map_slot_name("SLOT_NAME_DPI_BUTTON"), Some(MouseControlId::Button(ButtonId::DpiToggle)) ); + // MX Ergo's precision-mode/DPI-shift button uses this slot name. + assert_eq!( + map_slot_name("SLOT_NAME_CHANGE_POINTER_SPEED"), + Some(MouseControlId::Button(ButtonId::DpiToggle)) + ); } #[test]