protonscr

Steamcontroller 2026 hyprland desktop mode bug

steamopen Steam controllerDistro Family: Arch
ValveSoftware/steam-for-linux#13185 · opened 2026-05-11 by og-mafk · updated 2026-08-16 · 22 comments · github
Oog-mafk 2026-05-11 github

Your system information

  • Steam client version (build number or date): 1.0.0.85-6 (also tested with Steam Beta)
  • Distribution: CachyOS (Arch-based), Hyprland/Wayland compositor, kernel 7.0.5
  • Opted into Steam client beta?: Yes (tested, no change)
  • Have you checked for system updates?: Yes
  • Steam Logs: [see key excerpts below — full logs available on request]
  • GPU: NVIDIA RTX 3070

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:

[2026-05-10 08:58:45] Deck Controller PCB Serial# invalid: NA
[2026-05-10 08:58:45] BYieldingRegisterSteamController
[2026-05-10 08:58:45] BYieldingCompleteSteamControllerRegistration
[2026-05-10 08:58:45] BYieldingCompleteSteamControllerRegistration - Error committing registration completion of controller & account pair: FXA99604045FB Invalid Parameter

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/hidraw12 through /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:

  • udev rules — vendor-wide 28de rules present and correct
  • uinput access — user has direct ACL access confirmed via getfacl
  • uinput module loaded — confirmed via lsmod
  • Steam hidraw access — Steam holds all five hidraw interfaces open (confirmed via /proc/[pid]/fd)
  • Registering via Windows Steam — attempted, error persists on Linux (Windows works perfectly)

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:

  1. Connect Steam Controller 2 via USB dongle
  2. Unplug and replug dongle with Steam not running — trackpad correctly controls system cursor ✅
  3. Launch Steam
  4. Trackpad no longer controls system cursor ❌
  5. Check ~/.steam/steam/logs/controller.txtDeck Controller PCB Serial# invalid: NA and BYieldingCompleteSteamControllerRegistration - Error... Invalid Parameter appear on every launch

Expected 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.


Nnoisersup 2026-05-11 github

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
DDemiDaemi 2026-05-11 github

I have the same issue and same symptoms, using hyprland on Fedora.

Mmlebjerg 2026-05-12 github

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

SStefcio345 2026-05-12 github

Yup that did it for me, now mouse for controller works perfectly

Arch

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
Mmlebjerg 2026-05-12 github

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")

Oog-mafk 2026-05-12 github

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

JJojopanis 2026-05-12 github

I can confirm that this works for me too, thanks a lot!

Zzjeffer 2026-05-12 github

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.

Mmierak 2026-05-12 github

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.

NNoahIles 2026-05-12 github

This fixed the issue on niri as well.

Oog-mafk 2026-05-13 github

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

Oog-mafk 2026-05-13 github

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 😆

BBagpipesRbetter 2026-05-13 github

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 :(

Mmlebjerg 2026-05-13 github

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

Ddom1torii 2026-05-16 github

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.

Zzjeffer 2026-05-16 github

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.

Ccriticalart 2026-05-18 github

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

Llaublet 2026-05-18 github

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

BBagpipesRbetter 2026-05-18 github

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

Mmaxbailly 2026-05-21 github

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.

DDewm-Bot 2026-06-28 github

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.

Ggmankab 2026-08-16 github

reproduced this bug on fedora silverblue 44

tested both steam flatpak and steambox