Applications that support being launched by D-Bus must implement the following interface (given in D-Bus introspection XML format):
<interface name='org.freedesktop.Application'> <method name='Activate'> <arg type='a{sv}' name='platform_data' direction='in'/> </method> <method name='Open'> <arg type='as' name='uris' direction='in'/> <arg type='a{sv}' name='platform_data' direction='in'/> </method> <method name='ActivateAction'> <arg type='s' name='action_name' direction='in'/> <arg type='av' name='parameter' direction='in'/> <arg type='a{sv}' name='platform_data' direction='in'/> </method> </interface>
The application must name its desktop file in accordance with the naming recommendations in the
introduction section (e.g. the filename must be like org.example.FooViewer.desktop
).
The application must have a D-Bus service activatable at the well-known name that is equal to the desktop
file name with the .desktop
portion removed (for our example,
org.example.FooViewer
). The above interface must be implemented at an object path
determined as follows: starting with the well-known D-Bus name of the application, change all dots to
slashes and prefix a slash. If a dash ('-
') is found, convert it to an underscore
('_
'). For our example, this is /org/example/FooViewer
.
The Activate
method is called when the application is started without files to open.
The Open
method is called when the application is started with files. The array of
strings is an array of URIs, in UTF-8.
The ActivateAction
method is called when Desktop
Actions are activated. The action-name
parameter is the name of the action.
All methods take a platform-data
argument that is used in a similar way to how
environment variables might be used. Current fields described by the specification are:
desktop-startup-id
: This should be a string of the same value as would be stored in
the DESKTOP_STARTUP_ID
environment variable, as specified by the Startup Notification Protocol
Specification.
activation-token
: This should be a string of the same value as would be stored in
the XDG_ACTIVATION_TOKEN
environment variable, as specified by the
XDG Activation protocol for Wayland.