👨‍💻 Hayden Walker

Using a Wireless Xbox Controller with Linux

Written 2025-10-01

Being a Linux user doesn't mean you don't play video games, especially in the era of Steam's Proton compatibility layer which makes nearly any game playable on Linux. And, some games are best played with a controller. This is a short PSA on how to set up an Xbox One Bluetooth controller for use with Linux Mint 22.1 Cinnamon, but the instructions apply across distros.

It's actually really straightforward, but I didn't find it very well-documented, which is why I'm writing this. You'll need to do three things:

  1. Update the controller's firmware
  2. Install xpadneo (a Linux driver for Xbox One controllers)
  3. Pair the controller

Updating Firmware

To my knowledge this is only possible on Windows, or on an Xbox One. Unfortunate, but it is what it is. If your firmware is recent enough, you may be able to skip this. It's worth installing the drivers and attempting to pair, and if the controller's light doesn't stop blinking after you connect, then you know you need to update the firmware. I don't have an Xbox One, but I do still have one dual-booted Windows 10 machine, so that's the approach I took.

On Windows 10 or 11, you'll need to open the Microsoft Store and install the "Xbox Accessories" app published by Microsoft. Plug the controller into the PC with a USB-C cable, open the app, and run a firmware update. In my case, I did this by clicking the three dots below the controller. This took about ten minutes. Then it was done!

Installing the Driver

Your distro may have the xpadneo package in its repos. If not (like me), simply clone the repository and run the install script as root. You'll also need to install the Linux headers for dynamic kernel module support (DKMS). TL;DR:

$ sudo apt-get install dkms linux-headers-`uname -r`
$ git clone https://github.com/atar-axis/xpadneo
$ cd xpadneo
$ sudo ./install.sh

The only thing that's distro-specific is installing DKMS - if you're on any Debian-based distro, the above commands should work, and if not, the xpadneo repository gives instructions for each distro.

Finishing up

This is the easy part. Turn on your controller and hold the pairing button on the back until the light starts blinking quickly. Then open your Bluetooth manager and pair, connect to, and trust the device. You should be good to go!