Ducky One 3 - Detected as Joystick
While getting gamepad input working for Ctesiphon, I decided to figure out how to get my damn keyboard to stop being detected as a damn joystick on Linux, causing endless confusion for Steam and all sorts of games.
Apparently some genius at Ducky didn't fill out the keyboard's HID descriptor properly, and it's wrong in precisely the right way for Linux's generic HID device driver to think the first interface of five on the device is a joystick (I'm not sure why it thinks this, the type is actually Undefined but whatever)
All the information I could find on StartPage pointed me in the direction of "fixing" the broken HID descriptor but the documentation for the format is a huge pain in the butt to find. Along the way though, I established that the interface being detected as a joystick isn't really responsible for anything important so I just made a udev rule to deauthorize it:
This link explains in detail exactly what you need to do (and to boot, it's older than all the advice I've seen regarding the HID descriptor) :
Irongeek's Information Security site with tutorials, articles and other information.
Also, shout out to whoever wrote the man page for udev clearly explaining the difference between ATTRS and ATTR because that was crucial to getting the rule applied correctly.
Now I can confidently open any game expecting gamepad input and have it actually default to my PS3 controller the way it's supposed to, no matter how many times either it or my keyboard is unplugged and plugged back in.




















