Affected version
OpenLogi v0.6.18 with an MX Master 3 or 3S using the dedicated gesture button (HID++ CID 0x00c3).
Reproduction
- Configure gesture-button click and directional swipe actions.
- Confirm that the actions work.
- Let the mouse sleep, or put the Mac to sleep and wake it.
- Try the gesture button again.
Actual behavior
Gesture click and swipe events can remain dead after wake. Reopening the OpenLogi GUI may not recover them because the persistent openlogi-agent process owns HID++ capture separately from the GUI.
Expected behavior
The background agent automatically restores gesture capture after device reconnection or system wake, without requiring either process to restart.
Temporary workaround
Restart openlogi-agent so it opens a new HID++ session and reapplies diversion.
Root cause
Gesture capture uses temporary HID++ control diversion for CID 0x00c3. Firmware can discard that volatile diversion during a mouse or system sleep transition while the capture task remains alive and considers the same route and configuration active. The capture identity therefore does not change, so the manager does not recreate the session or run arm_controls again.
Inventory wake recovery currently reapplies DPI and SmartShift settings but does not invalidate and re-arm the selected device capture session. Short Mac sleeps can also evade the polling-gap wake heuristic.
Proposed fix
- Observe native macOS wake notifications.
- Track a shared capture restart generation.
- Increment it when the selected device wakes, reconnects, or requires volatile restoration.
- Include generation in the capture identity so orderly teardown and recreation reapplies diversion.
- Preserve pairing exclusion and avoid restarts for unrelated devices.
Related work
Affected version
OpenLogi v0.6.18 with an MX Master 3 or 3S using the dedicated gesture button (HID++ CID
0x00c3).Reproduction
Actual behavior
Gesture click and swipe events can remain dead after wake. Reopening the OpenLogi GUI may not recover them because the persistent
openlogi-agentprocess owns HID++ capture separately from the GUI.Expected behavior
The background agent automatically restores gesture capture after device reconnection or system wake, without requiring either process to restart.
Temporary workaround
Restart
openlogi-agentso it opens a new HID++ session and reapplies diversion.Root cause
Gesture capture uses temporary HID++ control diversion for CID
0x00c3. Firmware can discard that volatile diversion during a mouse or system sleep transition while the capture task remains alive and considers the same route and configuration active. The capture identity therefore does not change, so the manager does not recreate the session or runarm_controlsagain.Inventory wake recovery currently reapplies DPI and SmartShift settings but does not invalidate and re-arm the selected device capture session. Short Mac sleeps can also evade the polling-gap wake heuristic.
Proposed fix
Related work