.desktop files: como especificar o caminho do ícone [duplicado]

17

Eu dei uma olhada nos arquivos .desktop no meu sistema Ubuntu 12.04, e muitos deles não têm uma especificação de caminho completo para o seu arquivo de ícone. É algo como:

Icon=anjuta

ou

Icon=vlc

ou

Icon=application-x-clementine

Existe um caminho comum onde os ícones podem ser armazenados para que isso funcione? Se não, como isso funciona? Se eu tentar fazer a mesma coisa com meus próprios ícones, preciso especificar o caminho completo.

por exemplo,

Icon=/usr/local/share/my-icon.png

funciona bem, mas

Icon=my-icon.png

falhará.

Qualquer tipo de ajuda é bem-vinda!

    
por user3430409 17.03.2014 / 20:55

3 respostas

12

Sim, a pesquisa é bem complicada. Aqui estão as especificações do ícone freedesktop nos layouts de diretório:

  

Ícones e temas são procurados em um conjunto de diretórios. Por padrão,   aplicativos devem procurar em $ HOME / .icons (para compatibilidade com versões anteriores), em   $ XDG_DATA_DIRS / icons e em / usr / share / pixmaps (nessa ordem) .   As aplicações podem ainda adicionar seus próprios diretórios de ícone a esta lista,   e os usuários podem estender ou alterar a lista (no aplicativo / desktop   maneiras específicas). Em cada um desses diretórios os temas são armazenados como   subdiretórios. Um tema pode ser espalhado por vários diretórios base   por ter subdiretórios do mesmo nome. Desta forma, os usuários podem estender   e substituir temas do sistema.

     

Para ter um local para aplicativos de terceiros para instalar seus   ícones deve sempre existir um tema chamado "hicolor" 1 . Os dados   para o tema hicolor está disponível para download em:    link . Implementações são   necessário procurar no tema "hicolor" se um ícone não foi encontrado   o tema atual.

     

Cada tema é armazenado como subdiretórios dos diretórios base. o   nome interno do tema é o nome do subdiretório, embora   o nome visível do usuário, conforme especificado pelo tema, pode ser diferente.   Assim, os nomes de temas são sensíveis a maiúsculas e minúsculas e são limitados a ASCII   personagens. Os nomes dos temas também não podem conter vírgula ou espaço.

     

Em pelo menos um dos diretórios do tema, deve haver um arquivo chamado   index.theme que descreve o tema. O primeiro index.heme encontrado   enquanto procura os diretórios base em ordem é usado. Este ficheiro   descreve os atributos gerais do tema.

     

No diretório do tema, há também um conjunto de subdiretórios contendo   arquivos de imagem. Cada diretório contém ícones projetados para um certo   tamanho nominal do ícone, conforme descrito pelo arquivo index.theme. o   subdiretórios podem ter vários níveis de profundidade, por exemplo, a   subdiretório "48x48 / apps" no tema "hicolor" acabaria em   $ basedir / hicolor / 48x48 / apps.

     

Os arquivos de imagem devem ser de um dos tipos: PNG, XPM ou SVG, e   A extensão deve ser ".png", ".xpm" ou ".svg" (minúscula). O apoio   para arquivos SVG é opcional. Implementações que não suportam SVGs   deve simplesmente ignorar qualquer arquivo ".svg". Além disso, pode haver   um arquivo adicional com dados de ícone extras para cada arquivo. Deveria ter   o mesmo nome de base do arquivo de imagem, com a extensão ".icon". por exemplo.   se o arquivo de ícone é chamado "mime_source_c.png" o arquivo correspondente   seria nomeado "mime_source_c.icon".

As especificações completas são muito mais exhausti {ve, ng} do que isso, mas o ponto crucial é: há diretórios configurados nos quais você pode simplesmente inserir ícones e a área de trabalho os encontrará. Qual dos melhores se aplica a você depende do seu problema e da sua paciência:)

    
por Oli 17.03.2014 / 21:18
4

Se você colocar ícones em /usr/share/icons/ (para todo o sistema) ou em sua casa ~/.icons , poderá usar apenas o nome do arquivo de ícone sem a extensão no arquivo .desktop. Por exemplo,

Icon=vlc

Se não, então você deve usar o caminho absoluto para o ícone no arquivo .desktop. Por exemplo,

Icon=/usr/local/share/my-icon.png
    
por Radu Rădeanu 17.03.2014 / 21:12
4

Tenho experiência apenas com emblemas, não com ícones, mas isso deve funcionar:

mkdir -p $HOME/.icons/hicolor/48x48/

coloque o ícone nesse diretório, vamos supor que seja myicon.png

cp  myicons.png $HOME/.icons/hicolor/48x48/

Adicione o arquivo de descrição:

gedit $HOME/.icons/hicolor/48x48/myicon.icon

com conteúdo:

[Icon Data]

DisplayName=myicon

e agora sua linha Icon=myicon deve funcionar. Ele funciona com emblemas se você colocá-los em um subdiretório "emblemas":

Graças a @Oli agora eu sei porque funciona :-)

    
por Rmano 17.03.2014 / 21:39