An application launcher is represented by a *.desktop file. Desktop files are defined by the freedesktop.org Desktop Entry Specification. The most important aspects of *.desktop files are summarized below.
A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated with a dash ("-"). Companies and organizations are encouraged to use a word or phrase, preferably the organizations name, for which they hold a trademark as their vendor prefix. The purpose of the vendor prefix is to prevent name conflicts.
An application launcher can be added to the desktop by installing a *.desktop file. A *.desktop file consists of a [Desktop Entry] header followed by several Key=Value lines.
A *.desktop file can provide a name and description for an application in several different languages. This is done by adding a language code as used by LC_MESSAGES in square brackets behind the Key. This way one can specify different values for the same Key depending on the currently selected language.
The following keys are often used:
For a complete overview of the *.desktop file format please visit m[blue]http://www.freedesktop.org/wiki/Specifications/desktop-entry-specm
xdg-desktop-icon honours the following environment variables:
An exit code of 0 indicates success while a non-zero exit code indicates failure. The following failure codes can be returned:
The company ShinyThings Inc. has developed an application named "WebMirror" and would like to add a launcher for for on the desktop. The company will use "shinythings" as its vendor id. In order to add the application to the desktop there needs to be a .desktop file for the application:
shinythings-webmirror.desktop: [Desktop Entry] Encoding=UTF-8 Type=Application Exec=webmirror Icon=shinythings-webmirror Name=WebMirror Name[nl]=WebSpiegel
Now the xdg-desktop-icon tool can be used to add the webmirror.desktop file to the desktop:
xdg-desktop-icon install ./shinythings-webmirror.desktop
To add a README file to the desktop as well, the following command can be used:
xdg-desktop-icon install ./shinythings-README