Skip to content

docs: add end-user gamepad guide - #105

Merged
ReenigneArcher merged 1 commit into
masterfrom
docs/improve
Aug 27, 2026
Merged

docs: add end-user gamepad guide#105
ReenigneArcher merged 1 commit into
masterfrom
docs/improve

Conversation

@ReenigneArcher

Copy link
Copy Markdown
Member

Description

Adds a new end-user-facing guide covering the streaming input path, controller setup, Sunshine configuration, client-specific compatibility observations, troubleshooting by symptom, and how to report problems. Links the guide from README.md, docs/usage.md, and Doxyfile.

Screenshot

Issues Fixed or Closed

Roadmap Issues

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Unit tests have been added or updated for any new or modified functionality

AI Usage

See our AI usage policy.

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.76%. Comparing base (6089eed) to head (f3d9629).
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
- Coverage   72.81%   72.76%   -0.06%     
==========================================
  Files          34       34              
  Lines        8969     8969              
  Branches     3329     3329              
==========================================
- Hits         6531     6526       -5     
- Misses       1795     1798       +3     
- Partials      643      645       +2     
Flag Coverage Δ
FreeBSD 52.33% <ø> (-0.05%) ⬇️
Linux-Clang 54.45% <ø> (ø)
Linux-GCC 64.98% <ø> (ø)
Windows-MSVC 87.93% <ø> (-0.11%) ⬇️
Windows-MinGW-UCRT64 62.26% <ø> (ø)
macOS 48.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6089eed...f3d9629. Read the comment docs.

@ReenigneArcher
ReenigneArcher force-pushed the docs/improve branch 5 times, most recently from 5a645db to 7fbfb09 Compare August 27, 2026 02:55
@ReenigneArcher

Copy link
Copy Markdown
Member Author

@Kishi85 I'm working on adding a matrix of supported features based on the Moonlight client in this PR, as well as some other good to know information.

I think this will also help track and gaps that are still missing in this library and/or in specific Moonlight clients.

So far the Matrix is based solely on testing each of these clients with Sunshine on Windows. This is when using either an Xbox Series, DualSense, or Switch Pro pad connected to each client via bluetooth (except Moonlight Xbox which is a native connection and only supports Xbox pads), and then forcing Sunshine to use each gamepad in that family. I will repeat the tests for Sunshine in Linux tomorrow, where I know a few more things work than on Windows. At least I'm pretty sure I remember the battery state working for most of the gamepads.

There's a live draft of the docs here: https://lizardbyte--105.org.readthedocs.build/projects/libvirtualhid/105/md_docs_2end-user-gamepad-guide.html

Please let me know if I've missed anything or anything you'd like to add or change.

@Kishi85

Kishi85 commented Aug 27, 2026

Copy link
Copy Markdown

I'll have an in-depth look at this. After a first glance I can say that Battery State is showing on a Linux Host for DualSense/DualShock using at least Moonlight-Qt (not sure about Moonlight-Android but I might have seen it working there as well) for me but I've only tested this specific combo and have not really had a way/time to verify the values shown. It also does not only show up in Steam but also on KDE's powermanagement (or likely other system apps) and I'm getting warnings when the battery is running low on the controller.

@ReenigneArcher
ReenigneArcher force-pushed the docs/improve branch 4 times, most recently from 0098850 to c3dca7e Compare August 27, 2026 16:34
@ReenigneArcher
ReenigneArcher marked this pull request as ready for review August 27, 2026 16:34
@ReenigneArcher

ReenigneArcher commented Aug 27, 2026

Copy link
Copy Markdown
Member Author

Alright, I've gone through the gauntlet on Linux as well.

My testing for iOS was on an Apple TV 4K with tvOS 26.6. Just to confirm I will also test on iOS 18.7.10. I don't have any phone device that supports iOS 26.6.1 though. Not sure if tvOS has the same gamepad compatibility as iOS or not.

Edit: To my surprise a few more features working on iOS 18.x than tvOS 26.x. Going to go ahead and merge this, but happy to take any PRs tweaking it further.

Adds a new end-user-facing guide covering the streaming input path, controller setup, Sunshine configuration, client-specific compatibility observations, troubleshooting by symptom, and how to report problems. Links the guide from README.md, docs/usage.md, and Doxyfile.
@sonarqubecloud

Copy link
Copy Markdown

@ReenigneArcher
ReenigneArcher merged commit e37e1a6 into master Aug 27, 2026
32 checks passed
@ReenigneArcher
ReenigneArcher deleted the docs/improve branch August 27, 2026 18:06
@Kishi85

Kishi85 commented Aug 27, 2026

Copy link
Copy Markdown

I've tested adaptive triggers with ToS Gamepad tester and those are working as well with Linux Host/Moonlight-qt. Not sure if CachyOS has a patched moonlight-qt in it's repo though.

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.

2 participants