steam-compatdata-symlinker-thing icon indicating copy to clipboard operation
steam-compatdata-symlinker-thing copied to clipboard

Script Detects Essential Steam Deck Directories

Open IBNobody opened this issue 3 years ago • 3 comments
trafficstars

When this script is run on the Steam Deck, it flags some folders as unused when they should be filtered out.

Proton Prefix 0 - I think we need to keep it.

/home/deck/.local/share/Steam/steamapps/compatdata/0

Steam Controller Configs - (There's old configs in it, but there are also new configs.)

/home/deck/.local/share/Steam/steamapps/common/Steam Controller Configs (Steam Controller Configs)

There are other bugs with the directory detection, but I'm not sure how far you want to go to fixing it. Non-steam-games, for example, or games that are installed in Steam but have no common folder.

IBNobody avatar Jun 14 '22 03:06 IBNobody

I updated the script. There is now a way to filter out directories at the top of it: filter=("Steam Controller Configs" "0" "Bad Rats" "another game" "1234567890" "and so on")

That should make it easy to for the user to add any custom filters they want or need.

As far as non-Steam games go, they have had some long standing problems in general, and Proton only adds several more layers of complexity to them.

As of right now, I don't see any reliable way to track them. I've done a lot of digging and I can't find any one place this information is stored. Valve seems to have scattered it in pieces all about. I never bother with non-Steam games before. I wrote my own Proton wrapper kinda thing so I can use Windows software outside of Steam. So I'm kinda shocked to find this out.

But the good news is you can still set up symlinks manually. And if you need to know which compatdata directory belongs to which non-Steam game, you can always use the find command: find ~/path/to/your/steamapps/compatdata/ -iname *program*name*here* 2>/dev/null

If the program wrote any data to the prefix, then that should find it. Just use * instead of spaces.

It would be great if I could automate for non-Steam games but I don't see anything dependable to work with right now. Maybe that will change in the future?

techmouse avatar Jun 15 '22 02:06 techmouse

There might be a way...

I have used the protontricks flatpak GUI get a list of known titles, and it seems to know which prefixes go with which installed titles.

image

If you could replicate this in script form, we would have a link between prefixes and installed titles.

IBNobody avatar Jun 15 '22 14:06 IBNobody

Ah, so if you would be amenable to also use protontricks...

(deck@steamdeck ~)$ protontricks -s .
Found the following games:
ACE COMBAT™ 7: SKIES UNKNOWN (502500)
Deus Ex: Game of the Year Edition (6910)
Deus Ex: Revision (397550)
Non-Steam shortcut: Cemu.exe (2485155432)
Non-Steam shortcut: Persona 4 Golden (3256111020)
The Witcher 2: Assassins of Kings Enhanced Edition (20920)

To run Protontricks for the chosen game, run:
$ protontricks APPID COMMAND

NOTE: A game must be launched at least once before Protontricks can find the game.

IBNobody avatar Jun 15 '22 15:06 IBNobody