LizardByte / LizardByte/libvirtualhid
Linux: Browser Gamepad API omits DualShock 4 and DualSense touchpad button
@LizardByte-bot is already working on this.
Since Aug 15, 2026.
- Dominant language
- C++
- Stars
- 54
- Forks
- 15
- Avg merge
- 11h 32m
- Merged PRs (30d)
- 34
Description
Environment
- Host OS: Linux
- Virtual controller provider: libvirtualhid through Sunshine
- Affected profiles: DualShock 4 and DualSense
- Consumers: Firefox and Chromium
- Tester: https://app.lizardbyte.dev/gamepad-tester/
Observed behavior
Neither browser exposes the touchpad click button for the virtual DualShock 4 or DualSense.
Example DualSense identities:
- Chromium:
Sunshine (libvirtualhid) PS5 Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6) - Firefox:
054c-0ce6-Sunshine (libvirtualhid) PS5 Controller
The gamepad-helper mapping already assigns PlayStation button index 17 to the touchpad, so the missing value occurs before presentation when the browser's Gamepad.buttons collection is populated.
Expected behavior
The touchpad click should be exposed as a browser gamepad button and rendered with the existing touchpad mapping.
Investigation boundary
Compare raw browser Gamepad API state with hidraw/evdev reports and each browser's standard-mapping behavior. Do not change the public controller mapping or Windows backend unless the captured report path proves that is required.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.