We want to write a guide to address the setup and configuration of game controllers or gamepads on Fedora Linux. It will cover connecting controllers via USB or Bluetooth, ensuring the system recognizes the device, installing necessary drivers or software, calibrating inputs, troubleshooting common issues such as input detection failures, and improving compatibility with games running on Fedora.
Provide a clear guide on connecting and pairing game controllers on Fedora, including Bluetooth and USB methods.
Help users verify controller recognition by the system and install any required drivers or utilities.
Assist in configuring and calibrating controllers for optimal gameplay.
Troubleshoot common problems like controllers pairing but not registering as input devices.
Enhance compatibility and usability of a wide range of controllers with Fedora games.
Write a detailed, step-by-step instructions for connecting popular controllers on Fedora.
Document troubleshooting methods for common issues, such as Bluetooth pairing without input recognition.
Recommend and explain useful tools for input testing and antimicro or similar for input mapping.
Add user experiences and solutions to improve Fedora’s controller support documentation.
Game controllers enhance the gaming experience by providing intuitive and immersive input methods. However, Linux users, including Fedora gamers, often face challenges with controller setup and compatibility due to hardware variety and system configuration complexities.
A clear guide will reduce user frustration, promote wider adoption of Fedora for gaming, and improve overall user satisfaction.
First draft available in PR #33
First draft available in PR #33 @azkel Thank you for working on this issue. I love how everything is coming together. I have some suggestions
What Are Controllers? {Placeholder content}
Installation Types - Wired (USB): Plug-and-play setup. - Wireless (Bluetooth): Requires pairing and configuration.
Please remove this content.
Below you can find information about different controllers that you could utilize for your day-to-day gaming. **In case some additional steps would be required to make them work properly within Fedora ecosystem - here you can find guidance on how to install them. **
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.
bluetoothctrl
For the steps, it can be written in a clear, direct, and concise manner.
Step 1: Open your terminal
Step 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.
[bluetoothctrl]>
Step 3: Type scan on and press Enter to search for new devices.
scan on
Step 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.
Step 5: Wait for the terminal to display your DualSense controller with its MAC address, for example: [NEW] Device [MAC-ADDRESS] DualSense Wireless Controller Step 6: Start pairing by providing [MAC-ADDRESS] to the pair command:
[NEW] Device [MAC-ADDRESS] DualSense Wireless Controller
pair
[bluetoothctl]> pair [MAC-ADDRESS] Step 7: After pairing has been completed, enter the following command to connect to the DualSense 5 controller:
[bluetoothctl]> pair [MAC-ADDRESS]
[bluetoothctl]> connect [MAC-ADDRESS]
*Question
bluetoothctl
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:
/etc/bluetooth/input.conf
#UserspaceHID=true
UserspaceHID=false
You need to fix some grammatical issues in this section
Missing article: This section describes how to connect controller prepared for Xbox Series X|S to your machine. Corrected version This section describes how to connect a controller prepared for Xbox Series X|S to your machine.
Missing article: Controller should work as soon as you plug it into your machine with a USB cable.
Corrected version The controller should work as soon as you plug it into your machine via USB cable.
Corrected version
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.
Corrected version Navigate to the Bluetooth settings on your operating system.
Incorrect spelling: Wireles Select "Xbox Wireles Controller" on the list. If you don’t see it, make sure pairing mode is enabled and use "Search" option to refresh the list of identified Bluetooth devices.
Corrected version 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.
Troubleshooting for Xbox controllers
Fix the first question to this Problem 1: I am unable to pair my controller via Bluetooth.
For the callout, I want you to use the warning sign, which signifies danger, since you are telling the reader the dangers of installing a particular repository. Then rewrite the warning text this way
The software mentioned below is maintained by a third party and is not related to Fedora. You are installing it at your own risk.
Solution Step 1: Install Xbox Controller Driver You need to install additional Xbox Controller driver, available at repository xpadneo. 1. Use the Copr repository to install the driver: bashdnf copr enable atim/xpadneo dnf install xpadne Step 2: Edit Bluetooth Configuration
bashdnf copr enable atim/xpadneo dnf install xpadne
Open the Bluetooth configuration file (elevated access required): bashsudo nano /etc/bluetooth/main.conf
bashsudo nano /etc/bluetooth/main.conf
Find the following line: #FastConnectable = false
#FastConnectable = false
Uncomment this line and replace false with true: FastConnectable = true
FastConnectable = true
Step 3: Reboot and Test
** Problem 2**: My controller disconnects after several seconds
Solution Option 1: Installing the xpadneo driver from the previous section may resolve this issue. Option 2: You need to update your controller's firmware version. You can do this either:
Add the Note callout Note: Currently, there is no way to update Xbox Controller firmware from Linux.
Nintendo Switch controllers section 1. Update the first note callout to There were identified issues with Bluetooth connection stability and input lag. 2. Remove the second note callout and leave it as plain text in this way
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.
Step 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.
Step 3: Put your Nintendo Switch Pro controller into pairing mode:
Step 4: Type scan on and press Enter to search for new devices.
Step 5: Wait for the terminal to display your Nintendo Pro controller with its MAC address, for example: [NEW] Device [MAC-ADDRESS] Pro Controller
[NEW] Device [MAC-ADDRESS] Pro Controller
Step 6: Start pairing by providing [MAC-ADDRESS] to the pair command:
[MAC-ADDRESS]
Step 7: After pairing has been completed, enter the following command to connect to the Nintendo Switch Pro controller:
Troubleshooting section for Nintendo Switch Controller: You need to fix some few grammatical issues. This section can be written in this way
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 Human-Interface Device(HID) protocol handling in the /etc/bluetooth/input.conf file. Steps:
/etc/bluetooth/input.conf file
Edit the configuration file (elevated access required): bashsudo nano /etc/bluetooth/input.conf
bashsudo nano /etc/bluetooth/input.conf
Find the following line: #UserspaceHID=true
Change it to: UserspaceHID=false
Start the pairing process using the method described above
Hi @azkel, sorry for the delays. Kindly update based on this review here. Thank you
Hi @azkel I have updated the feedback and it is live so I will be closing this issue. Thank you for working on it
Metadata Update from @judithetugbo: - Issue status updated to: Closed (was: Open)