Uh oh!
There was an error while loading. Please reload this page.
feat(input): implement libvirtualhid adding new gamepad styles - #5368
Conversation
Bundle ReportChanges will increase total bundle size by 57.33kB (2.38%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: sunshine-esmAssets Changed:
|
92ddf06 to
d696dcaCompareCodecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@## master #5368 +/- ##
==========================================
+ Coverage 28.10% 32.40% +4.30%
==========================================
Files 109 104 -5 Lines 24711 24931 +220 Branches 10910 11076 +166 ==========================================
+ Hits 6944 8079 +1135 + Misses 16783 14999 -1784 - Partials 984 1853 +869
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 20 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
b09b74e to
c8d6008Compare4a64041 to
ed17e4fCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ed17e4f to
67787f0Comparea3e7ed7 to
fe08cf1Comparebeab94f to
0af629eComparec0e7306 to
be323a2Comparebe323a2 to
f9a9fa8Compare8694b57 to
23735d6Compareda01bf8 to
3d2a82dCompareAdd session-scoped retained input state so virtual gamepads survive paused transport connections and are rebound on resume instead of being recreated. Introduce explicit gamepad termination APIs for global and per-session cleanup, and call them when streams, RTSP sessions, or launched processes are terminated. Add a platform-level `rebind_gamepad` path for both virtualhid and Windows ViGEm backends (with feedback routing synchronization), refactor shared allocation logic, and extend unit coverage for rebind behavior and retained gamepad lifecycle.
Add Linux udev rules that grant input/uaccess permissions to libvirtualhid devices matched by their `phys` path for both `hidraw*` and `event*` nodes, in addition to existing name-based matches. This improves device permission handling when names are inconsistent. Also updates the `third-party/libvirtualhid` submodule to commit `7902b766`.



Description
This PR implements libvirtualhid in Sunshine, replacing inputtino on Linux, vigembus on Windows AMD64, and moves the mouse/keyboard input for macOS as well.
We will still falling back to vigembus on Windows ARM64 or in cases where the user doesn't have libvirtualhid's driver installed.
TODO:
b887f6atod28ec79#5414Known issues:
Screenshot
Issues Fixed or Closed
b887f6atod28ec79#5414Roadmap Issues
Type of Change
Checklist
AI Usage