I'm experiencing the same issue on the Hyprland.
I dug into my Steam logs, and it looks like the Steam client is identifying my Steam Controller as Steam Deck aswell:
[2026-05-11 14:29:48] !! Controller 0 attributes (wireless):
Type: 10
ProductID: 4866
...
[2026-05-11 14:29:48] Loaded Config for Local Selection Path for App ID 769, Controller 0: controller_base/basicui_neptune.vdf
...
[2026-05-11 14:31:23] Steam controller device closed after HID IO failure
I have the same issue and same symptoms, using hyprland on Fedora.
I had the same issue, but i have fixed it.
Bazzite had the same issue a while back and they added Extest
https://github.com/ublue-os/bazzite/pull/4512
Just pull the project, compile it and then run steam with LD_PRELOAD=/path/to/libextest.so steam, it is all in the repo
https://github.com/Supreeeme/extest
Yup that did it for me, now mouse for controller works perfectly
I downloaded package from here (had to install rust and support for 32-bit)
https://aur.archlinux.org/packages/lib32-extest
rustup target add i686-unknown-linux-gnu
yay -S lib32-extest
then edited steam desktop (on my arch its in the /usr/share/applications/steam.desktop) entry to use the extest
Exec=env LD_PRELOAD=/usr/lib32/libextest.so /usr/bin/steam %U
Steam complains that it uses 32-bit, but the 64-bit version won't work.
I will be praying i don't need to look at the logs, but it works for now!
ERROR: ld.so: object '/usr/lib32/libextest.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Remember to update your start ups:
hl.exec_cmd("LD_PRELOAD=/usr/lib32/libextest.so steam -silent")
works for me so far
The fix is:
yay -S rustup
rustup default stable
rustup target add i686-unknown-linux-gnu
yay -S lib32-extest
Then add to your Steam desktop entry Exec line:
Exec=env LD_PRELOAD=/usr/lib32/libextest.so /usr/bin/steam %U
I can confirm that this works for me too, thanks a lot!
I haven't tested the extest fix yet, but it seems like this should be fixed in steam? A workaround like that shouldn't be needed imo, ideally it should work out of the box. Perhaps this issue can be reopened until there is a permanent fix without having to apply that workaround?
EDIT: I tested it now and can confirm it works very well, the steam controller is now fully usable in games and on the desktop.
I haven't tested the extest fix yet, but it seems like this should be fixed in steam?
It works, but I definitely agree that this should not be needed and should be fixed in steam.
This fixed the issue on niri as well.
on further testing, this solved one problem but created another. now when I open steam settings or the steam input menu, both trackpads seize up and stop working/no haptics
I haven't tested the extest fix yet, but it seems like this should be fixed in steam? A workaround like that shouldn't be needed imo, ideally it should work out of the box. Perhaps this issue can be reopened until there is a permanent fix without having to apply that workaround?
EDIT: I tested it now and can confirm it works very well, the steam controller is now fully usable in games and on the desktop.
I didn't see this. you are right. its my first git issue, I didn't think about how closing it would mean that it wouldn't get fixed 😆
im seeing the same original behavior but the extest fix isnt working for me. running arch+hyprland. definately seems should be a simple bug fix for the steam devs in the steam client, so ill just have to wait till that hapens :(
on further testing, this solved one problem but created another. now when I open steam settings or the steam input menu, both trackpads seize up and stop working/no haptics
To me it seems like it goes into like a capture mode, when you exit the window, or mouse away, it should work as expected
works for me so far
The fix is:
yay -S rustup rustup default stable rustup target add i686-unknown-linux-gnu yay -S lib32-extest Then add to your Steam desktop entry Exec line:
Exec=env LD_PRELOAD=/usr/lib32/libextest.so /usr/bin/steam %U
For those who this doesn't work for, try this:
I had to disable SteamRT3 in Steam -> Settings -> Interface and only then run LD_PRELOAD=/usr/lib32/libextest.so steam directly in my terminal, otherwise it didn't work.
Exec=env LD_PRELOAD=/usr/lib32/libextest.so /usr/bin/steam %U
Keep in mind that adding this to the Steam package's .desktop file will only persist until the next update, after which your package manager will overwite this file again. Another reason to fix this in Steam itself ;)
As a workaround i think you can create a new .desktop file in ~/.local/share/applications/ with the same name, which should take precedence over the one in /usr/share/applications. I haven't tested this though.
chiming in as well, have the same exact issue and the fix was already posted above.
yay -S rustup
rustup default stable
rustup target add i686-unknown-linux-gnu
yay -S lib32-extest
I then added hl.exec_cmd("LD_PRELOAD=/usr/lib32/libextest.so steam", { workspace = "3 silent" }) to my hyprland config to autolaunch steam with the lib specified and it works great.
hopefully this will be fixed soon, workaround is fine for now though
Same for me on Pop!_OS
Distribution: Pop!_OS 24.04 (Ubuntu-based)
Steam client: 1.0.0.85 (also tested with Steam Beta)
Kernel: 6.x
Compositor: GNOME/X11
Trackpad works correctly as system mouse in lizard mode before Steam launches
As soon as Steam launches, exclusive hidraw control is taken and cursor stops working
Firmware successfully updated via Steam on macOS — controller works perfectly there
Issue persists on Linux regardless of firmware version
Relevant log entries from ~/.steam/steam/logs/controller.txt:
Deck Controller PCB Serial# invalid: NA
BYieldingQueryAccountsRegisteredToController
BYieldingQueryAccountsRegisteredToController - server unavailable checking local cache for stored values
im seeing the same original behavior but the extest fix isnt working for me. running arch+hyprland. definately seems should be a simple bug fix for the steam devs in the steam client, so ill just have to wait till that hapens :(
After reinstalling steam using yay and doing the first launch through the terminal to properly generate the file at /usr/share/applications/ then applying the workaround code I got it working on both my work pc and home gaming rig which both are running arch and hyprland
I have the same issue on my Debian 13 system.
OS : Debian GNU/Linux 13
KDE Plasma : 6.3.6
KDE Frameworks : 6.13.0
Qt : 6.8.2
kernel : 6.12.86+deb13-amd64 (64-bit)
Compositor : Wayland.
For some reason, I can't build the library mentioned here so I can't tell if the fix works.
On hyprland I noticed that forcing software cursor seemed to fix the invisible cursor issue, but I can't seem to get that to work anymore on the newer lua builds of Hyprland.
Your system information
Please describe your issue in as much detail as possible:
The Steam Controller 2 (USB ID
28de:1304, "Steam Controller Puck") does not function as a system-wide mouse in desktop mode on Linux. The controller works perfectly in games. The trackpad moves an invisible secondary cursor separate from the system cursor — hover effects are visible in Steam but the visible system cursor does not move.Root cause identified via logs (
~/.steam/steam/logs/controller.txt):Steam Linux is misidentifying the SC2 as a Steam Deck component and attempting to register it via the Deck hardware registration path. This fails on every launch:
This error has occurred on every Steam launch since day one (May 8, 2026). Due to the registration failure, Steam never creates a uinput virtual mouse device, so the SC2 cannot take over the system cursor.
Critical finding: The trackpad works correctly as a system mouse in lizard mode before Steam launches. As soon as Steam launches, it grabs exclusive hidraw control (
/dev/hidraw12through/dev/hidraw16) and the cursor stops working. Steam takes the device out of lizard mode, fails to create the uinput virtual mouse, and leaves the user with no cursor control from the device.Confirmed not the cause:
28derules present and correctgetfacllsmod/proc/[pid]/fd)Also confirmed by another user (Jojopanis, plain Arch Linux + Hyprland) in this Steam discussion thread: https://steamcommunity.com/discussions/forum/11/834998218919117234/
Steps for reproducing this issue:
~/.steam/steam/logs/controller.txt—Deck Controller PCB Serial# invalid: NAandBYieldingCompleteSteamControllerRegistration - Error... Invalid Parameterappear on every launchExpected behaviour:
Steam should create a uinput virtual mouse device and take system-wide cursor control, as it does on Windows and SteamOS/Steam Deck. If uinput virtual mouse creation fails for any reason, Steam should fall back to leaving the device in lizard mode rather than holding exclusive hidraw access with no cursor output.