XDG Base Directory Conclusions [was Why .local/share ?]

Damjan Jovanovic 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.
>
> T.
> _______________________________________________
> xdg mailing list
> xdg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xdg
>

Regards
Damjan


More information about the xdg mailing list