Como incluir o ambiente Variável no launcher para ícone

3

Esta é uma extensão da questão como incluir um variável de ambiente no lançador? . Esta questão explica como usar a variável de ambiente para a parte Exec do arquivo .desktop , mas não para o ícone

um exemplo:

[Desktop Entry]
Name=My Application name
Comment=a comment
Exec=sh -c '$HOME/.bin/path/to/bin'
Icon= $HOME/.bin/path/to/icon

Este Iniciador funcionará, mas o ícone não é mostrado. Eu não posso usar algo como

Icon=sh -c '$HOME/.bin/path/to/icon'

para o ícone ... o que fazer em vez disso?

    
por Jonas 03.06.2014 / 15:13

2 respostas

4

Honestamente, a melhor maneira de usar um ícone em um lançador é garantir que o arquivo de ícone esteja no caminho de pesquisa do ícone. Referindo-se ao esquema de diretórios de ícones do freedesktop.org e definições do diretório base , os ícones devem ser procurados pelo menos nos seguintes diretórios nos sistemas Ubuntu:

  • $HOME/.icons
  • $HOME/.local/share/icons
  • /usr/local/share/icons
  • /usr/share/icons
  • /usr/share/pixmaps

Portanto, se você quiser usar seu próprio ícone e não tiver privilégios de root, instale o ícone em $HOME/.icons ou $HOME/.local/share/icons . Usando o último, você pode até imitar a estrutura de diretórios do ícone do sistema com ícones de resolução múltipla usando o mesmo nome base em diretórios como $HOME/.local/share/icons/hicolor/48x48/apps e $HOME/.local/share/icons/hicolor/256x256/apps .

Se o ícone estiver em um desses diretórios pesquisáveis, você pode simplesmente usar Icon=myapp no arquivo .desktop .

    
por Mike Miller 04.06.2014 / 14:29
0

Você pode tentar algo assim:

[Desktop Entry]
Type=Application
Name=MyApp
Exec=sh -c "mv %k %k-bak && sed -e "s,^Icon=.*,Icon=$HOME/.bin/path/to/icon.png,g" %k-bak > %k && chmod +x %k; rm %k-bak"
Icon=???

Isso adicionará o caminho relativo do Ícone ao arquivo .desktop depois de executá-lo.

Mais alguns detalhes:

%k representa o caminho do arquivo .desktop

  1. mv %k %k-bak cria um arquivo de backup

  2. sed -e "s,^Icon=.*,Icon=$HOME/.bin/path/to/icon.png,g" ... substitui o caminho do ícone antigo pelo caminho atual $ HOME ... ("^" - > linha de início, está aqui realmente importando para não substituir o comando self) e criar o novo .desktop arquivo

  3. chmod +x %k torna o novo arquivo executável .desktop

  4. rm %k-bak remove o arquivo de backup antigo

Você pode adicionar seus próprios comandos depois que o caminho do ícone foi alterado ou antes.

Inspirado pelo link e link

    
por TuKsn 03.06.2014 / 15:28