Wie debugge ich eine .desktop-Datei?

Wie debugge ich eine .desktop-Datei?

Ich habe eine .desktopDatei zum Starten eines Python-Programms in einer bestimmten Conda-Umgebung, 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 vor Kurzem meine Python-Umgebung optimiert.

Nun kann in einem Terminal der gleiche 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, welcher Fehler das ist?

Meine anderen .desktopDateien laufen einwandfrei. Ich nehme an, dass mit meiner Python-Umgebung etwas nicht stimmt, die im Moment ziemlich hackig ist (was der Hauptgrund ist, dies condazunächst in einer dedizierten Umgebung auszuführen).

Zachary Brady hat ursprünglich vorgeschlagen (aber es gibtProbleme) xdg-openkann Dateien ausführen .desktop, aber es wird mir ein Meldungsfeld angezeigt, das besagt:

Fehler

Dem Panel konnte kein Plugin hinzugefügt werden

Es wurde keine laufende Instanz von xfce4-panel gefunden

sowohl dafür .desktopals auch für ein anderes, das ansonsten funktioniert. (Ich verwende einfaches Ubuntu, kein Xfce).

Antwort1

Sie können auch das Validierungstool verwendenDesktop-Datei-Validierungum weitere Probleme zu finden.

(siehe auch:Wie validiere/verifiziere ich .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

Antwort2

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

Terminal=true
TerminalOptions=\s--noclose

Antwort3

Unter Linux Mint heißt der Dateimanagerdienst nemo, nemo kann durch Eingabe von: beendet werden.

nemo -q

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

nemo

Es druckt nun sein Protokoll auf diesem Terminal. Wenn Sie Ihre *.desktop-Datei öffnen, sollten Sie die Standardausgabe der Exec-Zeile Ihres *.desktops sehen können.

Antwort4

xdg-openund exo-openwerden zum Öffnen von Dateien (im jeweiligen zugehörigen Programm) verwendet. Sie waren nie dazu gedacht, etwas eigenständig auszuführen. Zum Ausführen des von einem Desktop definierten Befehls können Sie verwendendex.

verwandte Informationen