Skip to content

Conversation

@Maykin-99
Copy link

Fixes #4820 by setting the base directory of CompatData from steamapps/compatdata/<steamid>/ to steamapps/compatdata/<steamid>/<userid>/ (I'm honestly surprised that it worked without a hitch).

The only issue is that the old files still exist.
Ideally we would move them to the new path.
I assume that would belong in upgrade_pfx? Or is it even necessary?

Fixes ValveSoftware#4820 by setting the base directory of `CompatData` from `steamapps/compatdata/<steamid>/` to `steamapps/compatdata/<steamid>/<userid>/`  (I'm honestly surprised that it worked without a hitch).

The only issue is that the old files still exist.
Ideally we would move them to the new path.
I assume that would belong in `upgrade_pfx`? Or is it even necessary?
@Maykin-99 Maykin-99 closed this May 26, 2021
@Maykin-99 Maykin-99 deleted the patch-1 branch May 26, 2021 12:34
@Maykin-99 Maykin-99 restored the patch-1 branch May 26, 2021 12:34
@Maykin-99 Maykin-99 reopened this May 26, 2021
@VannTen
Copy link

VannTen commented Feb 20, 2022

How could we make this progress forward ?
I just got it by the exact same problem when trying to make family sharing work.

@Nomz420
Copy link

Nomz420 commented Mar 29, 2022

Could someone look into this? This fix would prove really useful for us.

@CorruptComputer
Copy link

Does this break Steam Cloud save backups? Might need some coordination with the Steam folks to make sure this doesn't break existing save backups.

@jessecambon
Copy link

+1 also related to ValveSoftware/steam-for-linux#3942

@etyarews
Copy link

etyarews commented Sep 8, 2024

+1 This would fix so many issues

@eilimrib
Copy link

eilimrib commented Mar 1, 2025

Please. This is giving me nightmare having to recompile Proton just to share my games with my wife.

eilimrib added a commit to eilimrib/proton-ge-custom that referenced this pull request Mar 1, 2025
@Damglador
Copy link

@eilimrib you don't have to compile it. Since it's a change in a simple python file, you can just do the same change in already installed Proton version

@Damglador
Copy link

Perhaps it's better to store prefixes in the local compatdata? Because in case user1 with 1000 and user2 with 1001 on the first system won't get swapped prefixes on a system where user1 is 1001 and user2 is 1000

@shaft8472
Copy link

So, I found that this is the reason why I cannot let my two sons make use of the same gamedata as my account. Seems like a simple fix.

@Damglador
Copy link

I would do this as a personal patch:

self.base_dir = os.path.join(os.environ["STEAM_COMPAT_CLIENT_INSTALL_PATH"], "steamapps", "compatdata", os.environ["SteamAppId"]) + "/"

Or, from my understanding, Steam just could supply a local compatdata directory in STEAM_COMPAT_DATA_PATH variable, instead of the one in portable library.

@etyarews
Copy link

I've been thinking about it, and Steam really needs to redo the library side of things. I understand this is probably not the best place for it, but...

Yeah, moving /compatdata/ inside a /userid/ is a necessary step (although I'd rather make it steamapps/compatdata/<userid>/<steamid>/ instead of /<steamid>/<userid>/), but the rest of the library also makes no goddamnit sense.

IMO:

  1. /compatdata/ shouldn't be on the library folder. The library should only include game data. By putting /compatdata/ inside the library, you make it really hard to use an external device as a "mobile" library between computers with different users in the same household
  2. Steam should use a special group for file permissions on the library itself. It is a pain to set up multiple users sharing the same library because the first user who created the library has file permissions on the library, so other users cannot use it or update it.
  3. moving /compatdata/ (and possibly /shadercache/) outside the library folder means that the entire library could have a "shared" group/user permission, while /compatdata/ could have the "Linux user" creator permission, which simplifies things because Wine does not like the virtual c:/ to have permissions other than the user who is executing it

@Damglador
Copy link

@etyarews there's ValveSoftware/steam-for-linux#12030 for the first point. It also eliminates the need of doing /.

From what I understand from the code, Steam passes the compatdata location to Proton, so it's an issue with Steam and has to be resolved there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proton not working when multiple Linux users share a single installation path