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:

  • Einfügen der Anwendung in das Hauptmenü. Eine Liste der möglichen Kategorien finden Sie in der Desktop Menu Specification von Freedesktop.org.
  • 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]
	Name=FooCorp Painter Pro
	Exec=foocorp-painter-pro
	Icon=foocorp-painter-pro
	Type=Application
	Categories=GTK;GNOME;Utility;
	

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.

Speichern Sie diese Datei im Ordner /usr/share/applications, so dass sie für jeden verfügbar wird, oder in ~/.local/share/applications, falls nur ein einzelner Benutzer darauf zugreifen können soll. Welcher Ort verwendet wird, ist davon abhängig, ob Ihre Anwendung systemweit oder im persönlichen Ordner eines Benutzers installiert wird. GNOME überprüft diese Ordner regelmäßig auf Änderungen, einfaches Kopieren der Datei an den richtigen Ort genügt, um sie im Desktop zu registrieren. 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 Weist den Desktop darauf hin, dass diese Desktop-Datei zu einer Anwendung gehört. Weitere mögliche Werte für diesen Schlüssel sind Link und directory.
Encoding=UTF-8 Beschreibt die Zeichenkodierung der Einträge in dieser Desktop-Datei.
Name=Name der Beispielanwendung Name der Anwendung für das Hauptmenü und Anwendungsstarter.
Comment=Eine Beispielanwendung 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
Hinzufügen von … Akzeptiert …
%f einen einzelnen Dateinamen.
%F mehrere Dateinamen.
%u eine einzelne Adresse.
%U mehrere Adressen.
%d einen einzelnen Ordner. Wird in Verbindung mit %f verwendet, um eine Datei anzugeben.
%D mehrere Ordner. Wird in Verbindung mit %F verwendet, um Dateien anzugeben.
%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 — Spezifikationen zur Erstellung einer Desktop-Datei.

1

Beachten Sie, dass der Ort ~/.local/share/applications von Gnome-Versionen vor 2.10 oder auf Fedora-Systemen vor GNOME 2.8 nicht berücksichtigt wird. Diese GNOME-Versionen folgen dem nicht mehr gültigen vfolder-Standard, daher müssen Desktop-Dateien in ~/.gnome2/vfolders/applications installiert werden. Dieser Ort wird weder von GNOME 2.8 auf Fedora noch von GNOME 2.10 unterstützt. Setzen Sie daher die Datei an beide Orte, um eine höchstmögliche Kompatibilität zu gewährleisten.

Beachten Sie, dass der KDE-Desktop die Ausführung des Befehls kbuildsycoca erfordert, um eine Aktualisierung der Menüs zu erzwingen.