CHollingworth / Lampray

Linux Application Modding Platform. A native Linux mod manager.
https://www.nexusmods.com/baldursgate3/mods/2169
The Unlicense
183 stars 18 forks source link

Use XDG base dir specification #92

Closed Scorcerer closed 10 months ago

Scorcerer commented 11 months ago

Is your feature request related to a problem? Please describe. Kinda, i just saw that Lampray creates a dir in my homedir, and there's enough chaos in there already :P

Describe the solution you'd like The default storage path would be using XDG_DATA_HOME variable or be configurable in settings

Describe alternatives you've considered Using a symlink, which is bad and still shows up

Additional context None (I think) but just ask me if there's anything to clarify :)

Thanks for the great project!

CHollingworth commented 10 months ago

This is more of a personal preference on my end, i prefer being able to contain a program in one folder.

However if you are so inclined you can modify lampConfig.h line 41 from const lampString baseDataPath = "Lamp_Data/"; to const lampString baseDataPath = ((std::string)std::getenv("HOME")) + "/.lamp/"; and build using the setup and build scripts.

alterNERDtive commented 8 months ago

My 2¢: IMO the “by the book” solution would be to use ${XDG_CONFIG_HOME:-~/.config}/lampray/ and ${XDG_DATA_HOME:-~/.local/share}/lampray/ by default, then have some runtime flag like --portable that contains it to the same folder as the executable, not your current working directory.