Steam for Linux

Steam for Linux

steamapps/common vs compatdata
My ~/.wine/drive_c directory (default wine prefix) looks a little like the drive_c root directory of a windows machine.
  • ProgramData
  • Program Files
  • Program Files(x86)
  • users
  • windows
If I run an installer program using wine, the installed program will probably wind up in either Program Files or Program Files(x86). Pretty much like windows. Somewhat intuitive.

But valve / steam / proton somehow puts the immutable (my term) files outside the prefix, in steamapps/common/<appname>. Only config files and savegames and such go in the prefix under steamapps/compatdata/appID/pfx. Considerably less intuitive IMO. Heroic Launcher essentially does the same thing. (At least the flatpak version, which is the default on Fedora.)

I'm mildly curious about the how of this; more so in the why. I wouldn't think it avoids any file duplication or saves any drive space. Are they able to share some code with the windows version of steam?

I should have educated myself on the steam-for-windows directory structure before posting this. But I didn't.
< >
Showing 1-6 of 6 comments
WarnerCK Jan 17 @ 9:00am 
Games are installed to the game install location (steamapps/common). Files created by the games, on Linux or Windows, can be splatted wherever the game dev chooses. However Windows games played on Linux aren't going to be splatted to the Linux locations; they get splatted to the Windows location, but in the game's Proton prefix. Each game run through Proton gets its own prefix so that they can't interfere with each other.
DonMcK Jan 17 @ 10:21am 
If you install non-steam games then the whole lot goes under compatdata/appid
If I understood correctly, you are not asking about what is going on, and this question was probably tried to be answered by the predecessors.

You ask why this is happening. And it seems to me that the answer is simple.
It's just that steam doesn't follow linux's guidelines, the location of directories and probably many others.
They chose the same dirty and resource-wasting solution as flatpak and snap.
Just like steam deck os is closer to ps3 os than to a typical linux distribution.
Responses appreciated. I'm still in a position where I seldom know the correct question to ask. But maybe I can nibble away at my ignorance in tiny increments.

Not terribly surprising that Valve/Steam would have a custom / non-standard installer. Wandering off topic, it is more puzzling / impressive that Heroic manages the segregation, presumably using the same installer for which vanilla wine puts the .exe in the prefix. Maybe the "host" (environment?) provides the installer with a PROGRAM_LOCATION or INSTALL_LOCATION or some such.
It seems to me that it is highly likely that wine/proton provide these paths to the "user" directories you are talking about.

Are your considerations purely theoretical or are you trying to achieve something?

If you want to accomplish something, many things in Linux are easiest to do using symbolic links. When you get used to it, it's amazing how it can make things easier.

I use Midnight Commander for many things, it's hard to get used to it, but once you get to know it, it's an incredibly helpful and powerful tool.
Its strength does not lie in its capabilities, although these are great, or even in the keyboard shortcuts that are amazing.
But its ability to connect a dual-pane file manager to a built-in console window. I am constantly coming up with new uses for this combination.

apt search mc
apt search Midnight

:)
lonesh33p Jan 18 @ 12:56pm 
Pretty much theoretical in this instance. MC tip appreciated.
< >
Showing 1-6 of 6 comments
Per page: 1530 50