ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
WikiMenü

Menü

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/Tango/document-new.png Die Fenstermanager der unterschiedlichen Ubuntu-Varianten bringen in aller Regel einen Menüeditor mit, der es gestattet, Menüeinträge komfortabel vorzunehmen bzw. zu verändern. Jedoch kann es unter Umständen nötig sein, dass die zu Grunde liegenden Programmstarter (Dateien mit der Endung .desktop) von Hand bearbeitet werden müssen. Neben allgemeinen Einstellungen werden Besonderheiten des jeweiligen Fenstermanagers aufgeführt. Auch viele Dateimanager verwenden diese Dateien, z.B. Nautilus.

Diese Programmstarter werden auch zum automatischen Start von Anwendungen nach der grafischen Anmeldung verwendet. Zu den Details siehe Autostart.

.desktop-Dateien

Für einen Eintrag in das Menü muss man eine Datei [2] nach folgendem Muster erstellen: Beispielname.desktop. Benutzerspezifische Dateien werden im Ordner ~/.local/share/applications im Homeverzeichnis abgespeichert. Sollen die Einstellungen systemweit gelten, so erstellt man diese Datei unter /usr/share/applications. Im Gegensatz zur ersten Variante werden hier jedoch Rootrechte [3] benötigt. Außerdem gilt auch eine bestimmte Reihenfolge: benutzerdefinierte .desktop-Dateien überstimmen – bei gleichem Dateinamen – die systemweiten Vorgaben.

Allgemeine Voraussetzungen sind a) eine geeignete Symboldatei (Icon) und b) das installierte Programm. Für genauere Informationen zum Thema die Seite Desktop Menu Specification {en} konsultieren.

Im folgenden Beispiel wird ein Eintrag im Menü mit dem Namen "LinDVD" für das Untermenü "Multimedia" erstellt. Einen Texteditor [2] öffnen und folgenden Text kopieren und einfügen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Desktop Entry]
Name=LinDVD
Name[de]=LinDVD
GenericName=Video Player
GenericName[de]=Video Player
Comment=DVD-Player
Comment[de]=DVD-Player
Exec=lindvd
Icon=/usr/share/pixmaps/LinDVD.xpm
Terminal=false
Type=Application
StartupNotify=false
Categories=AudioVideo;Player;
OnlyShowIn=GNOME;XFCE;
MimeType=video/mpeg;audio/mpeg;

Die Datei nun im Ordner ~/.local/share/applications unter einem aussagekräftigen Namen wie z.B. lindvd.desktop abspeichern. Der neue Eintrag erscheint als "LinDVD" sofort im Menü.

Starter auf dem Desktop

./menue_warning.png Möchte man einen Programmstarter auf dem Desktop anlegen, so muss die erstellte Datei (zusätzlich) im eigenen Homeverzeichnis im Ordner ~/Arbeitsfläche/ oder ~/Desktop/ (je nach Ubuntu-Version) abgespeichert werden.

Starter ausführbar machen

Je nach Desktop-Umgebung und Ubuntu-Version kann es erforderlich sein, Programmstarter ausführbar [3] zu machen (572918). Ein Beispiel bzw. eine Fehlermeldung, die bei der Nutzung unter Unity oder GNOME auftauchen kann, ist in nebenstehender Abbildung zu sehen. Unter Xfce tritt dieses Problem erst mit der Version 4.10 bzw. ab Ubuntu 12.10 auf, unter LXDE bisher nicht.

Elemente

Die Bedeutung der einzelnen Elemente (siehe auch Desktop Menu Specification Standard Keys {en}):

Systemmenü
ElementBeschreibung
Name= Der Name der Verknüpfung innerhalb des Menüs
GenericName= optional: allgemeine Beschreibung des Programms, z.B. Web Browser
Comment= optional: ein kurzer beschreibender Satz, welcher mit dem Feld Name nicht identisch ist
Exec= Ausführungsbefehl für das Programm (mit dem es in einem Terminalfenster gestartet werden kann - z.B. scummvm)
TryExec= anhand dieser Zeile wird überprüft, ob das Programm, für das ein Menüeintrag angezeigt werden soll, installiert ist. Entweder der komplette Pfad zur ausführbaren Datei oder nur ihr Name (dann wird versucht, ihn über die $PATH-Variable aufzulösen).
Icon= Symbol (Piktogramm), welches im Menü angezeigt werden soll (Icon Themes) {en} .
Terminal= Auswahl, ob das Programm in einem Terminalfenster läuft. true für ja, false für nein.
Type= Man unterscheidet drei Arten von Spezifikationen: Application, Link und Directory. Für Programme Application wählen.
Path= Für Type=Application kann hier ein Arbeitsverzeichnis angegeben werden.
StartupNotify= Soll der Programmstart über ein spezielles Mauszeigersymbol angezeigt werden? In der Regel wird die Option false für Einträge von Programmen ins Menü genutzt. Weitere Informationen {en} .
Categories= Angaben hier entscheiden, in welchem Untermenü die Anwendung angezeigt werden soll. Alle verfügbaren Kategorien kann man hier {en} einsehen. Mehrere Angaben sind möglich. Beispiele:

