I just picked up a HORIPAD for the Switch.
Hoping I could use it with Steam on my Linux box in addition to the switch, I plugged it into my system running the 5.0-rc1 kernel.
It was a bit to my surprise, but it showed up as a recognized device:
We can find the same information in lsusb:
So we know it’s recognized, lets see if jstest can read input coming from the device:
All the buttons, sticks, and dpad seem to work and jstest is able to read signal from all inputs!
I opened up steam, thinking I was going to play Celeste. However steam reported that it didn’t recognize any controllers…
Going into Settings -> Controllers -> General Controller Settings, I had the “Generic Gamepad Configuration Support” option
checked, as this wasn’t one of the known Xbox/PS/Switch controllers. Steam wasn’t able to see the device for some reason.
After digging around online for a bit, I discovered the steam-devices package, which was recommended by
folks debugging other controllers. I installed that package, and nothing changed. :(
Wondering what exactly this package does, I started to dig into what the package provided.
That 99-steam-controller-perm.rules file stood out as interesting.
It looks like a bunch of udev rules for configuring the permission for hidraw and uinput devices.
We saw in the dmesg output above that our controller is a hidraw device, maybe we need to setup
permissions for the device to be read by non elevated users?
To test this out I appended the following to the 99-steam-controller-perm.rules file.
I found the vendor id and product id for the HORIPAD using lsusb -v (as seen above).