[Steam Deck][Flatpak] Create Steam shortcut doesn't work
-
Create Steam shortcut doesn’t work even with correct write permission
-
Adding the game desktop shortcut to Steam doesn’t work (except with Amazon games that work)
-
Adding Lutris to Steam work, but obviously in this case you can’t set performance settings per game from Game Mode (gamescope)
Sources used:
- Humble Bundle
- Origin
- Ubisoft Connect
- Amazon Games
+1 - I'm having the same issue. I've only tested with Amazon games so far.
Tested a few installers, also happens on my end on SD
Same issue here - was working fine before the flatpak.
Same problem
I had the same issue and figured out a workaround. The shortcut created by Lutris is located at:
~/.steam/steam/userdata/0/config/shortcuts.vdf
However, steam now uses a folder with your steam user ID inside userdata/. Let's say user id is 12345, the shortcut should be generated by Lutris at:
~/.steam/steam/userdata/12345/config/shortcuts.vdf
My workaround was to symlink the 0 to point to 12345, and after that it worked.
I'm not sure if we should do something in the Steam runner to tell Lutris this is your id? If so, it would be nice to have this showing up when you try to create the shortcut.
PS: in my case, I have logged with my alt and my kid account on the same Linux device and that could be the case of having multiple userdata/*/ folders.
Looking at this.
Lutris does not know your Steam user ID. It just searches for any config directory and picks the first it finds and goes with that config directory.
This isn't going to work too well when you have more than one userdata like this. But it's not clear how we can pick the right one, if the same home directory contains two.
Ask the user.
On Sun, Dec 25, 2022 at 12:49 AM Daniel Johnson @.***> wrote:
Looking at this.
Lutris does not know your Steam user ID. It just searches for any config directory and picks the first it finds and goes with that config directory.
This isn't going to work too well when you have more than one userdata like this. But it's not clear how we can pick the right one, if the same home directory contains two.
— Reply to this email directly, view it on GitHub https://github.com/lutris/lutris/issues/4453#issuecomment-1364596561, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABPWPXYUGXO45XGGCD2GMTWO6DZZANCNFSM572T4UYA . You are receiving this because you commented.Message ID: @.***>
Having just run into this problem today, here's one possible solution: (Please bear in mind I have only barely looked at this, with the intent to see what might be possible...)
It appears from this documentation that if you have have a web API key (information here) you can use the steam web API's GetPlayerSummaries endpoint to retrieve the display names (personaname) for a list of steamids.
If I understand correctly that the folder inside userdata is your steamid, then Lutris could check the userdata folder, and submit a single API request for the display names of all current profiles that have a config directory.
IF there are multiple profiles then the "Add Steam Shortcut" item could be changed to a nested menu "Add Steam Shortcut For ->" with a submenu listing each local profile's personaname which follows the current behavior of showing "install/delete" depending on if it exists.
If only one profile exists nothing needs to change, and in the case that multiples exist and the API call fails, I would suggest perhaps falling back to "Steam Profile #xxxxxx", at least offering the user the opportunity to install for one/both and work it out themselves. (Heck, could do that anyway if the API business is too cumbersome. Anything is probably better than the "WHY DOESN'T THIS BUTTON WORK DAMMIT?!" that is the current experience. :smile: )
Having no experience with the Lutris codebase I would likely not be an ideal person to take this on, but if the solution is approved and nobody wants to look at it I'd be happy to at least have a glance and see if I could make it work.
The most obvious place to start looking at would be in file lutris/util/steam/config.py in get_user_steam_id where we recent the steam_id based on the most recently used. That's the 1st function needing to be fixed, maybe by renaming it to get_user_steam_ids.
Then the code using this function needs to be updated to handle possibly multiple IDs and lastly it has to be integrated in the UI.
Making calls to the API shouldn't be a problem, we already call the API in get_steam_library, which is then used by the Steam service.
Also please make sure you're using an up-to-date Lutris flatpak and SteamOS Stable
Not sure if it's beneficial, but I noticed that Steam Rom Manager is able to parse out steam user ids using this helper.
Not sure how useful that is since I don't know typescript or python, but I thought I'd leave it here in case it would be a helpful pointer to someone more knowledgeable.
You can now test the Steam account selector in the preferences window
This was the last ticket targeting 0.5.14 so expect an update in Flathub Beta soon to test this on Steam Deck.