OpenOffice.org/LibreOffice: =Application;Office;WordProcessor;
ScummVM: =Game;AdventureGame;
Pidgin: Network;InstantMessaging;
Gxine: =AudioVideo;GTK;Player;TV;
Xfburn: =X-XFCE;GTK;DiscBurning;Archiving;Utility;
OnlyShowIn= Eintrag wird nur im Menü der festgelegten Desktop-Umgebung (siehe Registered Environments {en}) angezeigt (Groß-/Kleinschreibung beachten!). Kombinationen sind möglich.
NotShowIn= Eintrag wird nicht im Menü der festgelegten Desktop-Umgebung angezeigt (Groß-/Kleinschreibung beachten!). Bei Verwendung im Zusammenhang mit Autostart wird der automatische Start deaktiviert.
MimeType= Um den korrekten MIME-Typ anzugeben, muss man zuerst in Erfahrung bringen, welche Dateitypen vom Programm unterstützt werden. Diese Informationen sind im Wiki oder auf der Internetseite des Programms / Projekts zu finden. Hat man diese Informationen, so öffnet man mit einem Editor die Datei /etc/mime.types. Anhand der Dateiendungen z.B. mp3 und mpg erhält man die benötigten Informationen für das Programm LinDVD: audio/mpeg; video/mpeg;. Diese werden dann in der Datei eingetragen. (shared-mime-info-spec) {en}
StartupWMClass= optional: Verwendung einer speziellen "WMClass". Wichtig z.b. für Java-Apps in Kombination mit Unity oder Docky.

Experten-Info:

Bei der Angabe von relativen Pfaden für Programme, Skripte oder Symbole im eigenen Homeverzeichnis kommt es häufiger zu Problemen. Dem kann man aus dem Weg gehen, wenn man stattdessen absolute Pfade verwendet.

Beispiele

Weitere Beispiele können mittels eines Editors [2] in /usr/share/applications eingesehen und für eigene Einträge verwendet bzw. überarbeitet werden.

Achtung!

Bitte immer mit Kopien arbeiten, falls man mit den Originaldateien experimentiert. Die Originaldatei nur überschreiben, wenn man sich der Konsequenzen bewusst ist. Außerdem sollte man bedenken, dass geänderte Originaldateien bei einem Update wieder überschrieben werden.

Natives Programm

Am Beispiel von ScummVM:

1
2
3
4
5
6
7
8
9
[Desktop Entry]
Name=ScummVM
Comment=Sammlung von Interpretern für einige Adventure-Game-Engines
Exec=scummvm
Icon=/usr/share/pixmaps/scummvm-logo.png
Terminal=false
Type=Application
Categories=Application;Game;AdventureGame;
StartupNotify=false

Shell-Skript

Obwohl auch der TV-Browser auf Java (siehe unten) basiert, dient das Programm hier als Beispiel für einen Programmstart über ein Shell-Skript:

1
2
3
4
5
6
7
8
9
[Desktop Entry]
Name=TV-Browser
Comment=digitale TV-Zeitschrift
Exec=/usr/lib/tvbrowser/tvbrowser.sh
Icon=/usr/share/pixmaps/tvbrowser128.png
Terminal=false
Type=Application
Categories=AudioVideo;
StartupNotify=false

Java-Programm

Ein Beispiel für einen Java-Programmstarter (siehe Geotag). Benutzername, Pfade und Dateinamen sind noch anzupassen:

1
2
3
4
5
6
7
8
9
[Desktop Entry]
Name=Geotag
Comment=GPS-Daten in Bilder anzeigen und setzen
Exec=java -jar /home/BENUTZERNAME/bin/geotag.jar
Icon=/home/BENUTZERNAME/Bilder/geotag.png
Terminal=false
Type=Application
Categories=Graphics;
StartupNotify=false

Speziell beim Einsatz von Unity ist eine .desktop-Datei für Java etwas kniffelig zu erstellen. Diese Diskussion im Forum bietet Lösungsvorschläge.

Um Einträge im Menü zu entfernen, kann man dies auf zwei verschiedene Arten lösen:

  • entweder man löscht die betreffende .desktop-Datei

  • oder man fügt den Wert

    1
    NoDisplay=true
    

    in die .desktop-Datei ein [2]

Neues Untermenü erstellen

