From 09de52577e08b7635a70519785b0d8766dea58d1 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Mon, 6 Jan 2014 00:29:30 -0500 Subject: [PATCH] desktop entry spec: Add support for Implements= --- desktop-entry/desktop-entry-spec.xml | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/desktop-entry/desktop-entry-spec.xml b/desktop-entry/desktop-entry-spec.xml index 94d661e..277b514 100644 --- a/desktop-entry/desktop-entry-spec.xml +++ b/desktop-entry/desktop-entry-spec.xml @@ -573,6 +573,17 @@ 1 + Implements + + A list of interfaces that this application implements. By default, a desktop file implements no + interfaces. See Interfaces for more information on how this + works. + + string(s) + NO + + + Keywords A list of strings which may be used in addition to other @@ -879,6 +890,55 @@ Specification. + + Interfaces + + The Implements key can be used to declare one or more interfaces that a desktop file + implements. + + + Each interface name must follow the rules used for D-Bus interface names, but other than they, they have + no particular meaning. For instance, listing an interface here does not necessarily mean that this + application implements that D-Bus interface or even that such a D-Bus interface exists. It is entirely up + to the entity who defined a particular interface to define what it means to implement it. + + + Although it is entirely up to you to decide what a given interface name means, here are some recommended + "best practices": + + + + + interfaces should require that application is DBusActivatable, including the requirement that the + application's desktop file is named using the D-Bus "reverse DNS" convention + + + + + the interface name should correspond to a D-Bus interface that the application exports on the same + object path as it exports the org.freedesktop.Application interface + + + + + if the interface wishes to allow for details about the implementation, it should do so by specifying + that implementers add a group in their desktop file with the same name as the interface (eg: + "[org.freedesktop.ImageAcquire]") + + + + + Recommendations notwithstanding, interfaces could specify almost any imaginable requirement including such + (ridiculous) things as "when launched via the Exec line, the application is expected to present a window + with the _FOO_IDENTIFIER property set, at which point an X client message will be sent to that window". + Another example is "all implementations of this interface are expected to be marked NoDisplay and, on + launch, will present no windows and will delete all of the user's files without confirmation". + + + Interface definers should take care to keep issues of backward and forward compatibility in mind when + designing their interfaces. + + Registering MIME Types -- 1.8.4.2