summaryrefslogtreecommitdiff
path: root/Specifications.mdwn
blob: 4e166ed2b429029fe5245a63222fae44b319eb2a (plain)
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]])).