Bazzite and gamepads - what sort of magic is this?

Bazzite is the only distribution which handles gamepads perfectly for my uses.
Every other Steam setup I have suffers from this issue - All Controllers Break After Disconnecting (Steps & Proof). But Bazzite handles this fine.

I’m trying to reproduce this in another distro.
I would love some pointers.
What is the magic part that makes gamepads “just work” in Bazzite?

What I’ve tried so far:

  • bazzite kernel
  • preload hid_playstation and hid_nintendo via /etc/modules-load.d
  • add udev rules for my gamepad (/usr/lib/udev/rules.d/71-8bitdo.rules)
  • compare /usr/lib/udev/rules.d/60-steam-input.rules (mine is identical)
  • triple check permissions on /dev/hidraw* and /dev/input/event* for the device

I’ve tried a DualShock4 and an 8Bitdo 2.4 gamepad. On Bazzite, the disconnect-reconnect sequence is reliable in Steam. On another distro, once disconnected, games lose and don’t get input back. One workaround is to switch official Proton to GE-Proton, which for some reason solves this. But it’s inconvenient to override that for all games.

To clarify: I’m doing these tests on the same computer, same controllers, just two distributions.

I’m assuming these things are constant, and not dependent on distribution:

  • Steam client
  • steamrt3
  • Proton
  • …but maybe not?

I would love any pointers. What else may I be missing?

Thanks!

1 Like

Bazzite is a magical distro blessed by the spirit of Linus. Everything just works, somehow. Sorry I don’t have a more technical explanation. Much like the Schroedinger equation or the Transformer architecture, I think even the distro maintainers may not have a full understanding of why it works so well. I don’t think one can simply replicate the awesomeness of Bazzite, but we’re lucky that we can use it and marvel at it.