XDG Base Directory Conclusions [was Why .local/share ?]
damjan.jov at gmail.com
Sat Nov 15 05:32:16 PST 2008
On Sat, Nov 15, 2008 at 3:27 PM, Orion White <orionwhite at gmx.com> wrote:
> 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?
For the same reasons /etc isn't /usr/etc and /var/cache isn't /usr/cache.
~/.local isn't the equivalent of /, it's the equivalent of /usr.
> 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.
> xdg mailing list
> xdg at lists.freedesktop.org
More information about the xdg