XDG Base Directory Conclusions [was Why .local/share ?]
Orion White
orionwhite at gmx.com
Sat Nov 15 05:27:55 PST 2008
Brian J. Tarricone wrote:
> But that's fine! The whole point of this thread is about possibly
> standardising on a few more $XDG_XYZ_DIR and $XDG_XYZ_HOME env vars, so
> it would be configurable to whatever you like. And this could even
> solve your multi-arch problem; you could, for example, set:
>
> XDG_LIB_HOME=$HOME/packages/lib/`uname -m`
>
> if you wanted. But I'd argue, for consistency with other XDG
> conventions ($XDG_DATA_HOME), and simplicity (most people won't need or
> care about per-arch binary dirs in their homedir), that the *default*
> should be $HOME/.local/lib.
I understand now that .local is a "local" representation of the
traditional FHS hierarchy. So that, for instance, is the place to do
private software installs. That addresses my original question about
.local/share (I'm happy about that!). But it raises another: Why .config
isn't .local/etc and .cache isn't .local/var/cache?
So am I looking at .config wrong? Is it not just for what we might
normally put in the normal etc/, but other things too, like plugin
binaries, templates, rc scripts, and so forth?
If so, then I don't much see the point in $XDG_DATA_HOME, why not
replace it with $XDG_LOCAL_HOME --we all know the FHS standard
subdirectories from there.
If not the case however, then it seems like were missing a couple
directories. I'll go out on a limb and suggest what they are with the
explinaiton that I do not think they need to fully reflect the FHS.
There is some trends away form that standard, at least in so far as the
desktop user is concerned, and for good reasons. So I would suggest:
$XDG_EXEC_HOME .exec
$XDG_DATA_HOME .data
$XDG_TRASH_HOME .trash
$XDG_CACHE_HOME .cache
$XDG_CONFIG_HOME .config
$XDG_LOCAL_HOME .local
.exec is for personal programs and scripts. For example I use a special
"ls" that list directories last. .trash is obvious, and I think this
might already be an unspoken part of the convention (yes?). And .data,
which we can think of as a unified personal share/, doc/, lib/, etc.
Concluding, the difference between .local/ and these others is akin to
usr/local/ and usr/. But it's good they have variant names ('exec'
instead of 'bin') to clearly distinguish them from the FHS structure.
T.
More information about the xdg
mailing list