Problemas ao criar uma entrada na área de trabalho para um script de shell

4

Eu fiz os seguintes procedimentos para criar um lançador de aplicativos, mas não funciona.

  1. crie um script de shell chamado shell.sh com o seguinte conteúdo:

    java -jar foo.jar
    
  2. permissão de execução adicionada: sudo chmod +x shell.sh
  3. Criado o arquivo .desktop em /usr/share/applications/ com o conteúdo:

    [Desktop Entry]
    Name=foo
    Terminal=false
    Exec=/path/shell.sh
    Type=Application
    Icon=/path/icon.png
    Categories=Utility;
    

Então eu tenho um aplicativo com o ícone, mas ele não pode ser executado, enquanto o duplo clique em shell.sh funciona. O que há de errado?

    
por iceboal 18.12.2012 / 20:39

3 respostas

3

Aqui estão algumas dicas que podem ajudar você a resolver seu problema:

  1. Substitua Exec=/path/shell.sh por Exec=sh /path/shell.sh ou Exec=bash /path/shell.sh
  2. Adicione permissão de execução ao arquivo .desktop

    sudo chmod +x /usr/share/application/<your_desktop_file>
    

Além disso, a menos que você queira que esse ativador esteja disponível em todo o sistema (por exemplo: para todos os usuários), você pode colocar o arquivo .desktop em ~/.local/share/applications . Como essa pasta está localizada em sua pasta pessoal, você não precisa de sudo para criar / editar o arquivo.

    
por Salem 18.12.2012 / 21:35
1

Não sei o que há de errado com sua entrada, mas uso o seguinte aplicativo para criar lançadores personalizados. funciona em Unity também:

link

O Desktop Entry Editor é um aplicativo GUI para edição e criação de lançadores de aplicativos para GNOME, KDE, XFCE e qualquer outro ambiente de área de trabalho que implementa a Especificação de Entrada na Área de Trabalho do freedesktop.org.

    
por user97760 18.12.2012 / 21:38
1

Certifique-se de verificar se você quer

  1. use caminhos completos no seu arquivo shell, por exemplo, em java -jar foo.java , é necessário substituir foo.java por /full/path/to/foo.java
  2. define a propriedade Path da entrada da área de trabalho, que define o diretório de trabalho do seu script, ou seja, o script é executado em relação ao diretório de trabalho especificado.

Se você seguir a segunda opção, sua entrada na área de trabalho será parecida com esta

[Desktop Entry]
Name=foo
Terminal=false
Exec=/full/path/to/shell.sh
Path=/full/path/to
Type=Application
Icon=/full/path/to/icon.png
Categories=Utility;
    
por sgbmyr 18.03.2015 / 00:58

Tags