steam-for-linux
steam-for-linux copied to clipboard
Move Content window confusing if multiple libraries on same drive.
Your system information
- Steam client version (build number or date): 1655931638 / Jun 22 2022 at 18:55:39
- Distribution (e.g. Ubuntu): Manjaro
- Opted into Steam client beta?: Yes
- Have you checked for system updates?: Yes
Please describe your issue in as much detail as possible:
I have multiple steam library folders on the same drive:
- The default steam library folder
- One for Native Games
- One for Win/Proton Games
- One for Proton and Runtime installs
The problem is if I wish to move a game from one library to another I am unable to tell which is which. It would help if there was a tooltip with the full path when you hover over each listed target to tell them apart.
Steps for reproducing this issue:
- Add multiple folders from the same drive as steam libraries
- Try to move a game between them
I think the top library on the list of your screenshot, is the most "on the left" in the "Storage Manager" view. (On my setup it is this way)
Meanwhile, I thought I found a workaround via editing ~/.steam/debian-installation/steamapps/libraryfolders.vdf
For each library, there is a line like this :
"label" ""
So I have put differents names in this label value. (1 name for each Library) Unfortunately, they are not shown inside Steam client. Moreover, they are erased after restarting Steam.
Maybe Valve could add sth inside Steam client to allow editing/displaying these labels ?
This problem has got even worse with the recent (late April 2023) UI changes.
Now the worse-than-useless names of "Local Drive ()", "External Drive ()", "External Drive ()", "External Drive ()", "External Drive ()" appear when installing games as well as moving them. And they don't even show the path or any other information which would help identify the steam library - these names are no more use than random strings, they mean nothing, they provide no useful information at all.
Yes, really, on my system, after "Local Drive ()", it shows four repeats of the exact same useless "External Drive ()" name. Starting from "Local Drive ()", they somehow correspond to actual directories /var/games/steam
(steam itself), /var/games/steam1
(linux native games), /var/games/steam2
(windows/proton games), /var/games/ssd
(windows games on ssd), and /var/games/ssd-linux
(linux games on ssd). All of these are ZFS datasets, some on my SSD pool, some on my HDD pool (the datasets for windows games have the casesensitivity
attribute set to insensitive
because windows devs tend to be careless about upper/lower-case filenames because windows filesystems are all case-insensitive). And they're all on internal NVME and HDD drives, nothing "External" about any of them, no USB, no e-sata, no lightning, or any other kind of external drive chassis.
There's no way of telling which "External Drive ()" corresponds to the actual directory when moving or installing games.
To add insult to the injury, steam libraries aren't on "drives" on linux, they're in sub-directories of the fs tree. The word "Drive" doesn't even make any sense on linux systems. Paths make sense, because linux, like all unixes, has a single tree which can have one or more filesystems (formatted partitions, ZFS datasets, btrfs sub-volumes, etc) mounted anywhere in that tree. Even on Windows, drive letter + path makes more sense than this "Local/External Drive ()" nonsense (I've never seen what it looks like on windows, but I'd guess that the drive letter appears inside the parentheses, which is at least usable/functional).
This is a critical usability bug for anyone who has multiple Steam Library directories, and it boggles the mind that it has been ignored for nearly a year. This is not just an ignorable minor cosmetic issue, it's a bug that harms usability.
It was bad enough when it only affected moving games, that's something that doesn't happen very often - but it's much worse that it now affects installing games, that's something that happens fairly frequently.
HTF can it be so difficult to just replace those stupid "External/Local Drive ()" labels with the actual pathname? It's not a difficult problem to understand, or to fix. It's something that should take only a few minutes if any programmer actually bothered to look into it - just change which variable is printed in that %s field, the path name instead of the cretinously useless label.
Steam has this information, the program KNOWS what steam libraries are configured, and their paths on the system, and which games are installed into each library. It even shows this in the Settings -> Storage dialog. It SHOULD display the path when installing or moving games too.
Meanwhile, I thought I found a workaround via editing
~/.steam/debian-installation/steamapps/libraryfolders.vdf
For each library, there is a line like this :"label" ""
So I have put differents names in this label value. (1 name for each Library) Unfortunately, they are not shown inside Steam client. Moreover, they are erased after restarting Steam.
Oddly enough, setting the label for library folder "0" (path /var/games/steam/steam
on my system, probably ~/.steam/steam
on most other systems) actually works. I set a label of "steam" for this and it showed up in the Steam app. Wasn't reset when exiting or restarting steam, either.
It doesn't work for any other library folders. As you say, they're all reset to the empty string when Steam is started.
It seems like someone had a good idea but never got around to finishing the implementation.
What's even stranger is that there are TWO identical copies of the libraryfolders.vdf
file. e.g. on my system there is:
-rwxr-xr-x 1 cas cas 19240 May 11 03:21 /var/games/steam/steam/config/libraryfolders.vdf
-rwxr-xr-x 1 cas cas 19240 May 11 03:21 /var/games/steam/steam/steamapps/libraryfolders.vdf
These are two separate files with different inode numbers, not hard links. I have no idea which one is actually used (or if both are), or why there's two of them. They're both modified to reset the label strings (for libraries other than "0") to empty when steam starts. Both files have identical contents, verified with diff
and cmp
.
(There's also lots of files called libraryfolders.vdf in the compatdata proton prefix directories, e.g. '/var/games/steam2/steamapps/compatdata/208140/pfx/drive_c/Program Files (x86)/Steam/steamapps/libraryfolders.vdf'
, but they have a different format and seem to be for library paths relative to Z:\
(the security hole symlink to / that should not exist) for the individual windows games. Mostly unrelated, only worth noting because it's odd that each game prefix needs a copy of the same global data)
Maybe Valve could add sth inside Steam client to allow editing/displaying these labels ?
I don't really care about having a GUI to do this, just being able to edit the libraryfolders.vdf file would be good enough for now.
Or, better yet, steam should just use the path names rather than the worse-than-useless "Local/External Drive ()" labels.
Game install path overly simplified.
Issue transferred from https://github.com/ValveSoftware/steam-for-linux/issues/9972. @ryliejamesthomas posted on 2023-08-09T08:32:25:
Your system information
- Steam client version (build number or date): 1690583737
- Distribution (e.g. Ubuntu): Arch Linux
- Opted into Steam client beta?: No
- Have you checked for system updates?: Yes
- Steam Logs:
- GPU: AMD
Please describe your issue in as much detail as possible:
I have my library in three directories, all on the same partition on the same disk.
- Steam's default one:
~/.local/share/Steam
- One for Linux games:
~/Games/Steam/Linux
- And one for Windows games:
~/Games/Steam/Windows
When I go to install a game all three are simply listed as /home
, so I've had to memorise their order to place games where I want them. This is also reflected in the Settings > Storage window.
It would be useful to show more information in the path.
This issue has existed since the new client released. I don't remember it being a problem before.
It seems that labelling the steam libraries works now.
Under Settings -> Storage
, you can select a library folder to examine. For each library, there's a ...
menu, and one of the options is Rename Library
. This lets you change the label for that library. Even better, the dialog for installing games and moving them from one library to another uses the label.
Hooray, problem solved. I now have the following labels for my various steam libraries:
$ grep label /var/games/steam/steam/config/libraryfolders.vdf
"label" "default"
"label" "steam1-linux"
"label" "steam2-win"
"label" "ssd-win"
"label" "ssd-linux"
Note: I haven't yet tested whether the labels survive quitting and restarting Steam - for now I'm assuming they do (it would be pointless if they didn't).
I can confirm that I am also now able to label my Libraries and that it retains them after restarting the Steam client.
20 months to fix this... I know that steam is a little indie project that makes no money, but still... 😁
I can confirm that I am also now able to label my Libraries and that it retains them after restarting the Steam client.
Yep, same, working great here. Haven't found anywhere where the label isn't shown.
Closing per the last several comments.