Eine neue Kategorie bzw. ein neues Untermenü wird in drei Schritten angelegt:

  1. Der Name des Eintrags und ein Symbol müssen festgelegt werden.

  2. Die neue Kategorie muss in ein vorhandenes Menü eingefügt werden.

  3. Die Menüeinträge sind mit dem neuen Untermenü zu verbinden.

Groß- und Kleinschreibung sowie Dateiendungen sind zu beachten!

Name und Symbol festlegen

Neben den schon genutzten Untermenüs finden sich auch ungenutzte Einträge in der .directory-Datei in /usr/share/desktop-directories/. Falls dort eine passende Kategorie mit passendem Symbol vorhanden ist, muss kein eigenes angelegt werden. Für einen eigenen Eintrag ist eine Datei nach folgendem Muster zu erstellen:

1
2
3
4
5
6
7
#!/usr/bin/env xdg-open

[Desktop Entry]
Name=Neue Menükategorie
Comment=Beschreibung
Icon=passendes_Symbol
Type=Directory

Systemsymbole können abgekürzt eingetragen werden (z.B. www-browser), aber auch die Angabe des kompletten Pfades ist möglich. Diese Datei ist mit der Dateiendung .directory versehen nach ~/.local/share/desktop-directories/ zu kopieren.

Einbinden ins vorhandene Menü

Die systemweite Menü-Konfigurationsdatei unter /etc/xdg/menus/ sollte nicht direkt bearbeitet werden. Entweder wird eine Kopie der entsprechenden .menu-Datei in ~/.config/menus/ abgelegt und weiter bearbeitet. Oder es wird dort eine .menu-Datei angelegt, welche die .menu-Datei aus dem Stammverzeichnis einbindet und (nur) die gewünschten Änderungen enthält. Vgl. das folgende Beispiel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
      <Name>Applications</Name>
      <MergeFile type="parent">/etc/xdg/menus/lxde-applications.menu</MergeFile>
		<Menu>
			<Name>Neue Menükategorie</Name>
			<Directory>neuesmenu.directory</Directory>
			<Include>
				<Category>Gewünschte Kategorie</Category>
			</Include>
		</Menu>	
</Menu>

Solange das neu erstellte Menü keine Einträge enthält, wird es nicht angezeigt. Entsprechend müssen in ~/.local/share/applications/ ein oder mehrere .desktop-Dateien vorhanden sein, die den Eintrag "Categories=Neue Kategorie" enthalten, entsprechend der Einbindung in der .menu-Datei (vgl. Beispiel im vorigen Abschnitt).

Einzelne Einträge können aber auch direkt eingebunden werden durch den Eintrag:

1
2
3
4
	<Include>
		<file>Programm1.desktop</file>
		<file>Programm2.desktop</file>
	</Include>

Problembehebung

Java

Falls ein Programmstarter für Java fehlt (oder mehrere, wenn man verschiedene Java-Versionen installiert hat), kann das Öffnen einer .jar-Datei über einen Dateimanager schwierig werden (946736). Ein Beispiel für eine entsprechende .desktop-Datei (hier für OpenJDK 7 64-Bit):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Desktop Entry]
Name=OpenJDK 7 Runtime
Name[de]=OpenJDK 7 Laufzeitumgebung
Comment=open with OpenJDK Java
Comment[de]=mit OpenJDK Java öffnen
Exec=cautious-launcher %f /usr/lib/jvm/java-7-openjdk-amd64/bin/java -jar
Terminal=false
Type=Application
Icon=openjdk-7
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
NoDisplay=true

Für andere Java-Versionen passt man diese Datei entsprechend an. Siehe auch Java/Installation/Manuell.

Nautilus

Welche Programme bei einem Rechtsklick rechte Maustaste auf eine Datei bei "Öffnen mit..." automatisch vorgeschlagen werden, hängt vom MIME-Typ der Datei ab. Um beispielsweise den eigenen Lieblings-VideoPlayer in dieser Liste zu ergänzen, öffnet man die dazugehörige .desktop-Datei und kontrolliert die entsprechende Zeile für den MIME-Typ. Beispiel:

1
MimeType=audio/*;video/*;

sorgt dafür, dass das jeweilige Wunschprogramm für alle Audio- und Videodateien vorgeschlagen wird.

Auf dem gleichen Weg kann man auch andere Programme aus der Liste entfernen. Dazu ist es allerdings erforderlich, zuerst eine Kopie des jeweiligen Datei aus /usr/share/applications/ nach ~/.local/share/applications/ zu kopieren. Hintergrund: Einträge dort überstimmen die Angaben aus /usr/share/applications/ und werden beim Einspielen von Updates nicht überschrieben.

ubuntuusers.local › WikiMenü