ubuntuusers.de

Quicklists

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Menüeditor/alacarte_logo.png Desktop Entries bieten die Möglichkeit, einige Anwendungen mit zusätzlichen Menüeinträgen zu erweitern. So kann man z.B. direkt aus der Startleiste heraus ein neues Dokument in gedit erstellen, neue Tabs im Firefox öffnen und vieles mehr… Dieser Artikel soll zeigen, wie Desktop Entries aufgebaut sind und wie man sie zu bestehenden Programmstartern hinzufügt.

Zurzeit werden Desktop Entries in GNOME 3 und KDE unterstützt. In KDE sind sie auch als "Desktop Actions" bekannt. In GNOME3 werden diese Jumplists genannt.

Sämtliche persönlichen Desktop Entríes sollten nach Ergänzung der entsprechenden .desktop-Datei im versteckten Ordner ~/.local/share/applications/ im Homeverzeichnis abgespeichert werden.

Aufbau

./quicklist_wiki_libreoffice.png
Desktop entry für LibreOffice

Ein Desktop Entry ist grundsätzlich eine Erweiterung einer .desktop-Datei, wobei diese um folgendes Gerüst ergänzt wird:

1
2
3
4
5
6
7
8
[…]
Actions=ELEMENTNAME;

[Desktop Action ELEMENTNAME]
Name=BESCHREIBUNG
Exec=BEFEHL
Path=PFAD/ZUR/ANWENDUNG
OnlyShowIn=GNOME;KDE

Die Zeile:

Actions=ELEMENTNAME;

weist die Desktop-Umgebung darauf hin, dass nun ein Desktop Entry beginnt. In diesem Beispiel enthält das Desktop Entry ein Element mit dem Namen "ELEMENTNAME", aber es können auch mehrere Elemente aufgenommen werden. Die einzelnen Elemente werden mit einem Semikolon abgetrennt.

Erläuterung
Element Beschreibung
[Desktop Action ELEMENTNAME] Weist darauf hin, dass die folgenden Parameter zum Element "ELEMENTNAME" gehören.
Name=BESCHREIBUNG Text, der angezeigt werden soll
Exec=BEFEHL Befehl, der ausgeführt werden soll, wenn dieses Element ausgewählt wird.
Path=PFAD/ZUR/ANWENDUNG Legt einen Ordner fest, aus dem der Befehl ausgeführt werden soll. Diese Zeile ist optional und kann auch weggelassen werden.
OnlyShowIn=GNOME;KDE Lässt dieses Element nur in GNOME3 und KDE erscheinen und verhindert damit Probleme in anderen Desktop-Umgebungen.

Dateirechte

Damit die .desktop-Dateien auch benutzt werden können, muss in den Datei-Rechten[1] explizit die Ausführung gestattet sein (siehe auch Starter ausführbar machen). Diese Rechte kann man entweder über das Kontextmenü eines Dateimanagers mit rechte Maustaste "Eigenschaften → Zugriffsrechte (bzw. Berechtigungen)" oder über folgenden Befehl setzen:

chmod u+x DATEINAME 

Lokalisierung

Man kann den Namen auch für verschiedene Systemsprachen anpassen. Dazu ergänzt man unterhalb von Name=... eine weitere Zeile:

Name[LÄNDERCODE]=ÜBERSETZUNG

Beispielsweise könnte das so aussehen:

1
2
3
4
5
6
7
Actions=Window;

[Desktop Action Window]
Name=Open a new window
Name[de]=Neues Fenster öffnen
Exec=...
OnlyShowIn=GNOME;KDE

Eine genaue Beschreibung zur Lokalisierung findet man im Artikel .desktop-Dateien.

Werkzeuge

Neben der manuellen Erstellung mit einem Editor gibt es auch Programme, die bei der Erstellung weiterhelfen können. Hier sei insbesondere auf das Programm MenuLibre verwiesen.

Beispiele

Möchte man einen vorhandenen Programmstarter um einen Desktop Entry erweitern oder einen vorhanden ändern, dann empfiehlt es sich, nicht den originalen Programmstarter unter /usr/share/applications zu ändern, sondern sich diesen in den Ordner ~/.local/share/applications zu kopieren und die Kopie zu bearbeiten.

Dies hat den Vorteil, dass der veränderte Starter auch bei einer Aktualisierung erhalten bleibt, da das System zuerst Programmstarter aus ~/.local/share/applications/ bevorzugt, bevor es die in /usr/share/applications/ (diese werden bei einer Aktualisierung evtl. überschrieben) vorhandenen startet.

Hinweis:

Damit ein geänderter Programmstarter berücksichtigt wird, muss man sich unter Umständen ab- und wieder neu anmelden.

Gedit

Wenn man nun beispielsweise den Starter des Editors gedit um die Möglichkeit erweitern möchte, ein neues Fenster oder ein neues Dokument zu öffnen, dann sähe der Desktop Entry folgendermaßen aus:

Actions=Window;Document;

[Desktop Action Window]
Name=Neues Fenster öffnen
Exec=gedit --new-window
OnlyShowIn=GNOME;KDE

[Desktop Action Document]
Name=Neues Dokument öffnen
Exec=gedit --new-document
OnlyShowIn=GNOME;KDE

Dieser Desktop Entry wird nun am Ende des bestehenden Programmstarters org.gnome.gedit.desktop, den man sich zuvor in den Ordner ~/.local/share/applications/ kopiert hat, angefügt. Dazu öffnet man den Starter mit einem Editor [2] eigener Wahl und ergänzt den Desktop Entry. In diesem Beispiel sähe der vollständige Programmstarter dann so aus:

[Desktop Entry]
Name=Text Editor
Comment=Edit text files
Exec=gedit %U
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
# TRANSLATORS: Do NOT translate or transliterate this text!
#              This is an icon file name.
Icon=org.gnome.gedit
Categories=GNOME;GTK;Utility;TextEditor;
Actions=new-window;new-document;
# TRANSLATORS: Do NOT translate or localize the semicolons!
#              The list MUST also end with a semicolon!
#              Search terms to find this application.
Keywords=Text;Editor;Plaintext;Write;gedit;
DBusActivatable=true
X-Ubuntu-Gettext-Domain=gedit

[Desktop Action Window]
Name=Neues Fenster öffnen
Exec=gedit --new-window
OnlyShowIn=GNOME;KDE

[Desktop Action Document]
Name=Neues Dokument öffnen
Exec=gedit --new-document
OnlyShowIn=GNOME;KDE

Nach dem Abspeichern der Datei org.gnome.gedit.desktop ist der Desktop Entry nach einer Neuanmeldung abrufbar.

Nautilus

Das folgende Beispiel bietet die Möglichkeit, den Dateimanager Nautilus um einen Schnellzugriff auf die folgenden Ordner zu erweitern:

  • ~/Bilder/

  • ~/Musik/

  • ~/Videos/

Dazu kopiert man die vorhandene Datei /usr/share/applications/org.gnome.nautilus.desktop nach ~/.local/share/applications/org.gnome.nautilus.desktop und ergänzt den Programmstarter am Dateiende um folgende Zeilen:

Actions=OpenPics;OpenMusic;OpenVideos;

[Desktop Action OpenPics]
Name=Öffne Eigene Bilder
Exec=xdg-open $(xdg-user-dir PICTURES)
OnlyShowIn=GNOME;KDE

[Desktop Action OpenMusic]
Name=Öffne Eigene Musik
Exec=xdg-open $(xdg-user-dir MUSIC)
OnlyShowIn=GNOME;KDE

[Desktop Action OpenVideos]
Name=Öffne Eigene Videos
Exec=xdg-open $(xdg-user-dir VIDEOS)
OnlyShowIn=GNOME;KDE

Im Beispiel wird bewusst der Befehl xdg-open statt eines konkreten Programmnamens verwendet. So wird immer der vom Benutzer eingestellte jeweilige Standard-Dateimanager verwendet. Außerdem wird xdg-user-dir verwendet, um ein öffnen der Ordner unabhängig der eingestellten Sprache zu gewährleisten, diese können natürlich auch durch volle Pfade ersetzt werden.

LibreOffice

Um das eingangs abgebildete Desktop Entry für LibreOffice zu erstellen, kopiert man zuerst die Datei /usr/share/applications/libreoffice-startcenter.desktop nach ~/.local/share/applications/libreoffice-startcenter.desktop. Dann editiert man den Programmstarter und fügt folgende Zeilen an:

Actions=Writer;Impress;Calc;Math;Draw

[Desktop Action Writer]
Name=Writer
Exec=libreoffice -writer %U
OnlyShowIn=GNOME;KDE

[Desktop Action Impress]
Name=Impress
Exec=libreoffice -impress %U
OnlyShowIn=GNOME;KDE

[Desktop Action Calc]
Name=Calc
Exec=libreoffice -calc %U
OnlyShowIn=GNOME;KDE

[Desktop Action Math]
Name=Math
Exec=libreoffice -math %U
OnlyShowIn=GNOME;KDE

[Desktop Action Draw]
Name=Draw
Exec=libreoffice -draw %U
OnlyShowIn=GNOME;KDE

Zuletzt kann man auf Wunsch noch den MIME-Typ anpassen. Dazu die Zeile:

MimeType=application/vnd.openofficeorg.extension;

durch Folgende ersetzen:

MimeType=application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.oasis.opendocument.text-web;application/vnd.oasis.opendocument.text-master;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.sun.xml.writer.global;application/vnd.stardivision.writer;application/msword;application/vnd.ms-word;application/x-doc;application/rtf;text/rtf;application/vnd.wordperfect;application/wordperfect;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/vnd.oasis.opendocument.spreadsheet;application/vnd.oasis.opendocument.spreadsheet-template;application/vnd.sun.xml.calc;application/vnd.sun.xml.calc.template;application/vnd.stardivision.calc;application/vnd.stardivision.chart;application/msexcel;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;text/csv;application/x-dbf;application/vnd.oasis.opendocument.graphics;application/vnd.oasis.opendocument.graphics-template;application/vnd.sun.xml.draw;application/vnd.sun.xml.draw.template;application/vnd.stardivision.draw;application/vnd.oasis.opendocument.presentation;application/vnd.oasis.opendocument.presentation-template;application/vnd.sun.xml.impress;application/vnd.sun.xml.impress.template;application/vnd.stardivision.impress;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroenabled.12;application/vnd.oasis.opendocument.formula;application/vnd.sun.xml.math;application/vnd.stardivision.math;

Ubuntuusers.de

./quicklist_wiki_ubuntuusers.png
Desktop Entry für Ubuntuusers.de

Als letztes Beispiel soll ein neuer Programmstarter für das hiesige Portal dienen. Dazu die Datei ~/.local/share/applications/ubuntuusers.desktop erstellen und mit folgendem Inhalt füllen:

[Desktop Entry]
Version=1.0
Type=Application
Name=ubuntuusers.de
Name[de]=ubuntuusers.de
Terminal=false
Exec=xdg-open https://ubuntuusers.de
Icon=/home/$USER/Bilder/simple.png
Categories=Network;WebBrowser;
StartupNotify=true
X-MultipleArgs=false
StartupWMClass=ubuntuusers.de

Actions=Forum;EigeneBeitraege;Abonnements;NeueBeitraege;Wiki;Suche;Nachrichten;Kontrollzentrum;

[Desktop Action Forum]
Name=Forum
Name[de]=Forum
Exec=xdg-open https://forum.ubuntuusers.de/
OnlyShowIn=GNOME;KDE

[Desktop Action EigeneBeitraege]
Name=Forum :: Eigene Beiträge
Name[de]=Forum :: Eigene Beiträge
Exec=xdg-open https://forum.ubuntuusers.de/egosearch/
OnlyShowIn=GNOME;KDE

[Desktop Action Abonnements]
Name=Forum :: Abonnements
Name[de]=Forum :: Abonnements
Exec=xdg-open https://ubuntuusers.de/usercp/subscriptions/
OnlyShowIn=GNOME;KDE

[Desktop Action NeueBeitraege]
Name=Forum :: Neue Beiträge
Name[de]=Forum :: Neue Beiträge
Exec=xdg-open https://forum.ubuntuusers.de/newposts/
OnlyShowIn=GNOME;KDE

[Desktop Action Wiki]
Name=Wiki
Name[de]=Wiki
Exec=xdg-open https://wiki.ubuntuusers.de/
OnlyShowIn=GNOME;KDE

[Desktop Action Suche]
Name=Suche
Name[de]=Suche
Exec=xdg-open https://ubuntuusers.de/search/
OnlyShowIn=GNOME;KDE

[Desktop Action Nachrichten]
Name=Private Nachrichten
Name[de]=Private Nachrichten
Exec=xdg-open https://ubuntuusers.de/privmsg/inbox/
OnlyShowIn=GNOME;KDE

[Desktop Action Kontrollzentrum]
Name=Kontrollzentrum
Name[de]=Kontrollzentrum
Exec=xdg-open https://ubuntuusers.de/usercp/
OnlyShowIn=GNOME;KDE

Jetzt fehlt nur noch ein passendes Symbol ⮷. Dieses kopiert man z.B. in den Ordner ~/Bilder/ im Homeverzeichnis. Sobald die Datei erstellt ist, kann man den Programmstarter bequem via Drag&Drop in die Startleiste ziehen.

Problembehebung

Im Internet, z.B. bei What Custom Launchers and Unity Quicklists are available? 🇬🇧, finden sich immer wieder Beispiele, die noch die Syntax aus den Anfangstagen von Unity verwenden. Diese Beispiele lassen sich unter Verwendung der folgenden Tabelle einfach abändern und funktionieren dann tadellos.

Alte und neue Syntax für Quicklists
Alt Neu
X-Ayatana-Desktop-Shortcuts=ELEMENTNAME Actions=ELEMENTNAME;
[ELEMENTNAME Shortcut Group] [Desktop Action ELEMENTNAME]
TargetEnvironment=Unity OnlyShowIn=GNOME;KDE

Intern

Extern

Diese Revision wurde am 24. Oktober 2022 11:01 von pantomime erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: KDE, GNOME 3