Eu tenho um .desktop
arquivo 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 .desktop
arquivo não.Como faço para descobrir qual é o erro?
Meus outros .desktop
arquivos 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 conda
ambiente dedicado, para começar).
Zachary Brady sugeriu originalmente (mas háproblemas) xdg-open
pode executar .desktop
arquivos, 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 .desktop
quanto 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-open
e exo-open
sã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.