Менеджер окон, вероятно, получает эту информацию из файлов .desktop . (Я могу подтвердить это с помощью GNOME 3 Shell, но в Metacity должно быть то же самое.)
В настоящее время каждая графическая программа устанавливает файл или несколько файлов в /usr/share/applications (вы можете добавить свой собственный в ~/.local/share/applications). Это файл в формате INI, содержащий основную информацию об этой программе в соответствии со спецификацией записи рабочего стола: имя, основной исполняемый файл, значок, ... Для запуска программ менеджер окон сопоставляет владельца окна с программой, названной в строке Exec= .
(Когда вы добавляете элементы в меню GNOME, они автоматически сохраняются в файлах .desktop .)
Например, я написал следующее как ~/.local/share/applications/xterm.desktop чтобы у моего Xterm была общая иконка "терминал":
[Desktop Entry]
Name=XTerm
Comment=Use the command line
Exec=xterm
Icon=utilities-terminal
Type=Application
Categories=Utility;TerminalEmulator;
Ключ Icon может представлять собой абсолютный путь к изображению или имя значка в соответствии со спецификацией Icon Theme. Система поставляется с /usr/share/icons , и вы можете поместить свой собственный в ~/.local/share/icons . (Если он не совсем соответствует спецификации именования, то hicolor/256x256/program.png .)
Обратите внимание, что предпочтительным форматом является PNG, который имеет больше возможностей, чем XPM.