An Xbox controller can work with Steam on Linux without xboxdrv. Start by confirming that Linux exposes the device, then use Steam’s Controller page to decide whether the game should use its native input path or Steam Input.
Check that Linux can see the controller
Connect a USB controller or its wireless receiver before opening Steam. Finish Bluetooth pairing in your desktop settings before you move into Steam, because Steam cannot repair a device the operating system has not exposed.
ls /dev/input/js*; cat /proc/bus/input/devices | grep -i -A 5 -E 'xbox|controller|gamepad'

A js device node is a useful signal, but not every controller exposes one. The second command searches the kernel input list for a controller name. If both checks return nothing after reconnecting the hardware, fix the cable, receiver, pairing, or vendor-specific support before changing Steam settings.
Confirm the controller in Steam
Open Steam, choose Steam > Settings, then open Controller. The device should appear in the detected-controller area. Valve documents Steam Input as its controller configuration system, and ArchWiki notes that Steam can otherwise leave a detected controller available to games through the kernel input interfaces.

The Settings entry is the starting point. Keep this screenshot because the menu location is still useful when Steam opens to the Library rather than a game page.

Look for the controller before selecting a layout. If Steam cannot list it here, return to the Linux detection check instead of installing an older driver package.
Choose a layout and test the inputs
Steam Input can translate a controller layout for games that expect conventional gamepad input, with mappings available when their defaults fall short. Test the layout.

The selected layout changes how Steam presents button prompts and mappings, so match it to the button legends you see on the controller. Nintendo labels work.

Dead zones come later. Adjust them only when an untouched stick moves on its own, then retest the analog range before you change a game layout.

Use the layout editor for a game-specific control change, such as mapping a keyboard-only action to a spare controller button. Keep the default layout when the game already reads every input correctly.

Calibration is a later check. Use it when an axis has a repeatable offset or an endpoint does not reach its expected value, because it cannot fix a controller that Steam never detects.
Fix one game that ignores the controller
When the controller works in Steam but fails in one game, open that game’s Properties and find its Controller setting. Change one setting, fully close the game, relaunch it, and test the same input again. This isolates a per-game Steam Input choice from a connection problem.
| Where the controller works | Next action |
|---|---|
| Steam sees it and the test responds | Start the game, then adjust its Steam Input setting only if input fails. |
| Steam does not list it | Reconnect the cable, receiver, or Bluetooth pairing before changing Steam settings. |
| Steam sees it but one game does not | Change that game’s Controller setting, restart the game, and test again. |
A Proton game adds another compatibility layer, so keep the test order narrow. Confirm the device in Steam first, then test the game. If the game remains the only failure, manage Proton compatibility tools with ProtonPlus before treating the controller as the cause.
Use the controller in the rest of your Linux game setup
A controller setting can follow you into adjacent gaming tasks. Moonlight on Linux is useful when you stream a game from another PC, while GameHub helps organize games from more than one launcher.
For a quick gamepad-friendly test, install GZDoom on Linux. DOSBox-X on Linux gives older games a separate configuration path, so set its controls after Steam confirms that the controller itself works.
Controller troubleshooting checklist
- Reconnect the controller or receiver, then confirm its name in the Linux input list.
- Open Steam Settings > Controller and confirm Steam lists the device.
- Test the default layout before adding a custom one.
- Change one affected game’s Controller setting, restart that game, and test again.
- Adjust dead zones or calibration only when the controller reaches Steam and the fault is an analog-input issue.
Do I need xboxdrv for an Xbox controller on Steam for Linux?
No. Start with the Linux input check and Steam’s Controller page. Install model-specific software only when the controller is absent from the operating system input list or the vendor documents an extra requirement.
Why does my controller work in Steam but not in one game?
The game may need a different per-game Controller setting. Change that setting, restart the game, and test again after confirming Steam still sees the controller.
Should I enable Steam Input for every game?
Start with the default behavior. Use Steam Input when the game needs a translated layout or custom mapping, then leave a game on its native path when that already works.
Start at the operating system boundary, then move into Steam, then test the game that fails. That order keeps a hardware connection issue from turning into a pile of unrelated Steam settings.
