Desktop-Dateien: Ihre Anwendung innerhalb der Desktop-Menüs

Um Anwendungen in GNOME auszuführen, klicken Anwender auf Symbole auf ihren Desktops oder wählen die zu startenden Anwendungen in einem Menü aus. Daher sollte der erste Schritt für die Integration eines vorhandenen Programms in GNOME die Registrierung in einer Reihe von Anwendungen sein, die Benutzer ausführen können.

Im Gegensatz zu Windows oder MacOS werden in GNOME die Benutzermenüs automatisch aus der Liste der registrierten Anwendungen erstellt. Jede verfügbare Anwendung stellt eine Reihe von Kategorien bereit, auf die sie sich bezieht. Die Konfiguration des Systemmenüs sortiert diese und ordnet sie richtig zu. Dieser Mechanismus folgt den Freedesktop.org-Standards für Desktop-Einträge und Menüs.

Obwohl in anderen Desktopumgebungen üblich, wird die Erzeugung eines eigenen, anwendungsspezifischen Untermenüs nicht empfohlen. Stellen Sie stattdessen einen Menüeintrag für jede Ihrer Anwendungen bereit. Zusätzliche Einträge wie Hilfedateien, READMEs oder Verknüpfungen sollten in die Anwendung selbst eingebettet werden.

In GNOME und auch in anderen Freedesktop.org-kompatiblen Desktops wird eine Anwendung in den DEsktop-Menüs anhand eines Desktop-Eintrags registriert. Dies ist eine Textdatei mit der Erweiterung .desktop. Diese Desktop-Datei enthält eine Liste von Konfigurationen für Ihre Anwendung. Der Desktop liest die Informationen in dieser Datei aus und verwendet sie zum:

  • Eintragen der Anwendung in das Hauptmenü.
  • Auflisten der Anwendung im Dialog Anwendung ausführen ….
  • Erzeugen entsprechender Anwendungsstarter im Menü oder auf dem Desktop.
  • Zuordnen des Namens und der Beschreibung einer Anwendung.
  • Zuordnen des richtigen Symbols.
  • Zuordnen der MIME-Typen, deren Dateien diese Anwendung öffnen kann.

Um einen Menüeintrag für Ihre Anwendung hinzuzufügen, erstellen Sie eine Desktop-Datei. Diese sollte einen eindeutigen Dateinamen haben. Für die Länge dieses Namens gibt es keinerlei Beschränkungen, Sie dürfen hier auch Markennamen verwenden. So können Sie Überschneidungen mit anderen Anwendungen zuvorkommen. Vermeiden Sie jedoch Leerzeichen oder internationale Zeichen im Dateinamen. Beispielsweise wäre »foocorp-painter-pro.desktop« ein guter Dateiname, »fcpp.desktop« dagegen nicht, ebenso wie »FooCorp Painter Pro.desktop«. Die Datei sollte in UTF-8 kodiert sein und nach folgender Vorlage gestaltet werden:

	[Desktop Entry]
	Encoding=UTF-8
	Name=FooCorp Painter Pro
	Exec=foocorp-painter-pro
	Icon=foocorp-painter-pro
	Type=Application
	Categories=Application;
	

Diese Desktop-Dateien enthalten Metadaten zu Ihrer Anwendungen und spielen eine zentrale Rolle bei der Integration des Programms in GNOME und auch in andere standardkonforme Desktops. Die hier vorgestellte Vorlage ist das absolute Minimum. Die Datei kann in verschiedene Sprachen übersetzt werden, so dass der Name der Anwendung in der jeweiligen Sprache des Benutzers erscheint.

Place this file in the /usr/share/applications directory so that it is accessible by everyone, or in ~/.local/share/applications if you only wish to make it accessible to a single user. Which is used should depend on whether your application is installed systemwide or into a user's home directory. GNOME monitors these directories for changes, so simply copying the file to the right location is enough to register it with the desktop. 1

