Add fixed key layout file for Steam Deck controller #19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current key layout file used for the Steam Deck's virtual controller incorrectly binds the triggers to the right stick (with the right stick itself seemingly bound to nothing). This can be verified by using Gamepad Tester by selva sundar. I've also noticed this layout binding issue in games such as Minecraft, Riptide GP2 and Asphalt 9: Legends.
I have been able to fix this by adding a custom
Vendor_28de_Product_11ff.kl
key layout file to/var/lib/waydroid/overlay/system/usr/keylayout/
, which my PR adds as an additional step in the shell script. I'm not sure if there are any other Product IDs that could be associated with the virtual controller, so some additional testing on other Steam Decks may be required.The file itself is based on the Steam Controller key layout from the AOSP, with the following change to make the triggers work:
I've also removed some unused inputs such as the rear buttons, since Steam's virtual controller does not directly expose them.
This issue did not affect the Game Controller Tester app by POW Games UK, which presumably uses a different method of reading controller inputs and will still work fine as a result.