What is the relationship between .gconf, .gnome2, .cache, .local, and other dot-file hierarchies in my home directory?
Solution 1:
.local
, .cache
, and .config
are part of the FreeDesktop Base Directory Specification. They should not actually be hard-coded but instead use the environment variables (i.e. $XDG_DATA_HOME
, $XDG_CACHE_HOME
, and $XDG_CONFIG_HOME
). There are GLib and Python wrappers for the spec that may be helpful as well. Here's an example in Python:
>>> import xdg.BaseDirectory
>>> print xdg.BaseDirectory.xdg_data_home
/home/andrew/.local/share
>>> print xdg.BaseDirectory.xdg_config_home
/home/andrew/.config
>>> print xdg.BaseDirectory.xdg_cache_home
/home/andrew/.cache
.gnome
and .gnome2
are indeed deprecated and should not be used. These were used by libgnome's gnome-config module.
.gconf
does indeed contain the settings that gconf-editor
accesses as xml files. For instance, compare the output of the following commands:
gconftool -a /desktop/gnome/applications/browser
cat ~/.gconf/desktop/gnome/applications/browser/%gconf.xml
Solution 2:
The proper phrasing should be that .local, .cache, etc are part of the XDG Base Directory Specification of FreeDesktop, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html.
The XDG Base Directory Specification is a standard, and is followed by KDE and other compliant environments.