## These are not really standards Note: freedesktop.org is not a standards body. #### Draft specifications that have pretty good de facto adoption/agreement: * [[Desktop base directory spec|Specifications/basedir-spec]] details how desktops should locate files at runtime. * [[Desktop Entry specification|Specifications/desktop-entry-spec]] 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. * [[Menu specification|Specifications/menu-spec]] specifies how menus are built up from desktop entries. * The [[shared MIME database|Specifications/shared-mime-info-spec]] contains common MIME types, descriptions, and rules for determining the types of files. * The [[Icon Theme specification|Specifications/icon-theme-spec]] proposed specification for a common way to store icon themes. * [[Free Media Player Specifications|Specifications/free-media-player-specs]] deal with standard ways to store and read metadata across players and media formats. * The [[startup-notification-spec|Specifications/startup-notification-spec]] describes a mechanism to allow desktop environments to track application startup, to provide user feedback and other features. * The [[Trash specification|Specifications/trash-spec]] provides a common way in which all "Trash can" implementations should store, list, and undelete trashed files. * The [[Autostart specification|Specifications/autostart-spec]] describes how applications can be started automatically after the user has logged in and how 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. * [[The XML Bookmark Exchange Language|http://pyxml.sourceforge.net/topics/xbel/]], or XBEL, is an Internet "bookmarks" interchange format. X-related specifications: * [[DnD|http://www.newplanetsoftware.com/xdnd/]] is the drag-and-drop specification shared between [[GTK+|GTK+]] and [[Qt|Qt]]. A [[local copy|Specifications/XDND]] of the spec resides on the wiki. [[Work on revisions|Specifications/XDNDRevision]] are in progress. * [[Window manager specification|Specifications/wm-spec]] standardizes extensions to the ICCCM between X desktops; we are also working to merge these extensions into the ICCCM itself as appropriate. * The [[XEmbed|Specifications/xembed-spec]] proposed specification for inter-application embedding of controls. * [[X clipboard explanation|Specifications/clipboards-spec]] is not a formal specification, but explains our consensus on how the X clipboard works. Qt and GTK+ both follow this document. * [[UTF8_STRING|http://www.pps.jussieu.fr/~jch/software/UTF8_STRING]] selection format for interchange of UTF-8 data. #### Draft specifications that are new and not yet widely used, though they may be used by one or more desktops or desktop applications: * The [[MIME Applications specification|Specifications/mime-apps-spec]] (deciding which application should be used to open a file). * The [[Icon Naming specification|Specifications/icon-naming-spec]] proposed specification for a common way to name icons and their contexts in an icon theme. * [[StatusNotifierItem|StatusNotifierItem]] - a proposal for cleaning up the notification area/panel. * The [[XSETTINGS|Specifications/xsettings-spec]] proposed specification for cross-toolkit configuration of user settings. * The [[X Direct Save|Specifications/direct-save]] (XDS) protocol specifies how to save a file by dragging to a file manager window. * The [[System tray protocol|Specifications/systemtray-spec]] proposed specification for a "notification area" feature. [[Notes from the XDevConf meeting|Specifications/SystrayAndAppletsMeeting]]. * The [[Recent File|Specifications/recent-file-spec]] specification proposed specification for storing lists of recently used files. * The [[Thumbnail|http://triq.net/~jens/thumbnail-spec/index.html]] management specification proposed specification for storing file thumbnails ([[copy available here|http://people.freedesktop.org/~vuntz/thumbnail-spec-cache/]]). * Proposal for an [[extension to the ICCCM selections mechanism|Specifications/clipboards-extension-spec]] allowing xclipboard-like tools to limit the amount of transferred data. * The [[Cursor Conventions specification|Specifications/cursor-spec]] is a draft specification that seeks to standardize usage and names for mouse cursors. * The [[File URI specification|Specifications/file-uri-spec]] defines how to interpret [[file://|file://]] URIs, as used for drag and drop and other desktop uses. * The [[Clipboard manager specification|Specifications/clipboard-manager-spec]] describes a way for a clipboard manager to store clipboard data when applications quit. * The [[GHNS and DXS specs|http://ghns.freedesktop.org/spec/]] describe a collaborative data exchange platform based on the HTTP protocol and web service interaction. * [[ICC Profiles in X Specification|Specifications/icc_profiles_in_x_spec]] * The [[Open Collaboration Services|Specifications/open-collaboration-services]] specification describes an API to integrate community web sites with the desktop. * The [[DesktopCouch|Specifications/desktopcouch]] specification describes record formats for integrating [[CouchDB|http://couchdb.apache.org]] in the desktop, already being used by some applications, like Evolution, Tomboy and Firefox * [[Sound Theme Spec|Specifications/sound-theme-spec]] is a specification proposal for sound theme and sound naming. * The [[Help Specification|Specifications/help-spec]] specifies a standard location and URI scheme of installed help documents. * [[File Manager D-Bus Interface|Specifications/file-manager-interface]], a common way to interact with the desktop's file manager. * The [[OpenRaster specification|Specifications/OpenRaster]] describes an open exchange format for layered raster-based graphics. 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|mailto:xdg-list@lists.freedesktop.org]]. #### X protocol extensions: * See for the latest X protocol extension specs. #### Specifications currently in the planning/requirements-gathering stages: * [[Shared File Metadata Spec|Specifications/shared-filemetadata-spec]] (reading/writing/searching file based metadata) * [[Shared configuration system|Specifications/config-spec]] (a desktop-neutral replacement for gconf and similar). * [[Shared default keyboard shortcuts|Specifications/default-keys-spec]] (every application running should use the same keys for _Save_, _Quit_, etc). * [[Audio files meta data|Specifications/audio-metadata-spec]] (apps that deal with audio files should use same abbreviations when dealing with the meta data) * [[Bidirectional scripts|Specifications/bidi-spec]] (support for bidirectional scripts like Arabic and Hebrew in desktop software) * [[Proposed Help Spec|Specifications/help-system]] (The beginnings of a specification for how to find help files.) * [[Shortcut to a database connection|Specifications/db-shortcut-spec]] (The proposal of a specification for how to store information about remote database connections; currently used by Kexi: www.kexi-project.org) * [[Desktop configuration Spec|Specifications/desktop-config-spec]] (A D-BUS protocol and schema specification for desktop configuration) * [[Desktop Bookmark Spec|Specifications/desktop-bookmark-spec]] (A storage format for bookmarks used by file selectors and applications; it should supercede the [[Recent File|Specifications/recent-file-spec]] specification; currently used by GTK) * [[Desktop Language Checking Spec|Specifications/desktop-language-checking-spec]] (a spec for spell and grammar checking) * [[MPRIS Media player remote interfacing specification|Specifications/mpris-interfacing-specification]] A media player DBus interfacing specification * [[Composite retained drawing protocol|Specifications/Composite-retained-drawing]] * [[OpenICC Directory Proposal|http://www.oyranos.com/wiki/index.php?title=OpenIccDirectoryProposal]] for placing and finding colour related files in a system * The [[Application Package Specification|ApplicationPackageSpec]] is designed to provide a desktop neutral way to package an application. Installation is not required. * [[DBPC - DBus for process control|Specifications/DBPC]] is layer above DBUS which define a standard set of objects, interfaces and methods for use in process control. It will provide a common standard for industrial communication, especially between HMI, SCADA and field electronic equipement. * [[Secret Storage Spec|Specifications/secret-storage-spec]] is a draft of an API for securely storing secrets using a D-Bus service. #### Retracted Specifications * The [[Desktop Color Scheme specification|Specifications/colorscheme-spec]] 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**).