Como depuro um arquivo .desktop?

Como depuro um arquivo .desktop?

Eu tenho um .desktoparquivo para iniciar um programa python em um ambiente conda específico, assim:

[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

Isso costumava funcionar, mas ajustei meu ambiente python recentemente.

Agora, em um terminal o mesmo comando

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

executa o aplicativo, mas o .desktoparquivo não.Como faço para descobrir qual é o erro?

Meus outros .desktoparquivos funcionam bem, presumo que algo esteja errado com meu ambiente Python, que é bastante hackeado no momento (que é o principal motivo para executá-lo em um condaambiente dedicado, para começar).

Zachary Brady sugeriu originalmente (mas háproblemas) xdg-openpode executar .desktoparquivos, mas aparece uma caixa de mensagem dizendo

Erro

Falha ao adicionar um plugin ao painel

Nenhuma instância em execução do xfce4-panel foi encontrada

tanto para este .desktopquanto para outro que funcione de outra forma. (Estou executando o Ubuntu simples, sem xfce).

Responder1

Você também pode usar a ferramenta de validaçãovalidação de arquivo de desktoppara encontrar mais problemas.

(Veja também:Como validar/verificar arquivos .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

Responder2

Normalmente adiciono o seguinte para ver o que está sendo executado:

Terminal=true
TerminalOptions=\s--noclose

Responder3

No Linux Mint, o serviço Gerenciador de Arquivos é denominado nemo, o nemo pode ser encerrado emitindo:

nemo -q

Com o seu gerenciador de arquivos parado, você pode abri-lo em um terminal

nemo

Agora ele imprimirá seu log neste terminal, quando você abrir seu arquivo *.desktop, você poderá ver o stdout da linha Exec do seu *.desktop.

Responder4

xdg-opene exo-opensão usados ​​para abrir arquivos (em seus respectivos programas associados). Eles nunca foram feitos para executar nada por conta própria. Para executar o comando definido por um desktop, você pode usardex.

informação relacionada