Caminho do ícone no arquivo .desktop

7

Na minha área de trabalho eu tenho um arquivo .desktop. Se eu digitar:

Icon=/home/ianbell/Pictures/myLogo.png

o ícone do arquivo .desktop muda (o resultado esperado).

Mas, se eu digitar:

Icon=~/Pictures/myLogo.png

não funciona.

Não é ~/ um atalho para /home/$USER ?

    
por Ian Bell 17.01.2016 / 19:18

2 respostas

8

O uso de caminhos em um arquivo .desktop

Em um arquivo .desktop , você precisa usar os caminhos absoluto e completo . Portanto, ~ não é expandido.

Este é um erro comumente cometido:)

Exceções relativas a ícones são um.o. descrito aqui :

  

Ícone para exibir no gerenciador de arquivos, menus, etc. Se o nome for um   caminho absoluto, o arquivo fornecido será usado. Se o nome não é um   caminho absoluto, o algoritmo descrito no Tema de ícones   A especificação será usada para localizar o ícone.

e aqui :

  

Campo de ícone é o ícone que deve ser usado pelo lançador e   representa o aplicativo. Todos os ícones que estão sob o diretório    /usr/share/pixmaps não precisa ter seu caminho completo especificado, mas   seu nome de arquivo sem a extensão. Por exemplo, se o arquivo de ícone for    /usr/share/pixmaps/wallch.png , então o campo Ícone deve ser apenas   'wallch'. Todos os outros ícones devem ter o caminho completo   especificado.

Mais informações

Em um arquivo .desktop :

Na linha Icon= , você tem permissão para usar espaços:

Icon=/home/jacob/Thema/icon/some folder/some icon.png

está bem.

No entanto

Na linha Exec= , você não tem permissão para usar espaços, a menos que no caso de um argumento . Em todos os outros casos, você precisa citar as etapas do caminho com um espaço:

Exec=/home/jacob/Bureaublad/some folder/application

falhará, enquanto

Exec="/home/jacob/Bureaublad/some folder/application"

ou

Exec=/home/jacob/Bureaublad/"some folder"/application

funcionará bem

    
por Jacob Vlijm 17.01.2016 / 19:24
3

Em suma, o caminho .desktop do Icon= do arquivo compreende os caminhos absolutos, mas não a expansão do til, por causa do especificação que define como .desktop arquivos devem funcionar.

Expansão de til

  • Onde você veria que a expansão de til ( ~ ) para a variável de ambiente $HOME geralmente está, por exemplo, em bash, que é o shell de login usual com o qual você interage no prompt de comando
  • bash e outros shells compatíveis com POSIX, expansão de til para $ HOME consistente com Especificação POSIX para shells

arquivos .desktop

  • No entanto, um arquivo .desktop não é a mesma coisa que um shell, é um arquivo de configuração de texto simples para que não funcione necessariamente da mesma maneira, mesmo que .desktop arquivos e shells possam ser encontrados no Linux
  • como o arquivo de .desktop deve funcionar, está definido em Especificação de entrada na área de trabalho

Especificação de entrada na área de trabalho, referente a Icons , diz:

  

Se o nome for um caminho absoluto, o arquivo fornecido será usado.

É por isso que você foi capaz de usar caminhos absolutos, já que é coberto pela especificação

  

Se o nome não for um caminho absoluto, o algoritmo descrito na Especificação do tema do ícone será usado para localizar o ícone.

Quando verificamos a Especificação do Tema do Ícone , não há nada que diga que ela tenha que seguir o til do POSIX expansão em tudo.

Resumo

Assim, devido às especificações do Freedesktop em relação à configuração de .desktop Icon= , os caminhos absolutos são suportados, mas, como você descobriu, as expansões POSIX de til para $ HOME não são.

    
por clarity123 17.01.2016 / 20:19