…and the answer is not necessarily in the users home directory.
Imagine you write a desktop app and you need to persist some configuration the user has chosen.
Where do you put those files? My default answer – as I have been a developer on a Mac – would
have been ~/Library/Application Support/com.example.AwesomeApp/
. But since I am working with
Linux now, and those people have different ideas where to put stuff and like to have total control,
I would have said something like: “In a dotfile maybe?”
But there seems to be a specification for handling this – of course, there is. So the short
answer is, if there is the environment variable $XDG_CONFIG_HOME
defined, use that value, if not,
default to ~/.config
for config files. And for other app-specific files use $XDG_DATA_HOME
or
~/.local/share
.
So if you build a desktop app, you know now where to put stuff.