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:)