Comment déboguer un fichier .desktop?


10

J'ai un .desktopfichier pour démarrer un programme python dans un environnement conda spécifique, comme ceci:

[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

Cela fonctionnait auparavant, mais j'ai récemment peaufiné mon environnement python.

Maintenant, dans un terminal, la même commande

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

exécute l'application, mais pas le .desktopfichier. Comment puis-je savoir en raison de quelle erreur il s'agit?

Mes autres .desktopfichiers fonctionnent bien, je suppose que quelque chose ne va pas avec mon environnement Python, qui est assez hack pour le moment (ce qui est la principale raison de l'exécuter dans un condaenvironnement dédié pour commencer).

Zachary Brady a suggéré à l'origine (mais il y a des problèmes ) xdg-openpourrait exécuter des .desktopfichiers, mais cela me donne une boîte de message disant

Erreur

Impossible d'ajouter un plugin au panneau

Aucune instance en cours d'exécution de xfce4-panel n'a été trouvée

à la fois pour cela .desktopet pour un autre qui fonctionne autrement. (Je lance Ubuntu, pas de xfce).


J'ai supprimé ma réponse après en avoir lu plus, elle xdg-opena été buggée pendant un bon moment et n'ouvre que les icônes du bureau dans les éditeurs de texte ...
Zachary Brady

Il s'avère que le problème était un non substitué ~(apparaissant comme " ~", pas comme " /home/anaphory") dans le chemin Python, que j'ai découvert en ajoutant env > check;au milieu de la commande. Mais je suis sûr qu'il existe une meilleure façon de déboguer cela!
Anaphory

Réponses:


3

Vous pouvez également utiliser l'outil de validation desktop-file-validate pour rechercher d'autres problèmes.

(voir aussi: Comment valider / vérifier les fichiers .desktop? )

# 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

1

Sous Linux Mint, le service File Manager est nommé nemo, nemo peut être quitté en émettant:

nemo -q

Avec votre gestionnaire de fichiers arrêté, vous pouvez l'ouvrir dans un terminal

nemo

Il va maintenant imprimer son journal sur ce terminal, lorsque vous allez ouvrir votre fichier * .desktop, vous devriez pouvoir voir la sortie standard de la ligne Exec de votre * .desktop.


Oh, et lorsque vous avez terminé le débogage, Ctrl + C le terminal exécutant nemo, et ouvrez-le via votre menu de démarrage, ou reconnectez votre session de bureau.
ThorSummoner

0

J'ajoute normalement ce qui suit pour voir ce qui est exécuté:

Terminal=true
TerminalOptions=\s--noclose

0

xdg-openet exo-opensont utilisés pour ouvrir des fichiers (dans leur programme associé respectif). Ils n'étaient jamais censés exécuter quoi que ce soit par eux-mêmes. Pour exécuter la commande définie par un bureau, vous pouvez utiliser dex .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.