HeroicGamesLauncher
HeroicGamesLauncher copied to clipboard
Steam Deck: controller mode breaks after accessing `/dev/hidraw?`
Describe the bug
Launching heroic on the Steam Deck (non-OLED version, valve's kernel and OS) while the official steam client is not running causes the controller input device /dev/input/js0
to vanish, causing the controller to work as a keyboard and mouse in heroic and any games launched while heroic is running. As a workaround, removing permissions of a specific /dev/hidraw?
device resolves this issue, restoring controller mode in both heroic games and any games launched while heroic is running.
Add logs
n/a
Steps to reproduce
- Switch to Steam desktop mode
- Kill all steam instances (e.g.
systemctl --user stop [email protected]
) - Verify that
/dev/input/js0
exists - Start heroic
- Note that
/dev/input/js0
no longer exists
Expected behavior
Controller input should work without having to launch steam and being logged in.
Screenshots
No response
Heroic Version
Latest Stable
System Information
- OS: SteamOS 4.6.5 (linux 6.5) and 4.5.19 (linux 6.1)
- Tested: both flatpak and non-flatpak
Additional information
The relevant input devices seem to be provided by hid_steam
, including the /dev/input/{js,event?}
for controller, keyboard and mouse input. Opening a particular /dev/hidraw?
device (e.g. via sudo xxd /dev/hidraw2
) causes the js0
(/sys/dev/char/13:0 -> ../../devices/pci0000:00/0000:00:08.1/0000:04:00.4/usb3/3-3/3-3:1.2/0003:28DE:1205.0003/input/input27/js0
) device to disappear and input devices on two mouse and keyboard devices to be registered by libinput
instead (sudo libinput debug-events
). When running the official steam client with a logged in user things behave differently: /dev/input/js0
is backed by /sys/dev/char/13:0 -> ../../devices/virtual/input/input26/js0
instead and not the kernel module hid_steam
. I haven't tested this on linux mainline yet.