Conversation
…0d7) The dedicated gesture-button CID (0x00c3) is MX-line only. Several other Logitech mice — confirmed on real hardware from two independently reported devices, the Lift (B031, issue AprilNEA#1199) and the Logi POP Mouse (b030, issue AprilNEA#859) — expose the same physical role (a single round button with hold-and-swipe support) under CID 0x00d7 instead, and neither exposes 0x00c3 at all. `openlogi diag controls` on both devices shows 0x00d7 with the exact `divertable | raw-xy | force-raw-xy` flag combination that marks the gesture button on MX-line devices, and no other CID either device reports shares it. Add GESTURE_BUTTON_ALT_CID and list it alongside the MX-line CID in GESTURE_SOURCE_BUTTONS — the two are mutually exclusive per device, so listing both is safe. This is what surfaces the Lift's and POP's dedicated button as GestureButton in the GUI and in capture at all: previously gesture_sources=0 on the Lift, and the special button on the POP had no ButtonId anywhere in the table. Fixes AprilNEA#1199 Fixes AprilNEA#859
|
| /// either device's control table shares. Neither device exposes `0x00c3` at | ||
| /// all, so the two CIDs are mutually exclusive per device rather than | ||
| /// competing for the same physical control. | ||
| pub const GESTURE_BUTTON_ALT_CID: u16 = 0x00d7; |
There was a problem hiding this comment.
Duplicated protocol identifier
The protocol layer already defines CID 0x00d7 as control_ids::VIRTUAL_GESTURE_BUTTON, but this constant duplicates its numeric value as a literal. Derive it from the typed protocol constant, as HAPTIC_PANEL_CID does, so these definitions cannot silently drift apart.
Suggested change
| pub const GESTURE_BUTTON_ALT_CID: u16 = 0x00d7; | |
| pub const GESTURE_BUTTON_ALT_CID: u16 = control_ids::VIRTUAL_GESTURE_BUTTON.0; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
0x00c3) is MX-line only. Two independently reported devices — the Lift (B031, [Bug]: Lift (B031) gesture button (HID++ CID 0x00d7) is never captured — GESTURE_BUTTON_CID hardcoded to 0x00c3 #1199) and the Logi POP Mouse (b030, [Device]: Logi POP Mouse not all buttons are customizable #859) — expose the same physical role (a single round button with hold-and-swipe support) under CID0x00d7instead, and neither exposes0x00c3at all.openlogi diag controlsoutput attached to both issues shows0x00d7with the exactdivertable | raw-xy | force-raw-xyflag combination that marks the gesture button on MX-line devices, and no other CID either device reports shares it.Changes
openlogi-device: addGESTURE_BUTTON_ALT_CID(0x00d7) and list it alongside the MX-line CID inGESTURE_SOURCE_BUTTONS— the two are mutually exclusive per device (confirmed by both devices' control tables), so listing both is safe with no per-model gating needed.ButtonId::GestureButtonthe same way the MX-line CID does.Testing
cargo fmt --all -- --checkRUSTFLAGS="-D warnings" cargo clippy --workspace --all-targets -- -D warningscargo test --workspaceopenlogi diag controlsoutput both reporters attached to their issues. Confirmed the samedivertable | raw-xy | force-raw-xysignature between the two unrelated devices, which is what gives confidence this is a real shared CID rather than device-specific.Fixes #1199
Fixes #859