Come posso eseguire il debug di un file .desktop?


10

Ho un .desktopfile per avviare un programma Python in un ambiente conda specifico, come questo:

[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

Questo funzionava, ma di recente ho modificato il mio ambiente Python.

Ora, in un terminale lo stesso comando

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

esegue l'applicazione, ma il .desktopfile no. Come posso scoprirlo a causa di quale errore si tratta?

I miei altri .desktopfile funzionano bene, suppongo che qualcosa vada storto nel mio ambiente Python, che è abbastanza hack per il momento (che è il motivo principale per eseguirlo in un condaambiente dedicato per cominciare).

Zachary Brady inizialmente suggeriva (ma ci sono problemi ) di xdg-openeseguire i .desktopfile, ma mi dà una finestra di messaggio che dice

Errore

Impossibile aggiungere un plug-in al pannello

Non è stata trovata alcuna istanza in esecuzione di xfce4-panel

sia per questo .desktopche per un altro che altrimenti funziona. (Sto usando Ubuntu, no xfce).


Ho cancellato la mia risposta dopo aver letto di più in esso xdg-openè stato infastidito per un po ' e apre solo le icone del desktop negli editor di testo ...
Zachary Brady,

Si scopre che il problema era un non sostituito ~(che appare come " ~", non come " /home/anaphory") nel percorso Python, che ho scoperto aggiungendo env > check;nel mezzo del comando. Ma sono sicuro che c'è un modo migliore per eseguire il debug di questo!
Anaphory,

Risposte:


3

È inoltre possibile utilizzare lo strumento di convalida desktop-file-validate per trovare altri problemi.

(vedi anche: Come convalidare / verificare i file .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

Su Linux Mint, il servizio File Manager è chiamato nemo, nemo può essere chiuso emettendo:

nemo -q

Con il tuo file manager fermato, puoi aprirlo in un terminale

nemo

Ora stamperà il suo registro su questo terminale, quando vai ad aprire il tuo file * .desktop, dovresti essere in grado di vedere lo stdout della tua linea Exec * .desktop.


Oh, e quando hai terminato il debug, Ctrl + C il terminale che esegue nemo, e aprilo tramite il menu di avvio o registra nuovamente la sessione del desktop.
ThorSummoner,

0

Di solito aggiungo quanto segue per vedere cosa viene eseguito:

Terminal=true
TerminalOptions=\s--noclose

0

xdg-opene exo-openvengono utilizzati per aprire i file (nei rispettivi programmi associati). Non sono mai stati pensati per eseguire nulla da soli. Per eseguire il comando definito da un desktop, è possibile utilizzare dex .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.