steam-compatdata-symlinker-thing
steam-compatdata-symlinker-thing copied to clipboard
Script Detects Essential Steam Deck Directories
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.
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?
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.

If you could replicate this in script form, we would have a link between prefixes and installed titles.
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.