Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In Steam Deck Desktop Mode, non-Steam games always use Desktop controller layout #8904

Closed
XanderXAJ opened this issue Nov 9, 2022 · 12 comments
Labels

Comments

@XanderXAJ
Copy link

This issue is an updated version of what I've posted this on the Steam Deck Bug Report forums. I now figure this might have been a better place to post it. If this is considered multi-posting, let me know and I'll close this issue.

Your system information

  • Steam client version (build number or date): 1667952052
  • Distribution (e.g. Ubuntu): SteamOS 3.3.2
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

When in Desktop Mode, using the Steam Deck's built-in controls, launching a non-Steam game/app via Steam will result in no change in controller layout for that app. The Desktop controller layout will still be in effect.

I believe this has been broken for months for me. It's only recently I started trying things in Desktop Mode more and realising the issue affected all non-Steam games and not just the odd thing.

I'm only using the Steam Deck's built-in controls (Neptune) and have not connected any external controllers.

Note that controller layouts work as expected in Game Mode -- this issue only occurs in Desktop Mode.

With help from friends, I've reproduced this on 3 different Steam Decks logged in to 3 different accounts, using Stable and Beta update channels. This rules out my initial theory that bad configuration was syncing to the Deck via my account.

Steps for reproducing this issue:

  1. Boot the Deck and switch to Desktop Mode
  2. Boot a non-Steam game
  3. Verify that the controls on the Deck are still using the Desktop layout, even when the non-Steam game is focussed or fullscreen

Steps using Firefox/Chrome

  1. Boot the Deck and switch to Desktop Mode
  2. Run a non-Steam game. This is easy to reproduce with Firefox or Chrome. It'll work with any non-Steam game however. I'll use Firefox as an example.
    • Go to Start > Firefox > Add to Steam to add it as a non-Steam game.
  3. In Steam, go to Firefox > Cog button > Manage > Controller layout. Confirm that the controller layout is not the desktop layout. In this case, Steam smartly detects Firefox and uses the Web Browser controller layout.
  4. For testing, note differences between selected layout for non-Steam game and desktop layout. In my case, L5 is middle-click for Firefox and Mouse Back for Desktop, so we can use that. Note that all buttons are affected, and it doesn't matter if the layout is emulating a gamepad or a KB+M, but we want an obvious difference for testing.
  5. In Steam, launch Firefox/Chrome.
  6. With the browser selected, press L5. The web browser layout is supposed to middle mouse click, which would open or close a tab, or activate autoscroll. Instead, it gets Mouse Back, which sends the tab back in its history (although this can vary based on your local Desktop controller layout).
  7. Try other buttons and confirm it affects all inputs, not just the one button. L4 and R4 for example should do nothing in Firefox's layout, but instead are Page Down and Space respectively as per the Desktop layout -- especially clear when the address bar is focussed.

Attempted fixes

  • Using beta channel.
  • Modifying the controller layouts for non-Steam games.
  • Resetting controller layouts for non-Steam games and Desktop using recommended/community layouts.
  • Re-imaging the Deck (twice, once during my debugging, once as requested by Steam support).
  • Clearing download cache, restarting Deck and logging back in.
  • Deleting userdata/<user_id>/config and restarting Deck.
  • Deleting all controller profiles inside of steamapps/common/Steam Controller Configs (while a game is running to ensure the deletions are synced) and then restarting the Deck
@DoubleMunch
Copy link

With the latest version (Steam Deck OS 3.4.2), i think that you can switch to Gamepad layout mode from desktop mode with a long press on the right pause button (3 strokes). Can you check ?

@XanderXAJ
Copy link
Author

XanderXAJ commented Dec 23, 2022

Thanks for reaching out @DoubleMunch. You are correct, the Desktop layout got patched with a "Desktop" and "Gamepad" action sets some time back (on preview channel at least). The "Gamepad" action set is a stock gamepad layout and is a useful workaround for the issue in some circumstances, e.g. to play DRM-free games or emulators in desktop mode, so long as you want a stock gamepad.

This doesn't resolve the above issue -- if you want to customise controls on a per non-Steam game or app basis, you're out of luck -- but it's a good option to have.

@GiovanH
Copy link

GiovanH commented Dec 24, 2022

I can confirm that I am experiencing this same issue, and that holding down the start button switches between the Desktop and Gamepad action sets, as expected in desktop mode but not as expected given my controller layout selection.

@kisak-valve kisak-valve added the non-Steam application Shortcut added to Steam with the "Add a non-Steam Game..." option label Jan 26, 2023
@AndyDurden
Copy link

I'm having the same issue. Can confirm what @DoubleMunch and @XanderXAJ say about the new default layout by ScottD having a Gamepad actionset. I imagine ScottD had to do something special to create this config, because in the current UI there is no way to add gamepad commands to desktop configs. Would be nice to have this feature so we can at least customize more action sets.

As for customizing on a per-game/app basis, I don't know much about steaminput internals, but I imagine the difficulty is in deciding which X windows to switch configs for, especially when the non-steam game is an arbitrary command and not confined to a gamescope instance. I think the solution would involve some mapping between the current set of X windows and the process tree spawned by the non-steam command. (relevant stack exchange)

Another workaround for this could involve some more support for running apps in gamescope from desktop mode. It's currently possible to run non-steam games inside gamescope in desktop mode, but steaminput still doesn't want to activate their per-game configs.

@miromarszal
Copy link

Could #8952 be related? I managed to get the gamepad working in non-flatpak Chrome. Verified with gamepad tester that inputs are correct. I'm not on Deck but on Ubuntu though.

@AndyDurden
Copy link

AndyDurden commented Oct 9, 2023

I believe this issue was fixed a few months ago. I've been able to run non-steam native linux applications and windows applications through proton with per-game steaminput configs for a while (also, the overlay does work in these cases). Can't comment on flatpak applications though.

@bjoern-tantau
Copy link

It does not work with flatpaks. At least when I run a game installed through Lutris on the Steam Deck through Steam in desktop mode it does not switch to the Steam Input layout.

@kisak-valve
Copy link
Member

I'm going to go ahead and close this because it appears to have been resolved per @AndyDurden's comment.

Hello @miromarszal @bjoern-tantau, we know that there are parts of the Steam overlay and Steam Input that get loaded up at the same time, so the flatpak variant of these symptoms could indeed be the issue tracked at #8952.

@XanderXAJ
Copy link
Author

I can confirm this is working for the cases I specified in the OP. I'll keep an eye on the Flatpak issue. Thank you very much for looking into and fixing this. ♥️

@PeglinX
Copy link

PeglinX commented Mar 13, 2024

I am having the issue again. I had no previous encounters of this but my non-Steam Games did use the same controllers. Now they dont

@creativecoder
Copy link

Looks like there's a regression for this issue. There's a new issue that's been opened at #10551 that looks like the same problem.

@Wibbbs
Copy link

Wibbbs commented Aug 22, 2024

Can confirm I am having this same issue as well. Added bolt launcher (Runescape) as a non steam game, custom controls worked perfectly in game mode but when launched in desktop mode, custom controls are not used and desktop configuration is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

10 participants