У меня есть значок 128x128, на который есть ссылка в файле Glade главного окна, например <property name="icon">../media/my-icon.svg</property>
.
Я пробовал и с svg, и с png, но в переключателе приложений Ubuntu (Alt + Tab) изображение всегда получается очень размытым.
Я заметил то же самое при создании приложения из шаблона с помощью quick, логотип Ubuntu тоже очень размыт.
Есть идеи, почему это может произойти?
решение1
Что происходит
Настройки <property name="icon">
относятся к иконке окна, а не к иконке приложения. Насколько я понимаю, сервер окон Ubuntu (X.org) сжимает их до крошечного размера после загрузки. Если вы не помните, в 2009 году они использовались в этом качестве:
Вместо этого используйте значки приложений
Ubuntu Unity будет использовать этот формат с низким разрешением, если это необходимо. Однако он обычно извлекает иконки приложений в соответствии со Icon=
значениемсредство запуска приложений данного окна, называемое «записью рабочего стола».
Если вы обычный разработчик приложений, который просто планирует опубликовать свою программу с помощьюПортал разработчиков приложений, вы, вероятно, можете прекратить чтение здесь. Бесплатная служба упаковки займется записью вашего приложения на рабочем столе и размещением его установленных иконок в нужной части файловой системы. Если нет...
Суть дела
Как создать запись на рабочем столе и заставить Ubuntu сопоставить ваше окно PyGTK с правильным значком и именем приложенияуже задокументировано в этом вопросе. Но где вы на самом делеместозначки, чтобы отобразить нужный?
Как оказалось, ответ довольно загадочен. Согласно спецификациям freedesktop.org, иконки ищутся и загружаются по размеру, теме иконок и (при необходимости) локализации. Иконки можно даже устанавливать в нескольких различных префиксах в зависимости от источника, который их установил. Ubuntu «запрашивает» иконки по контексту.
Простые правила: используйте уникальное имя значка для вашего приложения, чтобы предотвратить ложные совпадения с другими значками. Поместите значок(и) для вашего приложения в один из следующих каталогов (или в его подкаталог):
<user prefix>/share/icons/<icon width>x<icon height>/apps/
<user prefix>/share/icons/scalable/apps/
<user_prefix>
это путь установки вашего приложения (он будет /usr
для пакетов, установленных менеджером пакетов, /usr/local/
для другого программного обеспечения, установленного для всех пользователей, и $HOME/.local
для однопользовательских установок). <icon width>
и <icon height>
(или «масштабируемый» для SVG) ссылаются на размеры значка. Если вы создаете много разных разрешений значка, Ubuntu всегда найдет и выберет правильный для любого контекста.
Получение правильного значка приложения для отображения во время разработки
Создайте масштабируемый или высокоразрешающий значок и поместите его в правильный подкаталог домашнего
share/
каталога пользователя. Например,myapp.svg
он будет находиться в$HOME/.local/share/icons/scalable/
Напишите запись на рабочем столе, которая включает нерасширенное имя вашего значка. Например
[Desktop Entry] Name=My Application Exec=my_binary Icon=myapp
Поместите это в
$HOME/.local/share/applications/
. Обратите внимание, чтоmy_binary
должно бытьисполняемый файл, доступный для поиска в одном из ваших$PATH
каталогов.Запустите свое приложение либо (a) из Unity Dash, либо (b) из командной строки с помощьюточное имявашего
$PATH
исполняемого файла [например, 'my_binary'].
Если все это звучит как тарабарщина...
Откройте файловый браузер и изучите каталоги /usr/share/applications/
и /usr/share/icons/
. Осмотритесь вокруг, и вы поймете, как работают метаданные и значки приложений в Ubuntu.