Где установить значок для пользовательского приложения при соблюдении стандартов FreeDesktop? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть приложение с графическим интерфейсом, которое я хочу установить для каждого пользователя в соответствии с FreeDesktop.Читая соответствующие спецификации, кажется, что файл '.desktop' должен быть помещен в ~/.local/share/applications, и что он должен содержать ключ Icon, установленный на имя иконки без расширений.

ПроблемаЯ сталкиваюсь с тем, что не могу найти местоположение для каждого пользователя, где я должен хранить значок.В спецификации Icon Theme указано, что значки приложений должны храниться как минимум в $prefix/share/icons/hicolor/48x48/apps, но никогда не определяет, какие значения принимает $prefix.Он упоминает $HOME/.icons, но ограничивает его как наследство.Все остальные пути, которые я нашел, были общесистемными.

Руководство по интеграции Gnome указывает, что значки должны храниться в /usr/share/icons/hicolor/48x48/apps/, но не упоминает установку для каждого пользователя, несмотря на упоминание о пользователеустановки в другом месте в руководстве.

Учитывая, что то, что мне удалось найти, не дает мне нужную информацию, я спрашиваю:

Где разместить значок моего приложения, чтобы рабочие столы xdgможете их найти?

Пожалуйста, обратите внимание, что я знаю о kde4-config --path icon и друзьях.Я хочу по возможности избегать обработки значков для каждого рабочего стола, который я хочу поддерживать.

1 Ответ

0 голосов
/ 24 сентября 2019

Перечитывая спецификацию значка 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 в соответствии со спецификацией базовой директории.

...