Do game controllers work on Linux?
Verdict: Yes
Yes. Xbox and PlayStation controllers are supported by drivers built into Linux, by cable and by Bluetooth, and Steam adds its own handling on top for games that expect a particular pad.
Xbox controllers are handled by a Linux driver called xpad, which the kernel documentation says supports all first-party and third-party Xbox compatible controllers. That covers the original Xbox pads through an adapter, Xbox 360 pads both wired and through the official wireless receiver, and wired Xbox One pads. The documented gap is Xbox One controllers connecting over Microsoft's own wireless system rather than Bluetooth, which the driver does not handle. Rumble works on some Xbox 360 pads and is not available through this driver for the original Xbox or Xbox One pads.
PlayStation controllers are covered by a driver called hid-playstation, which handles the DualSense from the PlayStation 5, including the Edge version, and the DualShock 4 from the PlayStation 4. It works over both USB and Bluetooth, and it does more than buttons. Vibration, the RGB light bar, the player number lights, battery level, the touchpad as a two-finger surface, and the motion sensors are all wired up. Headset jack detection and the microphone mute button on the DualSense are handled as well.
Steam sits on top of all of this. Its own controller layer recognises the common pads and lets you remap anything per game, which is how most people play on Linux and why an unusual pad often works anyway. Games bought on Steam run through Proton, Valve's compatibility layer, and controller input passes through it.
Third-party pads are the variable. Most that present themselves as an Xbox controller work because they are covered by that same driver. The ones to be careful with are pads with manufacturer configuration software, since those apps are Windows programs. Save your button profile onto the controller itself on Windows first, and it will travel with you.
Check yours before you switch
- Save any custom button layout onto the controller's own memory while you are still on Windows, since the configuration app will not be available afterwards.
- Boot a Linux live USB, plug the controller in by cable, and open the game controller settings in the system settings to check every button and stick registers.
- Test Bluetooth pairing in the same session if you normally play wirelessly, especially with an Xbox One or Series pad.
- If you use a racing wheel, a flight stick or an arcade stick rather than a standard pad, look that exact model up before you commit, since the coverage is much thinner than for gamepads.
Hardware changes model by model, so the surest test is your own.Running Linux from a USB stick lets you try it with nothing installed.
Last checked . Sources:
