All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] HID: logitech-hidpp: fix Signature M650 side button timing
@ 2026-06-13 17:51 Elliot Douglas
  2026-06-13 17:51 ` [PATCH 1/2] HID: logitech-hidpp: add HID++ 2.0 reprogrammable button support Elliot Douglas
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Elliot Douglas @ 2026-06-13 17:51 UTC (permalink / raw)
  To: linux-input; +Cc: lains, hadess, jikos, bentiss, linux-kernel, edouglas7358

The Logitech Signature M650 over Bluetooth exposes its side buttons in the
normal mouse report, but the reported BTN_SIDE/BTN_EXTRA events are short
click-like events emitted around button release rather than physical
press/release events with the real hold duration. The device appears to reserve
the held side-button state for a built-in gesture mode: holding a side button
long enough, or holding it while using the wheel for horizontal scrolling, can
mean the normal mouse report never emits a usable side-button press at all.
That makes the buttons unusable for standard Linux hold actions such as
push-to-talk, drag modifiers, or remapping rules that depend on key-up timing.

When HID++ 2.0 feature 0x1b04, SpecialKeysMseButtons /
REPROG_CONTROLS_V4, temporarily diverts the same controls, the device sends
diverted-control notifications with real press and release timing. This series
adds quirk-gated support for those notifications and enables it for the
Bluetooth Signature M650.

Before enabling diversion, the driver verifies that each mapped control is
present in the device's HID++ control table and is advertised as a divertable
mouse control.

The diverted M650 controls are reported as BTN_BACK and BTN_FORWARD. Logitech's
Signature M650 getting-started page labels these physical controls as
Back/Forward buttons and describes their default page-navigation behavior:
https://support.logi.com/hc/en-nz/articles/4414473810583-Getting-Started-Signature-M650

The reprogrammable-control support is per-product and parses the full HID++
divertedButtonsEvent pressed-control list, so it can support devices with more
buttons without relying on a single last-control release heuristic. Only the
Signature M650 opts in for now. Other Logitech devices should only be enabled
after their HID++ control IDs and divertedButtonsEvent behavior are captured
and verified.

There is evidence that this is not unique to the M650. A prior MX Anywhere 3
patch used the same HID++ feature to fix thumb buttons that only activated on
release, and Logitech documents side-button + wheel horizontal scrolling for
both the MX Anywhere 3/3S and Signature M650. Solaar's device reports and rules
documentation also show HID++ divertable back/forward controls on MX Master 3
and MX Master 3S class devices. This series remains conservative and only
enables the device tested here.

Tested with a Logitech Signature M650 L over Bluetooth, HID ID
0005:046D:B02A. Baseline evtest showed short release-time BTN_SIDE/BTN_EXTRA
events. Earlier local testing of the same HID++ diversion path showed real
hold-duration press/release events, including holds longer than 4 seconds for
both buttons.

Elliot Douglas (2):
  HID: logitech-hidpp: add HID++ 2.0 reprogrammable button support
  HID: logitech-hidpp: enable reprogrammable buttons on Signature M650

 drivers/hid/hid-logitech-hidpp.c | 236 ++++++++++++++++++++++++++++++-
 1 file changed, 235 insertions(+), 1 deletion(-)


base-commit: f0866517be9345d8245d32b722574b8aecccb348
-- 
2.54.0

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-07-04 23:23 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-13 17:51 [PATCH 0/2] HID: logitech-hidpp: fix Signature M650 side button timing Elliot Douglas
2026-06-13 17:51 ` [PATCH 1/2] HID: logitech-hidpp: add HID++ 2.0 reprogrammable button support Elliot Douglas
2026-06-17 10:28   ` Bastien Nocera
2026-06-18  1:16     ` Elliot Douglas
2026-07-01 22:32       ` Elliot Douglas
2026-07-03 12:53         ` Bastien Nocera
2026-06-13 17:51 ` [PATCH 2/2] HID: logitech-hidpp: enable reprogrammable buttons on Signature M650 Elliot Douglas
2026-06-17 10:28   ` Bastien Nocera
2026-07-04 23:10 ` [PATCH v2 0/2] HID: logitech-hidpp: fix Signature M650 side button timing Elliot Douglas
2026-07-04 23:10   ` [PATCH v2 1/2] HID: logitech-hidpp: add HID++ 2.0 reprogrammable button support Elliot Douglas
2026-07-04 23:23     ` sashiko-bot
2026-07-04 23:10   ` [PATCH v2 2/2] HID: logitech-hidpp: enable reprogrammable buttons on Signature M650 Elliot Douglas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.