Где установить значок для пользовательского приложения, соблюдая стандарты 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 согласно спецификации базового каталога.

Другие вопросы по тегам