KDE System Administration/XDG Filesystem Hierarchy

    From KDE TechBase

    Freedesktop.org and Standard Directories

    Many of the free and open source software projects that focus on desktop technology collaborate on shared specifications and software within the freedesktop.org project.

    One of these shared specifications is the base directory specification which defines a set of locations in the filesystem that can be used for portable desktop technology implementations.

    KDE supports the base directory specification and the various environment variables it prescribes in addition to the KDE filesystem hierarchy. A summary of KDE's implementation follows below, while the full specification can be read [here on freedesktop.org].

    Application Data

    Data that applications store which are specific to a given user are to be stored in the XDG_DATA_HOME directory. If the XDG_DATA_HOME environment variable isn't set, it defaults to $HOME/.local/share for local storage and /usr/local/share;/usr/share for system wide files.

    Some items that may be stored in XDG_DATA_HOME are files the user has put in the trash, mimetype definitions and associations and application .desktop files.

    The search path for system wide directories can be defined setting the XDG_DATA_DIRS environment variable to contain a list of paths.

    Configuration

    Configuration information should be stored in the XDG_CONFIG_HOME directory. If the XDG_CONFIG_HOME environment variable isn't set, it defaults to $HOME/.config for local storage and /etc/xdg for system wide files.

    Some items that may be stored in XDG_CONFIG_HOME are application configuration files and application menu structure.

    The search path for system wide directories can be defined setting the XDG_CONFIG_DIRS environment variable to contain a list of paths.

    Cache Files

    Temporary data caches can be stored in the XDG_CACHE_HOME location, which defaults to $HOME/.cache. There is no system wide cache location as such caches are always user specific.

    Thumbnails

    Thumbnails representing the contents of files for use in icons and other representations of files are to be stored in $HOME/.thumbnails. The structure and content of the thumbnails directory is defined in the thumbnail specification.