Ich habe eine .desktop
App, die ein Shell-Skript ausführt. Dieses Shell-Skript führt einen Python-Code aus, wenn auf die App doppelgeklickt wird, und ich möchte sie aus allen Verzeichnissen auf meinem Laptop starten können und das Symbol stabil halten, selbst wenn die Verzeichnisse des Bildes, Symbols oder der App geändert wurden!
Wie kann ich meine App global machen?
Antwort1
Wie aus der Antwort von Zany_Zachary hervorgeht, sind Launcher in /usr/share/applications
für alle Benutzer verfügbar. Launcher unter sind ~/.local/share/applications
nur für den aktuellen Benutzer verfügbar. Wenn sich der Launcher an diesen Orten befindet, wird er von Ihrem Desktopmenü oder Launcher aufgenommen. Der Speicherort /usr/share/applications
ist ein Verzeichnis, das vom Softwareverwaltungssystem APT des Betriebssystems verwendet wird. Obwohl es funktionieren würde, sollten Sie Ihre benutzerdefinierten .desktop
Dateien nicht dort ablegen. Verwenden Sie stattdessen den Ordner/usr/local/share/applications
. Dieser Ordner existiert unter Ubuntu nicht standardmäßig, Sie müssen ihn daher möglicherweise zuerst erstellen.
So lässt sich „global“ aus Ihrem Titel am ehesten verstehen. In Ihrer Frage legen Sie jedoch nahe, dass Sie unter „global“ auch etwas wie „portabel“ verstehen, d. h. es sollte weiterhin funktionieren, auch wenn das Symbol oder die App ihren Standort geändert hat. Sie müssen jedoch die Konventionen des Betriebssystems einhalten, wo Ihr Symbol oder Ihre ausführbare Datei platziert werden soll. Es gibt also keinen „globalen“ .desktop
Launcher, der weiterhin funktioniert, unabhängig davon, wo Sie das Symbol oder die ausführbare Datei platzieren.
Diese „Portabilität“ hat jedoch ihre Grenzen. Zum einen kann sich der Name des Symbols oder der ausführbaren Datei nicht ändern, da der Name in der .desktop
Datei fest codiert ist. Sie können den Pfad in der .desktop
Datei jedoch weglassen, müssen dann jedoch Symbol und ausführbare Datei an bestimmten Stellen platzieren, die vom Betriebssystem gesucht werden.
Das Symbol
Das Icon wird in der .desktop
Datei in der Icon=
Zeile definiert.
Wenn Sie nur den Namen des Icons angeben (ohne die Erweiterung),Das Betriebssystem sucht ~/.icons
und ~/.local/share/icons
zuerst, und durchsuchen Sie dann die systemweiten Symbolverzeichnisse, meist unter /usr/share/icons
und /usr/local/share/icons
. Eine Grafikdatei mit der Erweiterung .png
oder .svg
in einem dieser Ordner wird vom Menüsystem erkannt. Wenn keine entsprechende Grafikdatei gefunden wird, greift das System auf ein standardmäßiges Ersatzsymbol zurück.
Die Anwendung
Die ausführbare Datei wird in der .desktop
Datei in der Exec=
Zeile definiert.
Auch hier sucht das System in vordefinierten Pfaden nach einer ausführbaren Datei mit passendem Namen, wenn kein vollständiger Dateipfad angegeben ist. Sie können die Ordner und ihre Reihenfolge sehen, in der sie mit dem echo $PATH
Befehl durchsucht werden.
Antwort2
Grüße!
Um Ihre .desktop-Datei global zu machen, gehen Sie einfach wie folgt vor:
Legen Sie es in/usr/share/applications
Für nur ein Konto, legen Sie es in/home/$USER/.local/share/applications
Leider können Sie das Symbol nicht beibehalten, wenn die Bilddatei verschoben wird. Ich empfehle, einen Ordner mit Ihrem Anwendungssymbol zu erstellen. Platzieren Sie diesen Ordner in /usr/share
.