legendary icon indicating copy to clipboard operation
legendary copied to clipboard

[lfs] crossover: allow overriding bottles path via CX_BOTTLE_PATH

Open sammoore opened this issue 1 year ago • 1 comments

Overview

Allows overriding the default directory containing CrossOver bottles and used to launch games in bottles, which is also the same environment variable used by the wine executable from CrossOver once executed. Before these changes, the only supported directory for bottles is the default ~/Library/Application Support/CrossOver/Bottles folder.

Context

If we were to simply update the path Legendary uses to find bottles (without utilizing the CX_BOTTLE_PATH environment variable) based on e.g. some user configuration, then the CrossOver executable will fail to find the targeted bottle based on its invocation. Instead, this PR just utilizes CX_BOTTLE_PATH for the override to kill two birds with one stone.

Therefore, if desired, to allow this to be configurable via ~/.config/legendary/config.ini, one would need to apply the environment variable when running CrossOver the same way CX_BOTTLE is done in core.py/etc

Usage

My bottles are stored on an external SD Card, since games are big and I don't need them available all the time. After these changes, I'm able to launch games with bottles stored in /Volumes/Games/CrossOver, for example /Volumes/Games/CrossOver/RocketLeague, like so:

CX_BOTTLE_PATH="/Volumes/Games/CrossOver" legendary crossover
CX_BOTTLE_PATH="/Volumes/Games/CrossOver" legendary launch Sugar

Alternatively, CX_BOTTLE_PATH could be set in a bash_profile or similar.

sammoore avatar Jul 31 '24 00:07 sammoore

Therefore, if desired, to allow this to be configurable via ~/.config/legendary/config.ini, one would need to apply the environment variable when running CrossOver the same way CX_BOTTLE is done in core.py/etc

Happy to follow up with this change if it's desired before merging.

sammoore avatar Aug 02 '24 18:08 sammoore