Jede funktionierende Desktop-Datei muss dem gleichen Format folgen. Ein Beispiel einer minimalen Desktop-Datei wird in Beispiel 1-1 gezeigt. Die Datei ist in Abschnitte unterteilt, wovon jeder mit einer Abschnittsbeschreibung in eckigen Klammern beginnt. In diesem Beispiel wird nur ein Abschnitt gezeigt, der für die Integration Ihrer Anwendung in den Desktop von grundlegender Bedeutung ist. In jedem Abschnitt ist der Teil jeder Zeile vor dem Gleichheitszeichen der key, wobei die zweite Hälfte der Zeile den Wert angibt. Eine Erklärung der einzelnen Zeilen finden Sie in Tabelle 1-1.

Abgesehen von der ersten Zeile zur Identifizierung der Desktop-Datei ist die Reihenfolge der weiteren Zeilen nicht von Bedeutung. In Beispiel 1-1 könnte die Zeile Type=Application an zweiter, fünfter oder letzter Stelle stehen, das Ergebnis wäre das Gleiche.

Die Schlüssel erkennen Groß- und Kleinschreibung. Type=Application ist nicht dasselbe wie type=Application oder TYPE=Application.

Beispiel 1-1Beispiel für eine Desktop-Datei
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=application
Icon=application.png
Terminal=false
Tabelle 1-1Zeilenweise Erklärung
Zeile Beschreibung
[Desktop Entry] Die erste Zeile jeder Desktop-Datei und der Abschnitts-Kopfzeile, um den Block aus mit dem Desktop verknüpften Schlüssel-Wert-Paaren zu identifizieren. Dies ist für die korrekte Erkennung der Datei durch den Desktop notwendig.
Type=Application Tells the desktop that this desktop file pertains to an application. Other valid values for this key are Link and Directory.
Encoding=UTF-8 Beschreibt die Zeichenkodierung der Einträge in dieser Desktop-Datei.
Name=Sample Application Name Name der Anwendung für das Hauptmenü und Anwendungsstarter.
Comment=A sample application Beschreibt die Anwendung. Wird als Minihilfe angezeigt.
Exec=application Der Befehl, der die Anwendung in einer Befehlszeile startet. Die Angabe von Argumenten ist möglich.
Icon=application.png Der Name des mit dieser Anwendung verknüpften Symbols.
Terminal=false Gibt an, ob die Anwendung in einem Terminal ausgeführt werden sollte oder nicht.

1.1.1. Starten Ihrer Anwendung

Falls Ihre Anwendung Befehlszeilenargumente akzeptiert, können Sie das unter Verwendung der in Tabelle 1-2 gezeigten Felder anzeigen.

Tabelle 1-2Ausführungsvariablen
Fügt hinzu … Akzeptiert …
%f einen einzelnen Dateinamen.
%F mehrere Dateinamen.
%u eine einzelne Adresse.
%U mehrere Adressen.
%d a single directory. Used in conjunction with %f to locate a file.
%D multiple directories. Used in conjunction with %F to locate files.
%n einen einzelnen Dateinamen ohne Pfad.
%N mehrere Dateinamen ohne Pfade.
%k eine Adresse oder einen lokalen Dateinamen eines Ortes in der Desktop-Datei.
%v den Namen des Geräteeintrags.

1.1.2. Lokalisierung

Zum Erzeugen von Namen und Kommentaren in weiteren Sprachen müssen Sie zusätzliche Zeilen hinzufügen. Um beispielsweise eine schwedische Version des Kommentars hinzuzufügen, ist folgende Zeile nötig:

Comment[sv]=Exempelprogramnamn

Die Anzahl der Übersetzungen in der Datei ist nicht begrenzt.

Weil die Verwaltung einer langen Liste von Übersetzungen in einer Datei eher lästig ist, sollten Sie für deren Erzeugung besser das intltool-Paket verwenden. In den Handbuchseiten von intltool-extract und intltool-merge finden Sie weitere Informationen.

1.1.3. Referenzen

Desktop Entry Specification — Specifications for creating a desktop file.

1

Note that the ~/.local/share/applications location is not monitored by versions of GNOME prior to version 2.10 or on Fedora Core Linux, prior to version 2.8. These versions of GNOME follow the now-deprecated vfolder standard, and so desktop files must be installed to ~/.gnome2/vfolders/applications. This location is not supported by GNOME 2.8 on Fedora Core nor on upstream GNOME 2.10 so for maximum compatibility with deployed desktops, put the file in both locations.

Note that the KDE Desktop requires one to run kbuildsycoca to force a refresh of the menus.