Linux Gaming with Controllers on Steam: A Comprehensive Guide

Adding Controller Support To Steam

Gaming on Linux has seen a significant boom in the past two years, thanks to the Proton compatibility layer developed by Valve software. With daily game ratings on ProtonDB and regular updates from Valve, Linux gaming is growing rapidly. This guide will show you how to enhance your Linux gaming experience with various controllers.

Moreover, gaming is incomplete without some good old retro games. And of course you can play them using your Keyboard and mouse, but that’s not the way they’re meant to be played. There are many controllers which you can use in order to play games on Linux, such as the Steam Controller, Xbox controller, Dual sense controller for PS5, Dual Shock controller for PS4 and Google’s Stadia controller (after updating the firmware).

In this tutorial, I will show you how can you add drivers for the Xbox controller and add its support to your Steam client, but the steps will entirely same for all the controllers (yes, including the driver package). So follow along!

Step-by-Step Guide: Adding Controller Drivers on Linux

Xboxdrv is the driver package which, upon installing, will make our controller/game pad automatically supported on the Linux platform. To install the driver package, open a Terminal window and type the following commands based on your Linux distribution:

# On Debian and Ubuntu based distributions
sudo apt update && sudo apt install xboxdrv

# On Arch Linux based distribution
sudo pacman -S xboxdrv

On a Fedora workstation, you do not have to install any package on your system, as the drivers for your controller are already built into the OS since Fedora 32.

If you’re using a wireless controller, ensure Bluetooth is enabled on your PC or laptop. Then, connect your device if the controller has a Bluetooth interface. And if the controller connects via the 2.4GHz interface, then make sure that you have plugged in the USB dongle that came with it to your PC and turned on your Controller.

How to Add Controller Support on Steam for Linux

Open your Linux Steam Client and then go to the settings from the toolbar menu.

Open Steam Settings
Open Steam Settings

Now, go to the ‘Controller’ tab and let’s begin adding support for our Game Pad.

Open General Controller Settings From Steam Settings
Open General Controller Settings From Steam Settings

Now, in this dialog box, you will see your Device’s name on the bottom of all the configurations. Just select the appropriate layout for your Game Pad. Steam even supports Nintendo’s button layout if you are into playing Nintendo Games.

You Can Select Appropriate Layout For Your Controller
You Can Select Appropriate Layout For Your Game Pad

Highlight your device so that you customize additional settings, such as renaming the device and appropriating the dead zones.

You Can Also Customize Various Settings For Your Game Pad
You Can Also Customize Various Settings For Your Game Pad

When you click on ‘Identify’, your handheld will vibrate if it has Rumble support. If you want to disable that, then you can do so from the ‘Preferences’ Menu. Open the ‘Define layout’ menu if you want to customize how the buttons will work.

Buttons For Your Controllers Can Be Customized In Steam As Well
Buttons can be Customized In Steam As Well

From the ‘Calibrate’ menu, you can configure different types of options for your Game pad, such as Dead Zones etc which often become a problem with every Joystick device over time.

You Can Also Calibrate The Joysticks On Your Game Pad
You Can Also Calibrate The Joysticks On Your Game Pad

Wrapping up

Not just Retro games, many of the modern games also support Game Pad layout when it detects them. Just check the Game’s store page on steam whether ‘Full Controller Support’ or ‘Partial Controller Support’ is mentioned or not. The seamless integration of third-party controllers on Linux, without any need for user tinkering, is truly impressive. It’s a testament to the strides Linux gaming has made in recent years.

I was a bit skeptical about my new third party Xbox Game pad working on Linux, but it ran as it would work on Windows. I have not tried the controller on any platform other than Steam, but if you have installed any games from other launchers such as Lutris or Heroic on your Linux Desktop, try adding those games to steam (Can be done with the press of a button on both apps) if your Controller is not detected instantly. What’s your favorite game to play with a controller on Linux?