It is possible to use Xbox One controller on Linux distros?

Solution 1:

With USB cable

It´s supported natively in the kernel (3.17 or newer) by the xpad driver.

If you have an older one (like 3.16 in Debian 8) you need to install the updated xpad driver.

You may need to disable Controller support in Steam if you are using it.

Bluetooth

You first need to find out which type of controller you have:

  • Original Xbox One controller (with Wireless dongle)
  • Xbox One S or X controller

Only the second one works wireless in Linux.

You want to use the xpadneo driver.

With Microsoft Xbox Wireless adapter

Update: as matt.LLVW commented, it's now possible to use the xow user mode driver to make it work with both models of the wireless adapter.

Solution 2:

Controllers on Linux has always been a little tricky. There should be no reason why it will not work, but might require a setup process. You will require a driver. Either xpad or xboxdrv exist to accomplish this. Xbox One controllers should be "known" and this elevates the need to manually edit config files.

First, install the xpad kernel driver.

sudo apt-get install xpad

At this point, you can try to connect the controller and see if you can map controls in-game.

If that does not work (or you would prefer more customization) install xboxdrv

sudo apt-get install xboxdrv

Then load the module (adding the parameter to disable xpad, if you have it loaded)

sudo xboxdrv --detach-kernel-driver

Then try to map your controls.

I've had luck with 360 controllers using xpad on my Arch Linux machine. After loading the module, I was simply able to map controls in games and emulators.

Source: https://unixblogger.com/2016/05/31/how-to-get-your-xbox-360-wireless-controller-working-under-your-linux-box/ (NOTE: Though the guide is for 360 controllers, xboxdrv supports Xbox One controllers, as indicated on their GitHub page Here