[dev] Re: XDG directories

From: David Engster <deng_AT_randomsample.de>
Date: Fri, 11 Jun 2010 17:46:49 +0200

Dieter Plaetinck writes:
> On Fri, 11 Jun 2010 16:09:55 +0200
> David Engster <deng_AT_randomsample.de> wrote:
>
>> Dieter Plaetinck writes:
>> > yes, both the app data and user data (can) end(s) up in
>> > $XDG_DATA_HOME
>>
>> I see that in my .local/share as well. It's a complete mess.
>>
>> So what they tried to do is to separate configuration settings from
>> user data. But then they took a quick look at other systems (like OS
>> X) and wanted the possibility to override/add application data (like
>> fonts) in a local share hierarchy. I guess they also wanted you to be
>> able to install software locally by using '--datadir=~/.local/share
>> --sysconfdir=~/.config'. Now you got somehow everything, and every
>> application will just do what it deems right, or only implements a
>> subset of the spec, so that when you really want to profit from such a
>> complicated setup, it probably won't work anyway.
>
> hmm. with application data i meant data generated by the application,
> which is somehow related to the user and how the user uses the
> application.

I'm not sure that's the intent. How should an application write
user-specific data into /usr/share after installation? It seems they
wanted the possibility to add data which can be used by applications,
for example fonts, which you could just put in .local/share/fonts and
which would be merged with the ones in /usr/share and
/usr/local/share. Or MIME types, locales, etc. But this type of data is
either written by the application at installation (and then it shouldn't
be user-specific), or provided by the user.

> i haven't seen data which would usually be in /usr/local (like
> binary executables) in ~/.local/, probably because i never installed
> anything in there?

Well yes, they explicitly denote .local/share as the default data
directory. I don't know for sure what '.local' is then, maybe that's
somewhere else in the spec. It's obvious that it corresponds to
/usr/local, so that you can install software in your $HOME with
--prefix=~/.local.

>> The problem is that data is even more spread than it was before, and
>> often cannot be tracked anymore to the application which generated
>> it. So if you're worried about applications littering your $HOME with
>> dotfiles, you now have a littered .local/share and often do not even
>> know if you can delete that stuff.

> I don't find my ~/.local/share problematic. there are only a handful
> subdirs which are not app-specific (mime, desktop-directories,
> applications, Trash, icons) and it's not a big mystery where they come
> from.

Well, I see more stuff, I think it's from XaraLX which I dared to
install one time, but I'm not sure. That home directory is pretty
old... and otherwise, I don't use any applications which adhere to XDG.

I agree that it would be good to have all the configuration files in one
place. I think BeOS had this figured out pretty well, but maybe that's
just nostalgia talking. In any case, the XDG specs somehow combine local
software installation with configuration settings, user and application
data, and it just doesn't make much sense to me. Of course, one can
simply stick to the subset of 'putting configuration in XDG_CONFIG_HOME'
and just forget about the data stuff.

-David
Received on Fri Jun 11 2010 - 15:46:49 UTC

This archive was generated by hypermail 2.2.0 : Fri Jun 11 2010 - 15:48:02 UTC