Wie kann ich dem GNOME-Fenstermanager eine Anwendung hinzufügen?

50

Die On-Board-Dokumentation zu GNOME behandelt nur die Dinge, die jeder leicht erraten kann. Ich habe eine Anwendung dafür, die ich nur von der Kommandozeile aus starten kann. Nicht, dass es mir etwas ausmacht, ein Terminal zu benutzen, aber ...

Wie füge ich den Befehl (und vorzugsweise ein schönes Logo) zu GNOME WM hinzu?

mart
quelle
Wenn Sie mit der rechten Maustaste klicken, erhalten Sie einen Eintrag "Menü bearbeiten"?
slm
Nein, überhaupt kein Rechtsklick-Menü.
Mart

Antworten:

88

In GNOME- und anderen freedesktop.org- kompatiblen Desktop-Umgebungen wie KDE und Unity werden Anwendungen über Desktop-Einträge , die in Textdateien mit der .desktopErweiterung (als Desktop-Dateien bezeichnet ) definiert sind, zu den Desktop-Menüs oder der Desktop-Shell hinzugefügt . Die Desktop-Umgebungen erstellen Menüs für einen Benutzer aus den kombinierten Informationen, die aus verfügbaren Desktop-Einträgen extrahiert wurden.

Desktop-Dateien können an zwei Stellen erstellt werden:

  • /usr/share/applications/ für Desktop-Einträge, die jedem Benutzer im System zur Verfügung stehen
  • ~/.local/share/applications/ für Desktop-Einträge, die einem einzelnen Benutzer zur Verfügung stehen

Möglicherweise müssen Sie GNOME neu starten, damit die neu hinzugefügten Anwendungen funktionieren.

Laut Konvention sollten Desktop-Dateien keine Leerzeichen oder internationalen Zeichen in ihrem Namen enthalten.

Jede Desktop-Datei ist in Gruppen unterteilt , wobei jede mit dem Gruppenkopf in eckigen Klammern ( []) beginnt . Jeder Abschnitt enthält eine Anzahl von Schlüsseln , Wert - Paaren, durch ein Gleichheitszeichen getrennt ist ( =).

Unten finden Sie ein Beispiel für eine Desktop-Datei:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Erläuterung

  • [Desktop Entry]Der Desktop EntryGruppenkopf kennzeichnet die Datei als Desktop-Eintrag
  • Type die Art des Eintrags, gültige Werte sind Application, LinkundDirectory
  • Encoding die Zeichenkodierung der Desktop-Datei
  • Name Der Anwendungsname, der in Menüs oder Startprogrammen angezeigt wird
  • Comment eine Beschreibung der in QuickInfos verwendeten Anwendung
  • Icon Das Symbol, das für die Anwendung in Menüs oder Startprogrammen angezeigt wird
  • Exec Der Befehl, mit dem die Anwendung von einer Shell aus gestartet wird.
  • Terminal ob die Anwendung in einem Terminal ausgeführt werden soll, sind gültige Werte trueoderfalse
  • Categories durch Semikolon ( ;) getrennte Liste der Menükategorien, in denen der Eintrag angezeigt werden soll

Befehlszeilenargumente im ExecSchlüssel können mit den folgenden Variablen angegeben werden:

  • %f ein einzelner Dateiname.
  • %F mehrere Dateinamen.
  • %u eine einzelne URL.
  • %U mehrere URLs.
  • %d ein einziges Verzeichnis. Wird in Verbindung mit %fzum Suchen einer Datei verwendet.
  • %D mehrere Verzeichnisse. Wird in Verbindung mit %Fzum Suchen von Dateien verwendet.
  • %n Ein einzelner Dateiname ohne Pfad.
  • %N mehrere Dateinamen ohne Pfade.
  • %k Ein URI oder lokaler Dateiname des Speicherorts der Desktop-Datei.
  • %v den Namen des Geräteeintrags.

Beachten Sie, dass ~oder Umgebungsvariablen wie $HOMEin Desktop-Dateien nicht erweitert werden, sodass alle ausführbaren Dateien, auf die verwiesen wird, entweder im $PATHabsoluten Pfad oder über den absoluten Pfad referenziert werden müssen .

Eine vollständige Desktop Entry Specification ist im GNOME Dev Center verfügbar .

Starten Sie Skripte

