Skip to content

docs: Arc mouse click-loss investigation (open) - #73

Merged
bearyjd merged 4 commits into
mainfrom
docs/arc-mouse-click-loss
Oct 3, 2026
Merged

bearyjd merged 4 commits into
mainfrom
docs/arc-mouse-click-loss

Conversation

@bearyjd

@bearyjd bearyjd commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Summary

Adds docs/research/arc-mouse-click-loss-2026-10-03.md, a working record of an open investigation into dropped left clicks (worst on the Microsoft Arc Touch BT mouse). Docs only; no image, kargs, or test changes.

Key findings so far (details and captures in the doc):

  • The mouse is Bluetooth LE HID-over-GATT.
  • Of 10 physical clicks, only 5 reached evdev and 3 were seen over the air, so about half are lost before the kernel (mouse button/firmware or the BLE link).
  • A release/re-press 6-7 ms apart inside one press shows button chatter at the source.
  • Failed clicks also never appear in kwin's own event list, though a fresh libinput context sees them.
  • Reconnecting the mouse changed nothing, which weakens the stale-per-device-state / debounce hypothesis.
  • Ruled out: the 20260920 to 20260927 image diff (only containerd + selinux-policy), SELinux denials, input-remapper, BT controller autosuspend, compositor stall, terminal mouse reporting.

A machine-local libinput quirk experiment (ModelBouncingKeys=1 for the Arc mouse in /etc/libinput/local-overrides.quirks) is applied but not in the repo. The doc records the stanza and the revert steps.

Test plan

  • Pair the mouse to another device and count clicks (decides worn mouse vs this laptop's BLE handling)
  • Log out/in with the quirk applied and record how long until clicks fail again
  • If the quirk helps, decide whether to bake it into the image (hardware-tuning change per CLAUDE.md; update CODEMAPS and tests/smoke.sh in that change)
  • Update or close out the doc with the final root cause

docs/** is in paths-ignore for build.yml, so no image rebuild is triggered.

…put quirk experiment

Open investigation: failed clicks reach a fresh libinput context but never kwin's own event list. Captures the evidence, ruled-out causes, the unconfirmed debounce hypothesis, and the machine-local ModelBouncingKeys quirk experiment with revert steps. No image changes.
…tigation

Mouse is Bluetooth LE HID-over-GATT, not classic BT. btmon shows press/release batched into one connection event; libinput record shows a release/re-press 6-7 ms apart mid-press (button chatter at the source). Corrects the earlier classic-BT assumption.
…ation

10 clicks made: 5 reached evdev, 3 seen over the air, so roughly half are lost before the kernel. Mouse reconnect did not change behavior, weakening the stale-per-device-state hypothesis. Next decisive step is testing the mouse on another device.
A different BLE HoG mouse (Logitech M650 L) works without issue in the same kwin session, so the laptop's input and Bluetooth LE stack are fine. Records the onset note (reconnect churn since Sep 13), the touchpad confirmation, and that the machine-local libinput quirk experiment was reverted. No image changes.
@bearyjd
bearyjd merged commit d8bd024 into main Oct 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant