Meu arquivo .desktop personalizado aparece no Dash como um arquivo de texto

1

Eu instalei recentemente o MATLAB no meu computador. Descobri que, embora eu pudesse facilmente iniciar o MATLAB a partir do terminal, não havia nenhum arquivo executável em que eu pudesse clicar duas vezes para executá-lo. Então, criei um script Bash para executar o MATLAB e, em seguida, criei um arquivo .desktop e salvei-o em /usr/share/applications/ . Aqui está o conteúdo desse arquivo .desktop:

[Desktop Entry]
Type=Application
Name=MATLAB
Hidden=false
Exec=Desktop/Programs/scripts/runMatlab.sh
Icon=/usr/share/icons/matlabIcon.jpg
Categories=Application;

Se eu olhar dentro de /usr/share/applications/ , eu realmente vejo um arquivo executável com o nome MATLAB e o ícone apropriado, e se eu clicar duas vezes nele, o MATLAB rodará muito bem. No entanto, se eu digitar MATLAB no Dash, o matlab.desktop aparecerá como um arquivo de texto. Ele não tem o nome correto (MATLAB) ou o ícone correto, e se eu clicar nele, o Gedit será aberto em vez do arquivo que está sendo executado.

Como posso corrigir isso?

Estou usando o Ubuntu 14.04 pelo caminho.

    
por Alessandro Power 27.01.2015 / 16:27

2 respostas

1

Se você der uma boa olhada no Dash, descobrirá que matlab.desktop não aparece como um aplicativo, mas o arquivo matlab.desktop aparece em pesquisa ou usado recentemente , já que você obviamente o editou.

O erro

O motivo é que o Dash não o vê como um arquivo válido .desktop para (pelo menos) o seguinte motivo:

  • Você não deve usar caminhos relativos em um caminho .desktop ( Desktop/Programs/scripts/runMatlab.sh é relativo), mas em caminhos absolutos .

Outros possíveis motivos podem ser um caminho de ícone inválido ou o fato de você chamar o script sem o sh precedente (se o script não for executável, mas, dadas as outras informações em sua pergunta, esse não parece ser o caso) ).

Notas

  • Outra coisa é que se você armazena o script no que parece ser um diretório local, você não deve armazenar o arquivo .desktop em /usr/share/applications , mas em ~/.local/share/applications .

  • Não é necessário tornar um arquivo .desktop executável se você o executar a partir do Dash ou do Launcher. A maioria dos lançadores em /usr/share/applications ou ~/.local/share/applications não são. Somente se você localizá-lo e executá-lo na sua área de trabalho.

por Jacob Vlijm 27.01.2015 / 18:29
1

Primeiro, mova o arquivo .desktop para /usr/share/applications/ (lançadores globais, precisa de permissão de raiz para mover o arquivo) ou para ~/.local/share/applications/ (somente para o usuário atual). *
EDIT: Quando você executa o desktop-file-install, isso não é necessário, pois copia automaticamente o arquivo para / usr / share / applications /

Em seguida, depois de verificar seu arquivo .desktop em busca de erros com desktop-file-install filename.desktop (nenhuma saída significa nenhum erro, mas até mesmo alguns avisos podem não impedir que o ativador funcione),
você adiciona-o ao traço Unity executando sudo desktop-file-install filename.desktop ( EDITAR: privilégios de root necessários para acessar / usr / share / applications / onde os ativadores globais são armazenados ). Por favor, note que este comando pode adicionar algumas linhas ao arquivo .desktop original.

Espero que isso resolva seu problema. Saudações!
(Fonte: link )

    
por Byte Commander 27.01.2015 / 18:06