Interoperability specifications

freedesktop.org is not an official standards body. These specifications describe protocols and interfaces to help different desktops and applications work well together.

Specifications that have pretty good de facto adoption/agreement:

  • Autostart: how applications can be started automatically after the user has logged in, and how removable media can request a specific application to be executed or a specific file on the media to be opened after the media has been mounted.
  • Desktop base directories: how desktops should locate files, such as config files or application data files.
  • Desktop entries: files describing information about an application such as the name, icon, and description. These files are used for application launchers and for creating menus of applications that can be launched.
  • Desktop menus: how menus are built up from desktop entries.
  • File manager D-Bus interface: a common way to interact with the desktop's file manager.
  • File URIs: how to create and interpret interpret file:// URIs, as used for drag and drop and other desktop uses.
  • Free media player specifications: standard ways to store and read metadata across players and media formats.
  • Icon themes: a common way to store icon themes.
  • Media Player Remote Interfacing Specification (MPRIS): A D-Bus interface to control media players
  • Shared MIME database: contains common MIME types, descriptions, and rules for determining the types of files.
  • Startup notifications: a mechanism to allow desktop environments to track application startup, to provide user feedback and other features.
  • Trash: a common way in which all "Trash can" implementations should store, list, and undelete trashed files.
  • XML Bookmark Exchange Language (XBEL): an internet "bookmarks" interchange format.

X-related specifications:

  • DnD: a drag-and-drop specification shared between ?GTK+ and ?Qt. A local copy of the spec resides on the wiki, along with some proposed revisions.
  • UTF8_STRING: selection format for interchange of UTF-8 data.
  • Window manager specification: standardizes extensions to the ICCCM between X desktops; we are also working to merge these extensions into the ICCCM itself as appropriate.
  • XEmbed: inter-application embedding of controls.
  • X clipboard explanation: explains our consensus on how the X clipboard works. Qt and GTK+ both follow this document.

Draft specifications that are not yet widely used, though they may be used by one or more desktops or applications:

If you feel any of these specs should be moved among the "standard", "de facto", and "proposed" categories, please let us know on xdg-list@lists.freedesktop.org.

X protocol extensions:

Specifications currently in the planning/requirements-gathering stages:

Retracted or obsolete specifications

  • The Desktop Color Scheme specification is a draft specification that defines names for colors to be used for rendering user interface elements. It also provides an algorithm for generating a matching set of colors from a single base color (The colorscheme spec has been pulled on request of its authors).
  • The GHNS and DXS specs (dead link as of May 2018) describe a collaborative data exchange platform based on the HTTP protocol and web service interaction.
  • The Recent File specification proposed specification for storing lists of recently used files (Superseded by desktop bookmarks)).