mtkennerly / ludusavi

Backup tool for PC game saves
MIT License
2.11k stars 49 forks source link

Support for Bottles Wine Prefixes #268

Open Heus-Sueh opened 11 months ago

Heus-Sueh commented 11 months ago

What's your idea?

Support for prefixes created by Bottles

The program would scan for wine prefixes in this directory: ~/.var/app/com.usebottles.bottles/data/bottles/bottles

you would also have to give permission for flatpak to be able to access this folder

mtkennerly commented 10 months ago

Hi! I'm not too familiar with Bottles. Is there some metadata that ties each prefix to a specific game, or is it an ad hoc/manual thing where you could install one or more games in a single prefix? If they're essentially normal Wine prefixes, then you could configure them in Ludusavi as a Wine prefix root with a glob pattern in the path. However, that would make the scan much slower, since it would have to scan every prefix for every game without some way to narrow it down.

Heus-Sueh commented 10 months ago

Hi! I'm not too familiar with Bottles. Is there some metadata that ties each prefix to a specific game, or is it an ad hoc/manual thing where you could install one or more games in a single prefix? If they're essentially normal Wine prefixes, then you could configure them in Ludusavi as a Wine prefix root with a glob pattern in the path. However, that would make the scan much slower, since it would have to scan every prefix for every game without some way to narrow it down.

yes, you can install games in the same wineprefix, in this case the wine prefix that the user creates is in this directory: /var/home/<user>/.var/app/com.usebottles.bottles/data/bottles/bottles image

VashStampedeTRI14 commented 9 months ago

Hope this helps but within this folder /home/< user >/.var/app/com.usebottles.bottles/data/bottles/ is a library.yml file that looks like below. This contains the list of all prefixes created within bottles.

61907121-a070-4297-a2d5-a350c7197314: bottle: name: Diablo IV path: Diablo-IV icon: /home/< user >/.var/app/com.usebottles.bottles/data/bottles/bottles/Diablo-IV/icons/Battle.net.png id: 2cd58ae9-15fd-41ab-b8c1-28af81cca37f name: Battle.net thumbnail: grid:b434b1ad-1377-4e56-9232-d021e9ab4148.png d76a3e35-1d27-4e78-bfd2-ad39d2cda244: bottle: name: Grim Dawn path: Grim-Dawn icon: /home/< user >/.var/app/com.usebottles.bottles/data/bottles/bottles/Grim-Dawn/icons/Grim Dawn.png id: d907daf0-af13-45ac-85bc-3b10d512397e name: Grim Dawn thumbnail: grid:7e73de6d-fd7b-4b1d-ae51-7d7206dfe667.png

Then within each wine prefix is a bottles.yml which contains the .exe, name, ect. Example of this:

Arch: win64 CompatData: '' Creation_Date: '2023-10-09 16:38:09.736543' Custom_Path: false DLL_Overrides: {} DXVK: dxvk-2.3 Environment: Gaming Environment_Variables: {} External_Programs: d907daf0-af13-45ac-85bc-3b10d512397e: arguments: '' dxvk: true dxvk_nvapi: false executable: Grim Dawn.exe folder: /home/< user >/.var/app/com.usebottles.bottles/data/bottles/bottles/Grim-Dawn/drive_c/GOG Games/Grim Dawn fsr: false icon: com.usebottles.bottles-program id: d907daf0-af13-45ac-85bc-3b10d512397e name: Grim Dawn path: /home/< user >/.var/app/com.usebottles.bottles/data/bottles/bottles/Grim-Dawn/drive_c/GOG Games/Grim Dawn/Grim Dawn.exe pulseaudio_latency: false removed: null script: null virtual_desktop: false vkd3d: true Installed_Dependencies: