Quicklists
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
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:
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¶
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 "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¶
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 |
Links¶
Intern¶
GNOME - Übersichtsartikel zur Desktop-Oberfläche GNOME
.desktop-Dateien - Erstellen von Programmstartern
KDE-Servicemenüs - Nutzung der "Desktop Action"-Erweiterung unter KDE
Extern¶
https://specifications.freedesktop.org/desktop-entry-spec/latest/ 🇬🇧 Desktop Entry Spezifikation von freedesktop
Quicklists 🇬🇧 - GNOME-Shell-Erweiterung, um Quicklists auch in früheren GNOME-Shell-Versionen nutzen zu können