Gekko_Dekko: Since my library only grow bigger with each year, Im currently thinking about splitting game's data (to another drive) and launchers for my wine games. Thus thought about 2 different loadouts - wounder, which one would be better?
1. Game data (stuff, you will get from innoextract, overall) belong to different hard drive, while wine prefixes with other stuff (settings, savefiles) lie somewere inside $HOME folder
2. Game data together with related prefixes sit on another hard drive, while game's configs and savefiles symlinked to save somewere to the $HOME's guts
Also there are some related questions:
- Some games may use different wine versions, than other. Should wine's executables belong to $HOME or sit on the same drive as games, at this point? And, if 1st - is there any specified place for such things, or just '$HOME/wine/versionnumber' will be fine?
- Which place would be better to symlink game's configs and saves to (e.g actual files will be there, while related wineprefix will only contain link to this folder) - '$HOME/.config/gamename/' or '$HOME/.local/share/gamename/'?
The way I organize my drives is as follows (just an idea, you can set things up other way).
I have one fast NVMe SSD for root, and /home sits on it as well, not on separate partition. I use XFS on it.
Then I have a huge HDD for actual games. I format it with btrfs (with zstd compression), and make a few subvolumes, which I mount to $HOME. Such as $HOME/games for example.
Native games just go to $HOME/games/<game>, while Wine games I place in $HOME/games/wine/<game>.
In the game subdir, I create a few things. For example for my TW3 installation:
$HOME/games/wine/the_witcher3
$HOME/games/wine/the_witcher3/config (it's a directory)
$HOME/games/wine/the_witcher3/prefix (it's directory)
$HOME/games/wine/the_witcher3/start.sh
$HOME/games/wine/the_witcher3/icon.png
Actual game's Wine prefix goes into $HOME/games/wine/the_witcher3/prefix
In $HOME/games/wine/the_witcher3/config I can put some custom config files that for example are used by dxvk and etc. if games need specific overrides from the global config.
icon.png I extract from GOG's icon, and use that with game's .desktop launcher that sits in $HOME/.local/share/applications and calls start.sh
start.sh looks like this for me (a bit simplified, and sorry for formatting mess, GOG forum has no code support):
============================
#!/bin/bash
hud=${hud:-false} # use HUD
if $hud; then
export DXVK_HUD=devinfo,version,fps,frametimes,memory
fi
export DXVK_CONFIG_FILE=$HOME/.config/dxvk.conf
export DXVK_STATE_CACHE_PATH=$HOME/.cache/dxvk
export WINEPREFIX=$HOME/games/wine/the_witcher3/prefix
export WINEPATH=/opt/wine-devel-esync
export WINEESYNC=${WINEESYNC:-1}
export WINEDEBUG=${WINEDEBUG:-"-all"}
export DXVK_LOG_LEVEL=${DXVK_LOG_LEVEL:-"none"}
cd $WINEPREFIX/drive_c/the_witcher_3/bin/x64
wine_run.sh witcher3.exe
============================================
wine_run.sh is my Wine launcher script.
See:
*
https://gist.github.com/shmerl/edf230db5d4a24fd92aea16c31393d89 *
https://gist.github.com/shmerl/a2867c5a675ed1795f03326b32b47fe7 As you can see, actual Wine I use with TW3 sits in /opt/wine-devel-esync, and location is controlled with WINEPATH variable (it's my script's variable. not Wine standard one).
I.e. the prefix location is controlled with WINEPREFIX, and Wine location is controlled with WINEPATH. This way you can combine them whichever way you want.
For Wine games, I don't mind isolating all their data to prefixes, that's why I don't symlink anything for them (except enabling dxvk with a symlink to dxvk location of course), and also always disassociate desktop integration folders and MIME types in Wine config. I don't see a big point in splitting game data and the prefix.
I used to use PlayOnLinux to manage this stuff, but once that project stalled, I decided it's time to figure out a method where I control things more explicitly. So I ended up with the above :)