Desktop Theme Specification (Draft)


Desktop Themes are a set of files which give the Desktop a certain look and feel. There are many different themes to choose from, themes for window-decorations or to change the general appearance of applications (eg, buttons and such). But also icon-themes, cursor-themes or wallpapers can be regarded as Desktop Themes.

This specification explains where different types of themes should be installed, and where applications should look for them.


Icon Theme

  • An icon theme is a named set of icons. It is used to map from an iconname and size to a file. For more information about Icon Themes, read the Icon Theme Specification Cursor Theme

  • A Cursor theme is a named set of icons. It is used to change the appearance of the mouse-cursor. Wallpapers

  • A Wallpaper is an image which is used to change the appearance of the desktop-background. Base Directory

  • Any type of theme, is searched for in a set of directories, called base directories. Themes are installed in subdirectories of the base directories. The only exception to this are the wallpapers, wallpapers are installed directly in the wallpaper base directory.

Desktop Themes

Icon Themes

Icon themes are themes containing the icons used by different applications across the desktop. Icons to indicate MIME-types, but also for actions like opening files, new documents, See the Icon Naming Specification for information about how to create Icon themes.

For information on where to install icon-themes, check the IconThemeSpecification

Cursor Themes

Cursor-themes provide a set of mouse-cursors

Cursor themes should be installed in $XDG_DATA_DIRS/cursors


Wallpapers are used to theme the desktop background.

Wallpapers should be installed in $XDG_DATA_DIRS/wallpapers

Additional Themes

Additional themes which are not specifically mentioned in this spec, like User-Interface themes (Gtk / Qt) or window-manager themes, should be installed in $XDG_DATA_DIRS/themes. By default, applications should look for them in $HOME/.themes (for backwards compatibility) and $XDG_DATA_DIRS/themes. In each of these directories, themes are installed as subdirectories. A theme can be placed inside several base directories by having subdirectories of the same name. This way users can override system themes.