I was just going to report the same issue.
I'm on Fedora 44 (wayland) and tried installing Steam both via Discover as a flatpak and from the terminal. Both lead to the same result.
When I launch games or other non-steam software from Steam the controller works out of the box.
When launching software or games outside of steam (heroic launcher or from the Godot Game Engine) the desktop layout also works but not the Gamepad action set. Switching to it works but the inputs don't get used at all. Only the mouse trackpad works on the gamepad action set.
I'm happy to trouble shoot and test this with some guidance. I'm out of ideas at this point.
I tested the issue on the Steam Deck and a Gentoo work desktop and there the controller works as expected.
Reposting my comment from the other issue:
This was happening to me with FC25 and FC26. What fixed it for me is turning on EA's Ingame Overlay (thru the EA app). It also fixed steam input not working, steam overlay not working, steam desktop controller layout not disabling, steam recordings not working, etc.
Adding on that I'm also suffering from this while trying to connect my new steam controller and heroes of the storm (added as a non-steam game through lutris).
Removing all binds from the desktop mode had no effect, neither disabling the toggle in the properties section of the game "Use Desktop Configuration in Launcher" which I thought might help out.
I wish there was a way to make the game configuration always take precedence over the desktop mode while the game was running. It wouldn't be ideal but it would be a nice workaround
I am running into this issue on my Steam Controller on Flatpak Wayland KDE.
The configuration mismatch occurs only when I click the dialog to allow Steam Flatpak to control input devices. It seems like the --device=input permission is what Valve uses to make Steam control the desktop. But if you never grant it permission to do so, then it will only use the controller when the game launches (the expected behavior!). I don't know if there are any negative side effects of not granting it permission, but from what I can see, the Steam Input permission dialog only appears when I press an input on my controller outside a running game.
It's a bit annoying, but as long as you don't press accept/decline for that dialog on KDE, you won't have any problems. Can't say the same for non-Flatpak/non-KDE users, though.
There's an update on the original thread that worked for me: Open settings -> Game Controller and turn off 'Allow using pointer as a keyboard'
For anyone having this problem, I found out the common denominator.
First off, yes, if you're using KDE Plasma, you should double-check that "Allow using as pointer and keyboard" is disabled in your controller settings. However, 9/10 times, that will not fix the problem, especially if you are running the game under a native Wayland window or compositor.
The root cause stems from the fact that Steam can't track window focus for Wayland clients. When a game runs under winewayland.drv via PROTON_ENABLE_WAYLAND=1, Steam never sees the game window take focus, so Steam Input falls back to the global Desktop Layout. This layout maps your controller to mouse/keyboard, which is why the touchpads either do nothing useful in game or start moving your cursor around. Another common symptom is rapid flickering between mouse/keyboard and gamepad glyphs for games that support switching between controller and mouse/keyboard dynamically (i.e., ELDEN RING, Lies of P).
GloriousEggroll fixed this upstream in proton-ge-custom by calling steam://forceinputappid/<appid> right before the game starts and resetting it to 0 on exit, which pins Steam to that game's controller configuration instead of letting it fall through to the Desktop Layout. The commit also changes self.env.setdefault("PROTON_NO_STEAMINPUT", "1") to a plain self.env["PROTON_NO_STEAMINPUT"] = "1" on winewayland, and adds a Wine patch that hides Steam virtual controller records from SetupAPI and Configuration Manager enumeration so DirectInput/XInput can't open a second, dead controller path.
However, this is not a true fix, since it sets Steam Input to disabled from within the Proton layer itself. So, if you did try to set PROTON_USE_SDL=0 PROTON_NO_STEAMINPUT=0 along with -steamos3 in the command-line arguments (which is what people did before SDL 3.0 came out last month), it wouldn't do anything, since PROTON_NO_STEAMINPUT would just become enabled again.
If you're fine with using SDL as the backend, this should be an okay change for you, and it will hopefully become the standard on subsequent releases of proton-ge. However, for those using the Steam Controller 2, which defaults to using Steam Input as the backend for controls in all games, this is not a good workaround. Or even if you're using proton-cachyos (not sure how they plan on approaching this issue, since it's pretty niche to begin with). Or even worse, if you're like me and running into both problems (I use a Steam Controller 2 and I prefer using proton-cachyos). Ordinarily, this leaves you with a couple of options, which aren't true "solutions" in my mind:
Luckily, I found a solution to this issue a couple of minutes ago on the latest Steam Flatpak on proton-cachyos on KDE Plasma 6 Wayland! In theory, this should work on other desktop environments and on non-Flatpak Steam, too. My approach uses two things:
PROTON_USE_SDL=0 PROTON_NO_STEAMINPUT=0. This only works on forks that still use setdefault for that variable on winewayland, which proton-cachyos still does. Since proton-ge-custom changed it to a plain assignment, it's not recommended that you use it as a compatibility layer (though I don't think it's in the official proton-ge releases yet).steam://forceinputappid/<appid> before the game starts and sets it back to 0 when the game exits. This was inspired by GloriousEggroll's commit, and it is what stops Steam from falling back to Desktop Layout. The only difference in my approach is that I'm doing it from a launch wrapper rather than from inside Proton itself. This effectively keeps Steam Input enabled and Steam finally recognizes the game window, so it won't try to turn on Desktop Layout over and over!Put together, my launch options look like this:
PROTON_USE_SDL=0 PROTON_NO_STEAMINPUT=0 /path/to/proton-game-wrap.sh gamemoderun %command%
Some caveats about the script:
WRAP_NO_HDR=1 in your launch options to skip it entirely, change WRAP_HDR_OUTPUT if your HDR display isn't called DP-2, or just delete the hdr() function and its two call sites.steam binary is not on PATH at the moment your game launches, because the script technically runs inside the Steam Linux Runtime container (pressure-vessel). A bare steam steam://... call just returns 127, while from the outside the game launches perfectly normally and looks like everything worked. The invocation that actually lands is flatpak-spawn --host flatpak run com.valvesoftware.Steam <url>, which requires org.freedesktop.Flatpak=talk permissions from Steam Flatpak.There's an update on the original thread that worked for me: Open settings -> Game Controller and turn off 'Allow using pointer as a keyboard'
![]()
In Desktop Mode, I went to System Setting -> Game Controller, but there was no option for "Allow using pointer as a keyboard." I'm on the most up to date build of the SteamOS on the Sttable build. I went to the Discover Store, and everything is up to date there as well. I'm using a LCD steam deck. Also, even though I have a Steam Controller connected via puck, it's not showing up in the list of controllers in System Setting -> Game Controller, but other connected controllers via bluetooth are as is the Steam Deck itself, but again the option to "Allow using pointer as a keyboard" is not listed for any of them.
Adding a case where this breaks a Steam-launched, native Steam Input API title, not a non-Steam game.
Setup: CachyOS, KDE Plasma on Wayland, original Steam Controller (2015). Reproduced over BLE and wired USB, and on both stable 1785799196 and beta 1786661881. The game is DEATH STRANDING 2 (appid 3280350), which ships its own gordon config in steaminput/steam_input_manifest.vdf. I had PROTON_ENABLE_WAYLAND=1 in the launch options.
In game the desktop layout stayed active, so the left stick and right trackpad both drove the mouse pointer. controller.txt only ever queued activations for 413080/443510/769 - never for the game. Explicitly selecting the official layout registers fine:
SetSelectedConfigForApp - idx 0 app: 3280350, 0 CLOUD_.../config/3280350/FC5492211C.vdf 1 1
SetSelectedConfigForApp - new entry for 3280350
but activation still never fires, and the game's Steam Input API call falls through with No cached sticky mapping in ActivateActionSet.
The KDE controller setting mentioned above ("allow using as pointer and keyboard", turned off) changed things but didn't fix it. It got me exactly one game activation, which held for 78 seconds:
[11:39:36] Queueing activation for controller: 0 app: 3280350
[11:40:54] Queueing activation for controller: 0 app: 413080
After that reversion the game falls back to Steam's emulated pad (a virtual "Microsoft X-Box 360 pad 0" device shows up, and the real controller is correctly on the game's SDL ignore list, so it isn't reading the hardware directly). On that fallback path the trackpad-as-mouse bindings are unrepresentable - an XInput pad has no mouse - so editing the layout in Steam appears to do nothing in game, which is pretty confusing until you know why.
Removing PROTON_ENABLE_WAYLAND=1 from the launch options fixes all of it. The game config activates and holds, and layout edits apply again. An Xbox Series X pad was unaffected the whole time, which fits the picture: it rides the XInput fallback and never needs the focus association that native Wayland windows break.
Happy to attach fuller logs if that helps.
PROTON_ENABLE_WAYLAND=1`x1 2026-08PROTON_ENABLE_WAYLAND=1`,x1 2026-08PROTON_NO_STEAMINPUTx1 2026-08PROTON_NO_STEAMINPUT=0x1 2026-08PROTON_NO_STEAMINPUT=0`x1 2026-08PROTON_NO_STEAMINPUT=0`.x1 2026-08PROTON_USE_SDL=0x1 2026-08gamemoderun %command%x1 2026-08
This has been an issue in the past and was marked as resolved, but it is very much not resolved. Please refer here and/or reopen the issue: https://github.com/ValveSoftware/steam-for-linux/issues/10551#issuecomment-4643726918