Wie debugge ich eine .desktop-Datei?

10

Ich habe eine .desktopDatei, um ein Python-Programm in einer bestimmten Conda-Umgebung zu starten, wie folgt:

[Desktop Entry]
Version=1.0
Name=Qutebrowser
GenericName=Web Browser
Comment=View and edit files
MimeType=text/html;
Exec=bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"
Icon=/vol/home/kaipingga/.config/qutebrowser.svg
Type=Application
Terminal=false
Categories=Network;Utility;X-Python;
StartupWMClass=Qutebrowser
X-Desktop-File-Install-Version=0.20

Das hat früher funktioniert, aber ich habe kürzlich meine Python-Umgebung optimiert.

Nun in einem Terminal den gleichen Befehl

$ bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"

führt die Anwendung aus, die .desktopDatei jedoch nicht. Wie finde ich heraus, um welchen Fehler es sich handelt?

Meine anderen .desktopDateien laufen einwandfrei. Ich gehe davon aus, dass mit meiner Python-Umgebung etwas schief geht, was im Moment ziemlich hackig ist (was der Hauptgrund ist, dies zunächst in einer dedizierten condaUmgebung auszuführen ).

Zachary Brady schlug ursprünglich vor (aber es gibt Probleme ) xdg-open, .desktopDateien auszuführen , aber es gibt mir ein Meldungsfeld mit der Aufschrift

Error

Fehler beim Hinzufügen eines Plugins zum Panel

Es wurde keine laufende Instanz von xfce4-panel gefunden

sowohl für diesen .desktopals auch für einen anderen, der sonst funktioniert. (Ich verwende einfach Ubuntu, kein xfce).

Anaphory
quelle
Ich habe meine Antwort gelöscht, nachdem ich mehr darüber gelesen hatte. Sie xdg-openist seit einiger Zeit fehlerhaft und öffnet nur die Desktop-Symbole in Texteditoren ...
Zachary Brady
Es stellt sich heraus, dass das Problem im Python-Pfad nicht substituiert war ~(als " ~", nicht als " /home/anaphory" angezeigt), was ich durch Hinzufügen env > check;in der Mitte des Befehls herausgefunden habe. Aber ich bin mir sicher, dass es einen besseren Weg gibt, dies zu debuggen!
Anaphory

Antworten:

3

Sie können auch das Validierungstool desktop-file-validate verwenden , um weitere Probleme zu finden.

(Siehe auch: Überprüfen / Überprüfen von .desktop-Dateien? )

# Result for your example
$ desktop-file-validate qutebrowser.desktop 
test.desktop: hint: value "Network;Utility;X-Python;" for key "Categories"
in group "Desktop Entry" contains more than one main category; application
might appear more than once in the application menu
Jonas Stein
quelle
1

Unter Linux Mint wird der Dateimanager-Dienst benannt nemo. Nemo kann durch Folgendes beendet werden:

nemo -q

Wenn Ihr Dateimanager gestoppt ist, können Sie ihn in einem Terminal öffnen

nemo

Das Protokoll wird nun auf diesem Terminal gedruckt. Wenn Sie Ihre * .desktop-Datei öffnen, sollte die Standardausgabe der Exec-Zeile Ihres * .desktop angezeigt werden.

ThorSummoner
quelle
Oh, und wenn Sie mit dem Debuggen fertig sind, drücken Sie Strg + C auf dem Terminal, auf dem nemo ausgeführt wird, und öffnen Sie es über Ihr Startmenü oder protokollieren Sie Ihre Desktop-Sitzung erneut.
ThorSummoner
0

Normalerweise füge ich Folgendes hinzu, um zu sehen, was ausgeführt wird:

Terminal=true
TerminalOptions=\s--noclose
user375770
quelle
0

xdg-openund exo-openwerden zum Öffnen von Dateien (in ihrem jeweiligen zugehörigen Programm) verwendet. Sie sollten niemals etwas alleine ausführen. Zum Ausführen des von einem Desktop definierten Befehls können Sie dex verwenden .

Hermann
quelle