Wenn die zu startende Anwendung bestimmte Schritte erfordert, bevor sie aufgerufen wird, können Sie ein Shell-Skript erstellen, mit dem die Anwendung gestartet wird, und den Desktop-Eintrag auf das Shell-Skript verweisen. Angenommen, eine Anwendung muss in einem bestimmten aktuellen Arbeitsverzeichnis ausgeführt werden. Erstellen Sie ein Startskript an einem geeigneten Ort ( ~/bin/zum Beispiel). Das Skript könnte ungefähr so ​​aussehen:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Setzen Sie das ausführbare Bit für das Skript:

$ chmod +x ~/bin/launch-application

Zeigen Sie dann mit dem ExecSchlüssel im Desktop-Eintrag auf das Startskript:

Exec=/home/user/bin/launch-application
Thomas Nyman
quelle
Ich habe das getan, ich kann das Symbol unter Anwendungen sehen, aber wenn ich auf die App klicke, wird der Cursor nur für ein paar Sekunden zu einem Ladesymbol. Keine Fehlermeldung.
Mart
@mart Können Sie uns mitteilen, für welche Anwendung Sie einen Launcher hinzufügen möchten?
Thomas Nyman
1
FTL - ein Indie-Spiel, das ich irgendwo im Internet gekauft habe. Ausgehend von der Konsole funktioniert.
Mart
1
@mart <path>/.FTLwürde auf eine versteckte Datei verweisen, die aufgerufen wird .FTL, was nicht dasselbe ist wie ./FTL, was auf eine Datei verweist, die FTLim aktuellen Verzeichnis aufgerufen wird . Sie können versuchen, FTLüber /full/path/path/to/FTLin einem Terminal zu starten, um festzustellen, ob Sie eine aussagekräftige Fehlerausgabe erhalten. Wenn die ausführbare Datei beispielsweise im aktuellen Arbeitsverzeichnis nach Bibliotheken sucht, müssen Sie möglicherweise ein Startskript ausführen, das sich an das Startskript anlehnt pushd <path>; ./FTL; popdund den ExecBezeichner in der Desktop-Datei auf das Startskript verweist.
Thomas Nyman
1
korrektur: es funktioniert aus dem verzeichnis heraus
mart
12

Sehr gute Antwort von Thomas Nyman.

Gnome wird mit einem GUI-Tool gnome-desktop-item-editgeliefert, das beim Erstellen von * .desktop-Dateien hilft. Wir müssen es von der Kommandozeile aus benutzen oder eine Desktop-Datei dafür erstellen.

Anweisungen, um Gnome Application von zu machen gnome-desktop-item-edit

  1. Öffnen Sie das Terminalfenster und geben Sie den folgenden Befehl ein:

    gnome-desktop-item-edit --create-new / home / [Ihr Benutzername] /. local / share / applications

  2. Füllen Sie im geöffneten Fenster Folgendes aus: Bildbeschreibung hier eingeben

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    Klicken Sie auf das Symbol, um ein anderes Symbol auszuwählen.

  3. Klicken Sie auf OK, um die Fenster zu schließen

  4. Schließen Sie das Terminalfenster

Testen neu generiert Gnome Application

  1. Armaturenbrett öffnen
  2. Typ Anwendung
  3. Sie sollten das Gnome Applicationeingegebene vorher sehen
  4. Wählen Sie es aus
  5. Erstellen Sie eine andere Anwendung
Dudi Boy
quelle
Das funktioniert wirklich gut, danke. Gibt es eine Möglichkeit, das Menü zu ändern, in dem die neue Anwendung angezeigt wird? Meins erschien in Applications-> Other
SteveP
-1

Die bisherigen Antworten von Thomas Nyman und Dudi Boy sind sehr gut und detailliert. Ich poste dies, weil ich in keinem anderen Post eine Antwort auf meinen Zweifel gefunden habe und in Git-Ausgaben suchen musste.

Nachdem ich die Schritte befolgt hatte, die Thomas Nyman vorgeschlagen hatte, konnte ich das Symbol für mein Programm im App-Menü anzeigen. Das Problem hierbei ist, dass ich Dash zum Andocken als Seitenleiste verwende und das Symbol nicht wie andere Symbole als Favorit festlegen kann. Nach der Suche habe ich festgestellt, dass Sie die Zeile StartupWMClass=ApplicationNamein der .desktopDatei hinzufügen müssen . Danach wird die Option zum Hinzufügen zu Favoriten angezeigt, indem Sie mit der rechten Maustaste auf das Symbol in Dash to Dock klicken.

JonLord
quelle