[basedir-spec] What exactly is $XDG_DATA_HOME for ?

David Faure dfaure at trolltech.com
Thu Jul 3 11:39:58 PDT 2008

On Thursday 03 July 2008, Fred Drake wrote:
> On Thu, Jul 3, 2008 at 2:08 PM, David Faure <dfaure at trolltech.com> wrote:
> > User-specific data can also be generated by the program at runtime,
> > it doesn't have to come from install time.
> I've heard $XDG_DATA_HOME described as parallel to /usr/share/ a
> couple of times; would it be more reasonable to describe it as both
> /usr/share/ and /var/ combined?

There is no system-global trash, it's always a per-user thing, so not everything can be described using analogies ;-)

No, caches like those found in /var don't belong in $XDG_DATA_HOME, ideally.
KDE uses /var/tmp/kdecache-$USER for cache data (i.e. data that can be deleted without trouble),
accessible from the ~/.kde/cache-$HOSTNAME symlink. This setup allows ~/.kde/cache-$HOSTNAME
to be a real dir instead of a symlink if there's no write access to /var/tmp. But that's the exception,
not the common case.
This separation helps with disk usage, it also helps with making backups; you want to backup real
user data (bookmarks, trash etc.), but not http cache or sycoca cache or favicons etc.

Everything I find in my ~/.local/share is really either a local equivalent of /usr/share stuff,
or something that is really user data only with no system-wide equivalent.
~/.local/share/applications has desktop files, ~/.local/share/mime has mimetypes (like /usr/share/mime), etc.

David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).

More information about the xdg mailing list