Где установить значок для пользовательского приложения, соблюдая стандарты FreeDesktop?
У меня есть приложение с графическим интерфейсом, которое я хочу установить для каждого пользователя в соответствии с требованиями FreeDesktop. Читая соответствующие спецификации, кажется, что файл '.desktop' следует поместить в~/.local/share/applications
, и что он должен содержать Icon
ключ установлен на имя иконки без расширений.
Проблема, с которой я столкнулся, заключается в том, что я не могу найти местоположение для каждого пользователя, где я должен хранить значок. В спецификации темы значков указано, что значки приложений должны как минимум храниться в$prefix/share/icons/hicolor/48x48/apps
, но никогда не определяет, какие значения $prefix
берет. Он упоминает$HOME/.icons
но обесценивает это как наследие. Все остальные пути, которые я нашел, были общесистемными.
Руководство по интеграции Gnome указывает, что значки следует хранить в/usr/share/icons/hicolor/48x48/apps/
но не упоминает об установке для каждого пользователя, несмотря на ссылки на установку для каждого пользователя в другом месте руководства.
Учитывая, что то, что мне удалось найти, не дает мне нужной информации, я спрашиваю следующее:
Где следует разместить значок моего приложения, чтобы рабочие столы xdg могли их найти?
Пожалуйста, обратите внимание, что мне известно о kde4-config --path icon
и друзья. Я хочу по возможности избегать обработки значков для каждого рабочего стола, который я хочу поддерживать.
1 ответ
Перечитывая спецификацию значков XDG, я заметил, что спецификация ссылается на спецификацию базового каталога XDG, включая $XDG_DATA_DIRS
. Это включение подразумевает, что также действует Спецификация Базового Справочника, которая, в свою очередь, требует, чтобы
Поиск в файле данных должен искать./subdir/filename относительно всех базовых каталогов, указанных в $XDG_DATA_HOME и $XDG_DATA_DIRS . Если переменная среды либо не установлена, либо пуста, вместо нее следует использовать ее значение по умолчанию, как определено в этой спецификации. (SRC)
Итак, при условии, что я правильно понимаю и рабочие столы XDG соответствуют спецификациям, пользовательское расположение значка для вашего приложения $XDG_DATA_HOME/icons/hicolor/48x48/apps/$YOURAPP.(png|xpm)
а также $XDG_DATA_HOME/icons/hicolor/scalable/apps/$YOURAPP.svg
. Расширения файлов чувствительны к регистру, и разрешены только эти три расширения. Также обратите внимание, что поддержка SVG не является обязательной.
Если $XDG_DATA_HOME
не установлен, вы должны по умолчанию $HOME/.local/share
согласно спецификации базового каталога.