Skip to content

Port upstream #313, #314, #311 and the #270 left-pad mouse - #22

Merged
ripps818 merged 4 commits into
mainfrom
port/upstream-oct13
Oct 14, 2026
Merged

ripps818 merged 4 commits into
mainfrom
port/upstream-oct13

Conversation

@ripps818

Copy link
Copy Markdown
Owner

Ports the upstream PRs merged on 2026-10-13 that the fork didn't already have. A straight merge of upstream/main conflicts in 14 files, and most of those PRs are already here in another form, so each one is ported on its own.

Ported

Skipped

Testing

  • make check, make build and all host tests pass. tests/lizard_stick now has a usb_tx.h stand-in and left/right-pad mouse cases.
  • Panel checked in headless Chromium with no device connected: the clone card, the stored-pairing and Forget states, and no console errors.
  • Not yet checked on hardware: Lizard key edges while the cursor moves, left-pad mouse, weak-link recovery, and a real clone from a Valve puck.

🤖 Generated with Claude Code

ripps818 and others added 4 commits October 13, 2026 22:10
Port of upstream safijari#314. Mouse, consumer and keyboard reports share one
endpoint, so sending them directly under ready() dropped every report
after the first in a poll cycle and lost key edges while the cursor
moved; they now go through usbTxHid. Pure Lizard also lands id9=1 once
per connect, so a controller a previous session left at id9=0 gets its
trackpad ticks back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Port of upstream safijari#313. A weak link fades for seconds and the controller
drops the session if polls stop, so the quiet back-off now starts at
2.5 s instead of 300 ms; only an announced power-off (F2) still backs
off at 300 ms. A slot that replied within the last 300 ms gets one
retransmit of a lost poll when the cycle has room for it (not after an
empty ACK).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Port of upstream safijari#311 into the panel modules. Reads the controller bonds
off a Valve puck over WebHID (the 0xA3 bond read on feature report 2)
and writes them into free OpenPuck slots with the 0x0D/0x0E import
commands, so those controllers connect with no re-pairing. The read
pairings are held in localStorage, so it works with one USB port; the
section sits above the panel while no OpenPuck is connected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From upstream safijari#270's final revision. The left trackpad can now drive the
cursor with the same glide model as the right pad; each pad integrates
on its own and both add into the one cursor. It is source 4 rather than
upstream's 3, since our right stick already holds 3, so saved maps and
backups keep their meaning. Left-pad scroll is unchanged and can be
bound alongside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ripps818
ripps818 merged commit cf9fa05 into main Oct 14, 2026
3 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