I've got an XBox One controller, and a few months ago the button mappings got messed up when it's in Bluetooth mode, which means it doesn't work properly in games with preset mappings for XBox. I've managed to mostly remap it with jstest-gtk and jscal-store, but the "View"/"Select" button and the "Xbox"/"Mode" button don't generate any events according to jstest-gtk. Those two buttons do produce events when the controller is connected by USB cable, and the mappings work as expected in games. Previously the mappings in Bluetooth were the same as in USB, although I'm not sure whether the above two buttons worked in both or either mode.
For Bluetooth the identifiers are:
Code: Select all
NAME="Xbox Wireless Controller"
VENDOR="0a12"
PRODUCT="0001"
The above vendor/product codes seem to be for the Bluetooth receiver rather than the controller.
For USB cable:
Code: Select all
NAME="Microsoft X-Box One S pad"
VENDOR="045e"
PRODUCT="02ea"
Anyway, I don't know what package I should investigate further or file a bug against. bluez? udev? The kernel:- which subsystem/module? Maybe even xserver-xorg-input-joystick? This isn't Debian-specific BTW, I also tested it on Arch today and found the same discrepancy. Also, when Googling I found
xpadneo, claiming to be the first and only XBox One S controller driver, but mine has always worked with the xpad driver (from stock kernel I think).