Назначение в Linux иконки для программы

В большинстве используемых в Linux свободных сред рабочего стола назначение иконки для программы описывается стандартом freedesktop.org. Более подробно об этом можно прочитать на сайте freedesktop.org, по адресу: http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html. Впрочем, спецификация freedesktop.org, если её читать с самого начала, выглядит очень запутанной. Поэтому я здесь помещаю самые основы, нужные для назначения иконки для программы.

Согласно этой спецификации, иконки для программы могут быть разными. Они могут быть разных размеров и относиться к разным темам рабочего стола. Разработчику программы, чтобы назначить иконку для своего приложения, нужно поместить как минимум одно изображение для темы "hicolor", в формате PNG, размером 48x48 пикселей. Иконки обычно размещаются в директориях иконок для конкретных тем, которые, в свою очередь, располагаются в директории "/usr/share/icons/". Заглянув в эту директорию, обычно можно увидеть в ней несколько вложенных директорий - это как раз и есть директории тем иконок. Если среди них найти "hicolor", то в ней будет много директорий, названных по форматам иконок - "16x16", "24x24", "48x48", и так далее. В этих директориях можно найти иконки в формате PNG указанного размера. Для иконок в формате SVG - формата масштабируемой векторной графики - есть директория "scalable". Однако, в этих директориях с форматами иконок, вместо самих иконок также лежат директории с названиями вроде "actions", "animations", "apps", и так далее. Иконки приложений помещаются в директорию "apps". Если открыть эту директорию - можно в ней увидеть множество иконок для установленных приложений. То есть, чтобы назначить иконку для приложения, надо, как минимум, поместить файл в формате PNG размером 48x48 пикселей в директорию "/usr/share/icons/hicolor/48x48/apps/". В случае, если есть возможность - лучше также поместить также иконки и других разрешений. То есть, если есть изображение в формате PNG размером 64x64 - помещаем его в директорию "/usr/share/icons/hicolor/64x64/apps/". Если есть изображение в формате PNG размером 16x16 - помещаем его в директорию "/usr/share/icons/hicolor/16x16/apps/". И так далее. Если есть изображение в формате SVG - помещаем его в директорию "/usr/share/icons/hicolor/scalable/apps/". И так далее.

Все файлы изображений желательно называть так же, как и исполняемый файл программы, но только с расширением для изображения. Например, исполняемый файл браузера Chromium называется "chromium-browser", а его иконки в формате PNG называются "chromium-browser.png". Также нужно, чтобы изображения разных размеров имели одно и то же имя файла. Различаться они должны только директориями, в которых находятся. И, если форматы изображений отличаются - расширениями. То есть, например, файлы иконок для браузера Chromium называются "chromium-browser.png" и для иконки размера 48x48, и для иконки размера 128x128. Для иконки в формате SVG файл незывается также, но с другим расширением - "chromium-browser.svg". В этом случае, среда рабочего стола сможет автоматически подобрать для программы иконку с нужным разрешением.

В случае, если вы хотите, чтобы программа поддерживала другие темы рабочего стола, а не только тему hicolor - надо аналогичным образом разместить изображения и для них тоже. В этом случае, при смене темы среда рабочего стола сможет подобрать для вашего приложения иконку, соответствующую нужной теме.

Строго говоря, называть иконки так же, как и исполняемый файл, совсем необязательно. Названия у иконок могут быть любые. Для того, чтобы иконка программы отображалась для её ярлыка (т.е. desktop-файла), надо прописать эту иконку в desktop-файле. Для этого в desktop-файл надо поместить строку "Icon=", и после знака "=" - название иконки. Расширение для иконки не указывается, указывается только название (которое, как было сказано выше, для всех иконок во всех темах должно быть одинаковым). В этом случае, если программа будет запущена через созданный для неё desktop-файл, ей будет назначена соответствующая иконка. Например, в desktop-файле для браузера Chromium иконка назначается так: "Icon=chromium-browser". Более подробно о создании desktop-файлов можно прочитать в разделе "Ярлыки для программы (desktop-файлы) ".

В desktop-файле можно указывать иконку и по-другом - с указанием полного пути к файлу. Например, для файлового менеджера Double Commander версии 0.4.5 в desktop-файле указывается: "Icon=/usr/share/pixmaps/doublecmd.png". Как и для упомянутого выше файлового менеджера Double Commander, многие приложения копируют свои иконки в директорию "/usr/share/pixmaps", а затем назначают их оттуда в desktop-файлах с указанием полного пути. Но поступать так не рекомендуется, так как в этом случае среда рабочего стола не сможет автоматически подбирать для программы иконку с нужным разрешением, и относящуюся к нужной теме. Значительно лучше будет, если программа будет соответствовать спецификациям freedesktop.org.

О создании desktop-файлов и полях в них приложения более подробно рассказывается в следующем разделе.