title: freedesktop.org specifications
lastupdated: 2008-05-19
A list of freedesktop.org specifications, and comments on whether it is
applicable to GNUstep.
Support for the specifications usually comes in two parts: generating data that
complies to the specification, and using data produced by other programs
(roughly: "producer" and "consumer"). This list tries to make the distinction
when necessary.
Draft specifications
- DnD (a.k.a. XDND)
-
GNUstep should support both being a source and a destination
-
OpenStep API:
- (void)dragImage:...
, - (BOOL)dragFile:...
,
NSDraggingSource
, NSDraggingInfo
, … etc.
- window manager specification (a.k.a. EWMH)
-
GNUstep should support as many hints as reasonable (see separate page on
ewmh)
- XEmbed
-
NSWindow
should support XEmbed client (a.k.a plug)
-
XEmbed embedder can be supported by an extension (e.g. a "
GSEmbeddedView
"
class)
- X clipboard explanation
-
GNUstep should support this (producer and consumer)
- UTF8_STRING (interchange of utf8-encoded strings in cut-and-paste)
-
GNUstep should support this (producer and consumer)
- XML Bookmark Exchange Language
-
out of scope of GNUstep, but applications (WebKit, etc.) should be aware of
it
- Desktop Entry specification
-
GNUstep applications should have a properly registered Desktop Entry file
(partially implemented)
-
GNUstep should read Desktop Entry files for
NSWorkspace
's - (BOOL) openFile:
, etc.
- Menu Specification
-
out of scope of GNUstep, but GNUstep-based desktop environments should be
aware of it
-
parts of the spec affect Desktop Entry spec
- Desktop base directory spec
-
incompatible with GNUstep filesystem layout
-
when gnustep-make is built with fhs support, this spec may be used
- Icon Theme specification
-
specifies a standard place for applications to put their icons
-
GNUstep can use this for finding icons
-
GNUstep can use this for its own icon theme layout, or use a symlink to
provide compatibility
-
GNUstep can use this to select between icon themes
-
[(NSWorkspace) iconForFile:]
, etc. should use this
-
OpenStep API:
[NSImage imageNamed:]
- Icon Naming specification
-
GNUstep can use this for naming the files in the
Images
directory, or use a symlink to provide compatibility
-
(see also icon theme specification)
- shared MIME database
-
GNUstep should read the MIME database for
NSWorkspace
's - (NSString*) typeOfFile:error:
, etc. ?
-
needs more investigation, since Apple uses UTIs for file types, instead of
MIME types
-
(see also desktop entry specification)
- XSETTINGS (common settings such as double-click times)
- X Direct Save (XDS): save files by dragging from the window to a folder
-
NSDraggingDestination
should accept this as a source
-
being an XDS source may be out of the scope of GNUstep, but we may be able to
provide aids for this (look into this more)
-
(see also XDND)
- System Tray protocol
- Recent File specification
-
NSDocument
can update this the recent file list
-
I don't know of any OpenStep API similar to this, but this could be supported in an extension
-
(see also Desktop Bookmark spec (in planning stage))
- Thumbnail
-
[(NSWorkspace) iconForFile:]
could use this
-
GNUstep file moving operations could update the thumbnail cache
- extension to ICCCM selections mechanism
-
GNUstep should honour
_NET_MAX_SELECTION_SIZE
- startup-notification-spec
-
GNUstep
NSApplication
should notify when the application has finished
launching (at around the time NSApplicationDidFinishLaunchingNotification
is sent)
- Cursor Conventions specification
-
I don't know how GNUstep does its mouse cursors, so I don't know if this
applies
- File URI specification
-
GNUstep should follow this wherever
file:
URIs are used
-
check if it conflicts with Apple's behaviour
- Clipboard Manager specification: how to store clipboard data after applications quit
-
I guess
gpbs
should do this sort of thing
- Trash specification
-
I don't know of an OpenStep trash protocol. Is this handled by file manager
applications individually?
- Autostart specification
-
out of scope of GNUstep, but GNUstep-based desktop environments should be aware of this
- GHNS and DXS
-
file sharing stuff
-
out of scope of GNUstep
Specifications in planning