Значок приложения PyGTK размыт в Unity

Значок приложения PyGTK размыт в Unity

У меня есть значок 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 всегда найдет и выберет правильный для любого контекста.

Получение правильного значка приложения для отображения во время разработки

  1. Создайте масштабируемый или высокоразрешающий значок и поместите его в правильный подкаталог домашнего share/каталога пользователя. Например, myapp.svgон будет находиться в$HOME/.local/share/icons/scalable/

  2. Напишите запись на рабочем столе, которая включает нерасширенное имя вашего значка. Например

    [Desktop Entry]
    
    Name=My Application
    Exec=my_binary
    Icon=myapp
    

    Поместите это в $HOME/.local/share/applications/. Обратите внимание, что my_binaryдолжно бытьисполняемый файл, доступный для поиска в одном из ваших $PATHкаталогов.

  3. Запустите свое приложение либо (a) из Unity Dash, либо (b) из командной строки с помощьюточное имявашего $PATHисполняемого файла [например, 'my_binary'].

Если все это звучит как тарабарщина...

Откройте файловый браузер и изучите каталоги /usr/share/applications/и /usr/share/icons/. Осмотритесь вокруг, и вы поймете, как работают метаданные и значки приложений в Ubuntu.

Связанный контент