I bought an Xbox Elite Wireless Controller Series 2, and using a combination of Steam Big Picture Mode, GamepadTool, and the SDL2 controllerMap program, I came up with the following mapping, which definitely works for me:
050000005e040000050b000003090000,Xbox Elite Wireless Controller,platform:Linux,a:b0,b:b1,x:b3,y:b4,back:b17,guide:b12,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,
I have confirmed, very extensively, and meticulously, that all of this is correct. At least for me.
This controller has the latest available firmware. I’m on Fedora 31, which has kernel 5.3.11. The driver loaded is the one you get when you just pair and connect the controller over Bluetooth, which is hid-microsoft.
Now, I see that a week ago, a mapping for this controller was committed to SDL2:
It’s different than what I have. Specifically, it has the Back button as Button 136 (instead of 17) and the Guide button as Button 137 (instead of 12).
Any idea what’s going on?
I know that these mappings can change with kernel versions (the ones for the Sony DualShock 4 have been known to do that), but I’m not seeing any special handling in the kernel’s source that could cause that to happen.