A USB device is not yet a gamepad
A controller visible in lsusb has enumerated on the bus. That does not prove that the kernel created an input device, that the logged-in user can access it, or that Steam mapped it for the game. Some controllers expose several interfaces or switch between input modes. Keep the numeric USB ID with the transport, cable and firmware mode. A USB disconnect or repeated enumeration belongs to the transport branch; an event device that works in Steam’s test but fails in one game belongs farther up the stack.
Check access without broad permission changes
Inspect the gamepad’s input properties and session access rather than granting every user write access to all input devices. Valve maintains device-specific rules for distribution integration. Use the distribution’s maintained Steam device package or declarative hardware support when a missing rule is established. Running Steam as root is not a useful comparison and exposes unrelated state. A Bluetooth controller adds pairing, radio and HID transport questions; a successful USB test does not validate its wireless path.
Test Steam Input before blaming Proton
Use Steam Settings → Controller → Test Controller Inputs where available. If input works there, record the per-game Steam Input override and layout. Games with native controller support can react differently when Steam supplies a translated controller. Compare one override at a time and restore the saved layout afterward. Double input can result from two active mapping layers, whereas no event in Steam’s own test calls for earlier device or access evidence. Check controller firmware guidance for the actual model rather than treating a firmware update as a universal repair.
Gather evidence before changing the system
Run one command at a time in the relevant host or game environment. Read its requirements and interpretation first. The website displays commands and never runs them.
Read-only observation
lsusbRequirements: usbutils and the connected USB transport.
Record the controller or receiver’s numeric vendor/product pair. A receiver entry alone does not prove a connected wireless controller.
Read-only observation
cat /proc/bus/input/devicesRequirements: Linux input subsystem; redact unrelated device details before sharing.
Find the matching name and event handler. Similar names or several interfaces require correlation with the USB identity; the file can also list keyboards.
Read-only observation
udevadm info --query=property --name=/dev/input/eventXRequirements: systemd-udev/udevadm and the confirmed gamepad node; this reads properties only.
Replace eventX with the gamepad’s actual event node. Check whether properties identify a joystick and the device path matches the controller.
A controlled test with a way back
Save the per-game layout and Steam Input override. If Steam’s input test works, compare one enabled/disabled per-game override while keeping the same controller connection and game scene.
Rollback: Restore the saved per-game override and layout. Close the game before reconnecting or changing a controller’s hardware mode.
What this test cannot establish: The event handler and USB class do not prove a game’s mapping compatibility. Firmware, transport, permissions and Steam Input can fail independently.
Sources and scope
This editorial review uses primary project and distribution references. It does not establish that a fix has been reproduced on your hardware. Installed versions, the game runtime and the selected graphics API can change the result.
- Linux kernel: input subsystem introduction
Input devices and their handlers can be inspected in /proc/bus/input/devices.
- Valve: Steam device permission rules
Valve maintains device-specific rules for distribution integration; blanket device permissions are unnecessary.
- Valve Steamworks: Steam Input for players
Controller support and per-game mappings are a layer above USB enumeration.
- Valve: Steam Deck basic troubleshooting
Supported Deck troubleshooting includes system updates, restart and controller-input testing.