1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# 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|Specifications/autostart-spec]]: 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|Specifications/basedir-spec]]: how desktops should locate files, such as config files or application data files.
* [[Desktop entries|Specifications/desktop-entry-spec]]: 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|Specifications/menu-spec]]: how menus are built up from desktop entries.
* [[File manager D-Bus interface|Specifications/file-manager-interface]]: a common way to interact with the desktop's file manager.
* [[File URIs|Specifications/file-uri-spec]]: how to create and interpret interpret `file://` URIs, as used for drag and drop and other desktop uses.
* [[Free media player specifications|Specifications/free-media-player-specs]]: standard ways to store and read metadata across players and media formats.
* [[Icon themes|Specifications/icon-theme-spec]]: a common way to store icon themes.
* [[Media Player Remote Interfacing Specification (MPRIS)|Specifications/mpris-interfacing-specification]]: A D-Bus interface to control media players
* [[Shared MIME database|Specifications/shared-mime-info-spec]]: contains common MIME types, descriptions, and rules for determining the types of files.
* [[Startup notifications|Specifications/startup-notification-spec]]: a mechanism to allow desktop environments to track application startup, to provide user feedback and other features.
* [[Trash|Specifications/trash-spec]]: a common way in which all "Trash can" implementations should store, list, and undelete trashed files.
* [[XML Bookmark Exchange Language (XBEL)|http://pyxml.sourceforge.net/topics/xbel/]]: an internet "bookmarks" interchange format.
X-related specifications:
* [[DnD|http://www.newplanetsoftware.com/xdnd/]]: a drag-and-drop specification shared between [[GTK+|GTK+]] and [[Qt|Qt]]. A [[local copy|Specifications/XDND]] of the spec resides on the wiki, along with some [[proposed revisions|Specifications/XDNDRevision]].
* [[UTF8_STRING|http://www.pps.jussieu.fr/~jch/software/UTF8_STRING]]: selection format for interchange of UTF-8 data.
* [[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.
* [[XEmbed|Specifications/xembed-spec]]: inter-application embedding of controls.
* [[X clipboard explanation|Specifications/clipboards-spec]]: 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:
* 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 [[Thumbnail|Specifications/thumbnails]] management specification proposed specification for storing file thumbnails.
* 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 [[Clipboard manager specification|Specifications/clipboard-manager-spec]] describes a way for a clipboard manager to store clipboard data when applications quit.
* [[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.
* The [[OpenRaster specification|Specifications/OpenRaster]] (also at https://www.openraster.org/) describes an open exchange format for layered raster-based graphics.
* [[Secret Storage Spec|Specifications/secret-storage-spec]] is an API for securely storing secrets (such as passwords) using a D-Bus service.
* [[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)
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 <http://www.x.org/releases/current/doc/index.html#protocol> 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 Language Checking Spec|Specifications/desktop-language-checking-spec]] (a spec for spell and grammar checking)
* [[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.
### Retracted or obsolete 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**).
* The [[GHNS and DXS specs|http://ghns.freedesktop.org/spec/]] (dead link as of May 2018) describe a collaborative data exchange platform based on the HTTP protocol and web service interaction.
* The [[Recent File|Specifications/recent-file-spec]] specification proposed specification for storing lists of recently used files (Superseded by [[desktop bookmarks|Specifications/desktop-bookmark-spec]])).
|