Criei um arquivo da área de trabalho em / usr / share / applications, mas ele não aparece no Dash

5

Eu criei um arquivo .desktop.

[Desktop Entry]
Exec=cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*
Terminal=false
StartupNotify=true
Categories=GNOME;Oracle;Utility;Development;
Type=Application
Icon=/opt/sqldeveloper/icon.png
Name=Oracle SQL Developer
Comment=what to say
Version=s.0.m.t.h.i.n.g
GenericName=ORACLE SQL DEVELOPER

Ele está presente em /usr/share/applications . Ele até mostra o ícone se for exibido no Nautilus, mas quando pressiono alt (o traço ou a tecla do Windows) e procuro por ele, ele não fica visível.

Eu também tentei:

sudo update-desktop-database
    
por Gokul 20.09.2014 / 13:30

1 resposta

5

Qual é o problema crítico no seu arquivo .desktop

Eu tentei o seu arquivo .desktop substituindo o comando Exec= por outro (simples e funcional) e o arquivo parece estar funcional, e não é recusado pelo Dash.

É um mal-entendido comum que você pode usar a linha Exec= de um arquivo .desktop como se fosse uma janela de terminal. Esse não é o caso; expandir como ~/ ou $HOME não funciona, por exemplo. É bom (o que significa: fácil) praticar colocar comandos mais complicados em um arquivo de script separado, a ser executado a partir do arquivo do iniciador (seu arquivo .desktop )

Execução de comandos complicados a partir de um arquivo .desktop

Se você deseja manter seu comando dentro do seu arquivo .desktop , você deve fazê-lo da seguinte maneira:

Exec=sh -c "your_complicated_command_here && the_rest_of_it"
(command inside quotes)

Executando um script do arquivo .desktop para fazer o trabalho

Supondo que seu comando

cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

funciona a partir de uma janela de terminal; no entanto, basta criar um script pequeno:

#!/bin/bash
cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

Salve-o como scriptname.sh e altere a linha Exec= do seu arquivo .desktop para:

Exec=sh /path/to/scriptname.sh

Em seguida, o seu arquivo .desktop será exibido no Dash

Nota

Existem mais problemas com o seu arquivo .desktop, como mencionado por @Braiam e @MrVaykadji. Alguns exemplos:

  • Você não deve usar apenas usar valores inventados na linha Categories= , pois você pode ler aqui
  • O campo de versão não é obrigatório, mas se você usá-lo, use 1.0

Mais pode ser encontrado aqui . Boas ferramentas você pode encontrar aqui (também graças a @Braiam e @MrVaykadji).

A crítica que faz o seu arquivo .desktop não aparecer no Dash, no entanto, é a linha Exec= .

    
por Jacob Vlijm 22.09.2014 / 19:37