Controllers

This guide explains how to connect PlayStation, Xbox, and Nintendo Switch controllers to Fedora for gaming. You’ll learn to pair controllers via USB and Bluetooth, and troubleshoot common issues.

What are Controllers?

Controllers are input devices that interact with games on your computer. They can be wired (connected via USB) or wireless (connected via Bluetooth). Controllers provide a more tactile and immersive gaming experience compared to keyboard and mouse, especially for console-style games.

Installation Types

Controllers can be connected in two main ways:

  • Wired(USB): Using a USB cable to connect the controller directly to your computer.

  • Wireless(Bluetooth): Requires pairing and configuration.

Playstation Controllers

DualSense 5 Controller

Via cable

Controller should work as soon as you plug it to your machine via USB cable.

Via Bluetooth

There were identified issues with Bluetooth connection stability and input lag.

The guide below recommends connecting your controller using the bluetoothctrl tool in the terminal. While you can still try to connect using the graphical Bluetooth manager, the method described below is suggested, as it is generally more stable.

  1. Open your terminal

  2. Run the bluetoothctrl command and confirm that you see [bluetoothctrl]> at the beginning of the new line. This means you are now using the bluetoothctrl application.

  3. Type scan on and press Enter to search for new devices.

  4. Put your DualSense 5 controller into pairing mode:

    • Press and hold the PlayStation button and the Share button (the smaller button on the top left side of the touchpad) simultaneously for a few seconds.

    • The sides of the touchpad will blink quickly with a blue light, indicating that pairing mode is enabled.

  5. Wait for the terminal to display your DualSense controller with its MAC address, for example:

    [NEW] Device [MAC-ADDRESS] DualSense Wireless Controller
  6. Start pairing by providing [MAC-ADDRESS] to the pair command:

    [bluetoothctl]> pair [MAC-ADDRESS]
  7. After pairing has been completed, enter the following command to connect to the DualSense 5 controller:

    [bluetoothctl]> connect [MAC-ADDRESS]
Troubleshooting

Problem 1: I am unable to use the controller with the method described above.

Solution: Before pairing the DualSense 5 controller via Bluetooth, you may need to adjust the human interface device(HID ) protocol handling in the /etc/bluetooth/input.conf file.

Steps:

  1. Find following line:

    #UserspaceHID=true
  2. Change it to::

    UserspaceHID=false
  3. Now you can start pairing process.

Xbox Controllers

Xbox Series S Wireless Controller

This section describes how to connect a controller prepared for Xbox Series X|S to your machine.

Via cable

The controller should work as soon as you plug it into your machine via USB cable.

Via Bluetooth

  1. Turn on your Xbox Wireless Controller.

  2. Press the Pair button located at the back of the controller. The Xbox logo on the controller should start blinking rapidly, which implies that pairing mode has been enabled.

  3. Go to the Bluetooth settings on your operating system.

  4. Select Xbox Wireless Controller from the list. If you don’t see it, ensure pairing mode is enabled and use the "Search" option to refresh the list of available Bluetooth devices.

  5. Accept the pairing request to connect your controller via Bluetooth.

Troubleshooting

Problem 1: I am unable to pair my controller via Bluetooth.

Solution

  1. Install Xbox Controller Driver You need to install additional Xbox Controller driver, available at repository xpadneo. WARNING: The software mentioned below is maintained by a third party and is not related to Fedora. You are installing it at your own risk.

    • Use the Copr repository to install the driver:

      dnf copr enable atim/xpadneo
      dnf install xpadneo
  2. Edit Bluetooth Configuration

    • Open the Bluetooth configuration file (elevated access required):

      sudo nano /etc/bluetooth/main.conf
    • Find the following line:

      #FastConnectable = false

      Uncomment this line and replace false with true:

      FastConnectable = true
  3. Reboot and Test

    • Reboot your machine after installation.

    • Try to pair your controller again.

Problem 2: My controller disconnects after several seconds.

Solution:

  1. Install the xpadneo driver from the previous section may resolve this issue.

  2. You need to update your controller’s firmware version. You can do this either:

    • Via Xbox console, or

    • Through the Microsoft Windows Xbox Accessories application

Currently, there is no way to update Xbox Controller firmware from Linux.

Nintendo Switch controllers

Nintendo Switch Pro Controller

Via cable

Controller should work as soon as you plug it to your machine via USB cable.

Via Bluetooth

There were identified issues with Bluetooth connection stability and input lag.

The guide below recommends connecting your controller via bluetoothctrl. While you can still try to connect via a dedicated GUI Bluetooth manager, the method described below is recommended because it is more stable.

  1. Open your terminal

  2. Run the bluetoothctrl command and confirm that you see [bluetoothctrl]> at the beginning of the new line. This means you are using the bluetoothctrl application.

  3. Put your Nintendo Switch Pro controller into pairing mode:

    • Press and hold the PlayStation button and the Share button (the smaller button on the top left side of the touchpad) simultaneously for a few seconds.

    • The sides of the touchpad will blink quickly with a blue light, indicating that pairing mode is enabled.

  4. Type scan on and press Enter to search for new devices.

  5. Wait for the terminal to display your Nintendo Pro controller with its MAC address, for example:

    [NEW] Device [MAC-ADDRESS] Pro Controller
  6. Start pairing by providing `[MAC-ADDRESS]`to the pair command:

    [bluetoothctl]> pair [MAC-ADDRESS]
  7. After pairing has been completed, enter the following command to connect to the Nintendo Switch Pro controller:

    [bluetoothctl]> connect [MAC-ADDRESS]
Troubleshooting

Problem 1: I am unable to use the controller using the method described above

Solution: Configure HID Protocol Handling

Before trying to pair your Nintendo Switch Pro controller via Bluetooth, you need to change the HID protocol handling in the /etc/bluetooth/input.conf file.

Steps:

  1. Edit the configuration file (elevated access required):

    bashsudo nano /etc/bluetooth/input.conf
  2. Find the following line:

    #UserspaceHID=true
  3. Change it to:

    UserspaceHID=false
  4. Start the pairing process using the method described above

Other controllers

Support may vary based on controller - please look into community boards for information, if your controller will be supported.