With the new arrival of Steam games to Linux came the messy Windows-ish file-structures of the games. They get scattered all around your hard drive without you having a clue what is actually going on which we already talked about before.
I have decided to try and help with that matter, and wrote a simple bash script that would take all of your save data, move it to your home//.local/share/games, and create symlinks instead of the actual save data, so the games would be able to access the new save location. I call that script LGSO (Linux Game Saves Organizer).
The script is far from perfect and I have a lot to add, but the basics of the script are already there, and it is fully usable.
As the documentations of Linux games are very poor, I've struggled with finding game save paths, and therefore LGSO currently only supports 4 games: 3089, 7 Days to Die, Blade of Destiny and Planet Explorer. It needs help to support many more.
The main goals of my script are to tweak it a little bit more (add a backup\restore function, easy customization) and to maintain a wiki with all of the save paths, for others to be able to refer to.
LGSO is available at GitHub: https://github.com/Tux1c/LGSO
And you can currently contribute by either reporting bugs and issues, giving locations of game saves, or submitting Pull Requests with pieces of code you think should be implemented!
I have decided to try and help with that matter, and wrote a simple bash script that would take all of your save data, move it to your home/
The script is far from perfect and I have a lot to add, but the basics of the script are already there, and it is fully usable.
As the documentations of Linux games are very poor, I've struggled with finding game save paths, and therefore LGSO currently only supports 4 games: 3089, 7 Days to Die, Blade of Destiny and Planet Explorer. It needs help to support many more.
The main goals of my script are to tweak it a little bit more (add a backup\restore function, easy customization) and to maintain a wiki with all of the save paths, for others to be able to refer to.
LGSO is available at GitHub: https://github.com/Tux1c/LGSO
And you can currently contribute by either reporting bugs and issues, giving locations of game saves, or submitting Pull Requests with pieces of code you think should be implemented!
Some you may have missed, popular articles from the last month:
But I am simply not going to create 50+ issues on github... Perhaps emailing or pm'ing a list in your desired format would be preferable to everyone involved? (or an editable wiki as suggested)
For now, you can PM your list to me directly here on GOL, until I will resolve the wiki, working on other important suggestions :)
Virtually all applications will adhere to the $HOME variable (for obvious reasons); you can just redeclare it for that application.
For example, by default mplayer puts a .mplayer in your home directory:
% mplayer &>/dev/null
% find . -type d -name .mplayer
./.mplayer
By prefixing the command with a variable, you can override that variable only for that application (or sub process). Eg:
% rm -r .mplayer
% mkdir test
% HOME=/home/edgley/test mplayer &>/dev/null
% find . -type d -name .mplayer
./test/.mplayer
Just for clarity, declaring the variable this way doesn't override your sessions variable:
% HOME=/home/edgley/test /bin/true; echo $HOME
/home/edgley
The target directory tends to need to exist; though if you know you don't need the crap it created (like mplayer) you could always set the HOME variable to /dev/null or just use a non existent directory (although you will generate errors that way).
This has worked fine for me for a long time.
~$ grep Exec ~/.local/share/applications/steam.desktop
Exec=env HOME=/home/user/documents/games optirun steam %
Only applies if you have / use the .desktop file:
% grep Exec /bin/steam || echo $?
1
Tehehe, will fix