O gerenciador de janelas provavelmente obtém essas informações de .desktop
files. (Eu posso confirmar com o GNOME 3 Shell, mas deve ser o mesmo no Metacity.)
Atualmente, todo programa gráfico instala um ou vários arquivos em /usr/share/applications
(você pode adicionar o seu próprio a ~/.local/share/applications
). É um arquivo em formato INI contendo as informações básicas sobre o programa, de acordo com a Especificação de Entrada na Área de Trabalho : nome, executável principal, ícone, ... Para executar programas, o gerenciador de janelas faz a correspondência do proprietário da janela com o programa denominado em Exec=
line.
(Quando você adiciona itens ao menu do GNOME, eles são automaticamente armazenados em .desktop
arquivos.)
Por exemplo, escrevi o seguinte como ~/.local/share/applications/xterm.desktop
para fazer com que meu Xterm tenha um ícone "terminal" genérico:
[Desktop Entry] Name=XTerm Comment=Use the command line Exec=xterm Icon=utilities-terminal Type=Application Categories=Utility;TerminalEmulator;
A tecla Icon
pode ser um caminho absoluto para uma imagem ou um nome de ícone de acordo com Ícone Tema Spec . O sistema vem com /usr/share/icons
e você pode colocar o seu próprio em ~/.local/share/icons
. (Se não corresponder exatamente à especificação de nomenclatura, hicolor/256x256/program.png
ficará bem.)
Observe que o formato preferido é PNG, que tem mais recursos que o XPM.