Icon Paths Policy: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
 
(не показано 39 промежуточных версий 9 участников)
Строка 1: Строка 1:
[[Category:Policy]]
{{Policy|since_branch=4.0|responsible=Игорь Власенко|metabug=repocop icon_path тест статус}}
{{MovedFromFreesourceInfo|AltLinux/Policy/IconPaths}}
{{span|font-size: 180%|Политика упаковки пиктограмм. 3-я редакция.}}
 
{| border="1"
|-
|
Статус
|
Действующая политика с 3.0+
|-
|
Автор
|
Игорь Власенко
|-
|
Обязательно в
|
4.0 и выше
|-
|
Метабаг
|
repocop icon_path тест статус
|}
 
 
== Политика упаковки пиктограмм ==
 
__TOC__
 


Данная политика относится к упаковке пиктограмм, на которые ссылаются файлы меню оконных менеджеров.
Данная политика относится к упаковке пиктограмм, на которые ссылаются файлы меню оконных менеджеров.


=== Ссылки ===
== Пиктограммы в .menu/.desktop-файлах ==
 
В <tt>.menu</tt>-файлах (Debian menu, старый формат) пиктограмма указывается параметром <tt>icon="icon.file"</tt>. Значением параметра должно быть имя файла с пиктограммой и расширением, но без пути к файлу либо (не рекомендуется) полный путь к файлу.
Нормативные:
* [[Policy/MenuFiles|Политика упаковки файлов для меню оконных менеджеров]]
* [http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html fd.o Icon Theme Specification]
Ненормативные:
* [[IconsPackaging|HOWTO по упаковке пиктограмм]]
 
=== Пиктограммы в .menu/.desktop-файлах ===
 
В <tt>.menu</tt>-файлах (Debian menu, старый формат) пиктограмма указывается параметром <tt>icon="icon.file"</tt>. Значением параметра должно быть имя файла с пиктограммой с расширением, но без пути к файлу, либо (не рекомендуется) полный путь к файлу.


В <tt>.desktop</tt>-файлах (freedesktop.menu, текущий формат) пиктограмма указывается параметром <tt>Icon=iconfile</tt>. Значением параметра должно быть имя иконки: имя файла с пиктограммой, но без расширения. Допускается, но не рекомендуется, указание имени с расширением или полного пути к файлу с пиктограммой.
В <tt>.desktop</tt>-файлах (freedesktop.menu, текущий формат) пиктограмма указывается параметром <tt>Icon=iconfile</tt>. Значением параметра должно быть имя иконки: имя файла с пиктограммой, но без расширения. Допускается, но не рекомендуется, указание имени с расширением или полного пути к файлу с пиктограммой.
Строка 51: Строка 13:
<tt>.menu</tt>/<tt>.desktop</tt>-файлы могут не ссылаться на пиктограммы вообще.
<tt>.menu</tt>/<tt>.desktop</tt>-файлы могут не ссылаться на пиктограммы вообще.


=== Формат пиктограмм ===
== Формат пиктограмм ==
Допустимые форматы пиктограмм: растровые — PNG, XPM, векторый — SVG (в том числе сжатый gzip`ом — SVGZ). Пиктограммы в других форматах должны быть либо сконвертированы в перечисленные ранее, либо выкинуты при упаковке.


Допустимые форматы пиктограмм: растровые - PNG, XPM, векторый - SVG. Пиктограммы в других форматы должны быть либо сконвертированы в эти, либо выкинуты при упаковке.
== Именование пиктограмм ==
Имена файлов пиктограмм должны иметь расширения в нижнем регистре: <tt>.png</tt>, <tt>.xpm</tt>, <tt>.svg</tt>, <tt>.svgz</tt> для соответствующих типов.


=== Именование пиктограмм ===
== Упаковка пиктограмм ==
Обязательна упаковка растровой пиктограммы размера 48x48.


Имена файлов пиктограмм должны иметь расширения в нижнем регистре: <tt>.png</tt>, <tt>.xpm</tt>, <tt>.svg</tt> для соответствующих типов.
Растровые пиктограммы других размеров и векторная пиктограмма рекомендуются к упаковке при наличии.
 
=== Упаковка пиктограмм ===
 
Обязательна упаковка растровой пиктограммы развера 48x48. Растровые пиктограммы других размеров и векторная пиктограмма рекомендуются к упаковке при наличии.


При наличии PNG и XPM пиктограмм одинакового размера можно не упаковывать XPM-пиктограмму (исправив <tt>.desktop</tt>/<tt>.menu</tt> файл при необходимости).
При наличии PNG и XPM пиктограмм одинакового размера можно не упаковывать XPM-пиктограмму (исправив <tt>.desktop</tt>/<tt>.menu</tt> файл при необходимости).


=== Расположение и размеры пиктограмм ===
== Расположение и размеры пиктограмм ==
Приложение может содержать как «общие» пиктограммы, так и пиктограммы для определённых «тем».


Приложение может содержать как "общие" пиктограммы, так и пиктограммы для определённых "тем".
=== «Общие» пиктограммы ===
'''Должны''' упаковываться как пиктограммы темы <tt>hicolor</tt>.


==== "Общие" пиктограммы ====
Для упаковки пиктограмм размеров 16x16, 32x32, 48x48 имеются стандартные макросы
 
<pre>
Упаковываются как пиктограммы темы <tt>hicolor</tt>.
%_miconsdir/ (mini,  16x16) [/usr/share/icons/hicolor/16x16/apps]
 
%_niconsdir/ (normal,32x32) [/usr/share/icons/hicolor/32x32/apps]
==== Пиктограммы определённой "темы" ====
%_liconsdir/ (large, 48x48) [/usr/share/icons/hicolor/48x48/apps]
</pre>


=== Пиктограммы определённой «темы» ===
Векторные пиктограммы должны располагаться в директории <tt>/usr/share/icons/<тема>/scalable/apps</tt>.
Векторные пиктограммы должны располагаться в директории <tt>/usr/share/icons/<тема>/scalable/apps</tt>.


Растровые пиктограммы должны располагаться в директориях <tt>/usr/share/icons/<тема>/WWxHH/apps</tt>, где WW и HH - ширина и высота пиктограммы в пикселях.
Растровые пиктограммы должны располагаться в директориях <tt>/usr/share/icons/<тема>/WWxHH/apps</tt>, где WW и HH — ширина и высота пиктограммы в пикселях.


== Старый вариант: HOWTO+policy ==
=== Регламентированное использование {{path|/usr/share/pixmaps}} как свалки пиктограмм. ===


=== Упаковка пиктограмм (значков) для меню ===
Согласно freedesktop.org, папка {{path|/usr/share/pixmaps}} может использоваться как синоним %_iconsdir,
т.е. как дополнительный корневой каталог для поиска тем и пиктограмм.
В частности, в корневом каталоге ищутся неклассифицированные пиктограммы, что позволяет использовать его как свалку пиктограмм.
В fedora эта папка используется в качестве %_liconsdir, так как туда принято складывать пиктограммы 48x48.
Под влиянием fedora, как следствие заимствования .spec файлов, некоторое время назад стихийно возникла практика использовать {{path|/usr/share/pixmaps}} как синоним %_liconsdir, а также как свалку для пиктограмм разного размера, что есть плохо.


Этот раздел предназначен для помощи майнтайнерам, пакующим приложения
Поэтому предлагается использовать {{path|/usr/share/icons}} для упорядоченного хранения пиктограмм согласно стандарту,
для десктопа.
а {{path|/usr/share/pixmaps}} временно допускается, но не рекомендуется, использовать как свалку.
Рекомендуется разгрести свалку в {{path|/usr/share/pixmaps}} заранее, так как следующая редакция полиси может ее полностью запретить.


Итак, пусть Вы имеете пакет, который предоставляет пункт(ы) меню
'''Запрещается''' использовать {{path|/usr/share/icons}} как свалку для пиктограмм.
(содержит либо по cтаринке /usr/lib/menu/<app> файл(ы),
либо, по-новому,  %_desktopdir/*.desktop файл(ы)).


Рассмотрим возможные варианты:
Использование {{path|/usr/share/pixmaps}} '''не рекомендуется''', но допускается в указанных ниже случаях:


==== В пакете нет пиктограмм для меню. ====
Допускается, но ''не рекомендуется'', упаковка пиктограмм размера 48×48 в {{path|/usr/share/pixmaps}}.
(рекомендуется перемещать все такие пиктограммы 48×48 в {{path|%_liconsdir}}).


В таком случае на нет и суда нет. Этот случай находится за рамками
'''Запрещается''' устанавливать темы в {{path|/usr/share/pixmaps}}.
данного полиси.  


Но на всякий случай проверьте, не содержит ли
Допускается, но ''не рекомендуется'' создавать приватные свалки пиктограмм в {{path|/usr/share/pixmaps/<name>/}}.
menu/ либо .desktop файл ссылок на несуществующие пиктограммы
(icon="xxx.xxx" в /usr/lib/menu/<app>, Icon=xxx(.xxx)? в .desktop).


Пример бага:
Не допускается упаковка пиктограмм в {{path|/usr/share/pixmaps}} размеров 16x16 и 32x32.  
&gt; в qt3-designer.desktop написано &gt; Icon=designer, хотя в пакете такой пиктограммы нет :(.
(Требуется перемещать все такие пиктограммы в {{path|%_miconsdir}} (16x16) и {{path|%_niconsdir}} (32x32)).


Хороший оконный менеджер это проигнорирует, а плохой да не введем во искушение.
Крайне не рекомендуется упаковка пиктограмм в {{path|/usr/share/pixmaps}}, размеров, отличных от размера 48×48.
Как исключение, допускается наличие пиктограмм других размеров, если это единственная пиктограмма для приложения.


Было бы также хорошо при желании нарисовать свои пиктограммы, добавить
== История изменений ==
их в пакет и поделиться с upstream.


==== Правильная установка пиктограмм. ====
=== Первая редакция ===


Далее будем предполагать, что пиктограммы в пакете есть.  
Действие: до Мастера 2.4 включительно.


При этом может быть ситуация, что после make install эти пиктограммы
Требовала наличие пиктограмм 3-х размеров (16x16, 32x32, 48x48)
где-то лежат, более того, Вы их уже видите в своем любимом оконном
расположенных в {{path|/usr/share/icons{,/mini,/large} }}.
менеджере напротив пункта Вашего приложения.
К сожалению, не расслабляйтесь --- make install кладет эти пиктограммы
как автору на душу легло, и скорее всего, нестандартным образом.


Поэтому такие пиктограммы в одних оконных менеджерах видятся, а в
Эти пути были совместимы со старым Debian и старым Mandrake.
других --- нет, пиктограммы разбросаны по кучам папок и т. д. и т. п.
Устарели после принятия стандарта freedesktop.org.


Правильной их упаковке и посвящено настоящее полиси.
==== Миграция с Первой редакции ====


==== Проверьте расширение пиктограммы. ====
Необходимо изменить пути (желательно, используя макросы)
согласно следующей таблицы.


Расширение файла с пиктограммой должно быть только в нижнем регистре:
{| class="standard"
<cite>
! Старый путь
The image files must be one of the types: PNG, XPM, or SVG, and the extension must be ".png", ".xpm", or ".svg" (lower case).
! Новый путь
</cite>
! Старый макрос
! Новый макрос
|-
| /usr/share/icons/mini
| /usr/share/icons/hicolor/16x16/apps
| %_miconsdir
| %_miconsdir
|-
| /usr/share/icons
| /usr/share/icons/hicolor/32x32/apps
| %_iconsdir
| %_niconsdir
|-
| /usr/share/icons/large
| /usr/share/icons/hicolor/48x48/apps
| %_liconsdir
| %_liconsdir
|}


В /usr/lib/menu/<app> файле имя пиктограммы имя пиктограммы
=== Вторая редакция ===
указывается с расширением, например, icon="ee.xpm".
в .desktop расширение желательно опускать, рекомендуется запись Icon=ee
хотя работает и запись Icon=ee.xpm
Грабли второго случая, в том, что многие темы содержат богатый набор пиктограмм,
в том числе, возможно, и для вашего приложения.
Однако явное указание расширения может помешать их использовать.


==== Какого размера должны быть пиктограммы? ====
Действие: бранч 4.0-4.1.


[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html]
отличалась от Третьей редакции только требованием наличия пиктограмм 3-х размеров:  
16x16, 32x32, 48x48.


<cite>
Теперь, начиная с Третьей редакции, достаточно иметь только одну пиктограмму размера 48x48.
Installing Application Icons:
So, you're an application author, and want to install application
icons so that they work in the KDE and Gnome menus. Minimally you
should install a 48x48 icon in the hicolor theme. This means
installing a PNG file in $prefix/share/icons/hicolor/48x48/apps.  
</cite>


Самый минимум, по стандарту freedesktop.org, это 1 пиктограмма 48x48.
При необходимости, если оконный менеджер не умеет масштабировать пиктограммы, сервис
Но поскольку altlinux кроме KDE and Gnome содержит много других
[http://git.altlinux.org/people/viy/packages/?p=wm-common-pixmap-autoscaler.git;a=summary wm-common-pixmap-autoscaler]
оконных менеджеров, для их корректной поддержки полиси требует
позволяет автоматически создавать уменьшенные пиктограммы размеров 16x16 и 32x32.
обязательного наличия еще двух пиктограмм, 16х16, 32х32.


Наличие пиктограмм других размеров не обязательно, но если они есть,
==== Миграция с Второй редакции ====
лучше их тоже паковать.


==== В каком формате должны быть пиктограммы? ====
Не требуется. Пакеты, соответствующие Второй редакции, удоволетворяют и Третьей редакции.


[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html]
== Ссылки ==
<cite>
Нормативные:
The supported image file formats are PNG, XPM and SVG. PNG is the recommended bitmap format, and SVG is for vectorized icons. XPM is supported due to backwards compability reasons, and it is not recommended that new themes use XPM files. Support for SVGs is optional.
* [http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html fd.o Icon Theme Specification]
</cite>
Ненормативные:
 
* [[IconsPackaging|HOWTO по упаковке пиктограмм]]
Вкратце -- PNG, XPM и SVG. PNG рекомендуется,  XPM поддерживается для совместимости. SVG по возможности.
 
==== Куда класть пиктограммы? ====
&gt; Майнтайнерам пакетов нужно сердцем осознать, что это не хорошо --  &gt; Вася Пупкин устанавливает [[AltLinux|AltLinux]], запускает свой любимый  &gt; dtwfwm и видит, что у половины приложений иконок нет, хотя &gt; в том же KDE (Вася не любит KDE) все пиктограммы есть.
 
Чтобы приложение корректно отображалось в любом оконном менеджере из наличных в дистрибутиве,
майнтайнер должен озаботиться наличием 3-х иконок размером 16х16, 32х32 и 48х48 в каталогах
%_miconsdir/ (mini, 16x16) [/usr/share/icons/hicolor/16x16/apps]
%_liconsdir/ (large, 48x48) [/usr/share/icons/hicolor/48x48/apps]
%_niconsdir/ (normal, 32x32, [/usr/share/icons/hicolor/32x32/apps]
 
<div style="display: inline; color: red;">note:</div> раньше (включительно до М30) для этого места (32x32) вместо %_niconsdir/ использовался макрос %_iconsdir/.
Поправьте spec, если у Вас старый пакет. [http://lists.altlinux.org/pipermail/devel/2006-February/029139.html архив] )
 
При наличии этих пиктограмм их неотображение в меню оконного менеджера является '''багом'''
майнтайнера соответствующего '''оконного менеджера'''.
Если же их нет, то то неотображение их в меню оконного менеджера уже является '''багом'''
майнтайнера '''соответствующего пакета'''.
 
Если в пакете есть пиктограммы других размеров, то каноническим местом для них являются
подпапки %_iconsdir/hicolor вида %_iconsdir/hicolor/AAxBB/apps:
 
$ ls -al /usr/share/icons/hicolor
drwxr-xr-x  7 root root 4096 Мар 12 19:17 128x128
drwxr-xr-x  7 root root 4096 Мар 12 19:17 16x16
drwxr-xr-x  7 root root 4096 Мар 12 19:17 192x192
drwxr-xr-x  7 root root 4096 Мар 12 19:17 22x22
drwxr-xr-x  7 root root 4096 Мар 12 19:17 32x32
drwxr-xr-x  7 root root 4096 Мар 12 19:17 36x36
drwxr-xr-x  7 root root 4096 Мар 12 19:17 48x48
drwxr-xr-x  7 root root 4096 Мар 12 19:17 64x64
drwxr-xr-x  7 root root 4096 Мар 12 19:17 72x72
drwxr-xr-x  7 root root 4096 Мар 12 19:17 96x96
drwxr-xr-x  7 root root 4096 Мар 12 19:17 scalable
 
Где /usr/share/icons/hicolor/scalable/apps --- каноническое место для SVG пиктограмм.
 
Естественно, что ничего не мешает класть и в другие папки.
 
Более того,
я б советовал в случае, если всех нужных пиктограм нет и лень сваять
необходимые пиктограммы из имеющихся, то хотя бы бросить хоть какую то
нестандартного размера пиктограмму (в /usr/share/pixmaps ?),
возможно, буде пиктограмма в понимаемом этим оконным менеджером формате,
то он ее смасштабирует к нужному размеру.
Я такое наблюдал в icewm.
 
=== Настройка оконного менеджера ===
 
=== Ресурсы по теме ===
 
==== FAQ ====
&gt; Вчера заметил одну странную особенность Гнома 2.10: без видимых причин (читай: без обновления системы) пропали иконки из некоторых  &gt; пунктов меню. Расследование показало, что видятся иконки, лежащие в /usr/share/pixmaps, а те, которые лежали в /usr/share/icons --  &gt; пропали из поля зрения. После перекладывания иконок в /usr/share/pixmaps всё встало на свои места. Оставляя на совести майнтейнера  &gt; Гнома такое его поведение хочу спросить: так куда же правильнее их класть теперь?
[http://lists.altlinux.ru/pipermail/devel/2005-April/020373.html архив]
 
$ sudo apt-get install последний libgtk+2
$ rm -f /usr/share/{pixmaps,icons}/icon-theme.cache
 
[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html]
[http://lists.altlinux.ru/pipermail/devel/2005-April/020374.html архив]
 
----
&gt; Кстати, а как насчет /usr/share/icons/*.{xpm,png} и &gt; /usr/share/icons/{large,mini} - как они вписываются в эту схему? &gt; Надо ли класть значки туда?
 
Нужно класть в %_miconsdir, %_liconsdir, %_niconsdir.
/usr/share/icons/*.{xpm,png} и /usr/share/icons/{large,mini} --
это устаревшие пути, на которые ранее указывали макросы
%_liconsdir, %_miconsdir, %_iconsdir.
начиная с 3.0, эти макросы изменили свои значения, а
макрос %_iconsdir изменил свой смысл (устарел?),
и вместо него нужно использовать %_niconsdir.
 
Пакеты с указанными путями нужно пересобрать,  не забыв поменять
%_iconsdir
на
%_niconsdir
 
----
&gt;&gt; Этот вопрос меня тоже волнует.  &gt;&gt; Пока я для надёжности делаю так: &gt;&gt;пиктограмму кладу в /usr/share/pixmaps, а в /usr/share/icons делаю &gt;&gt;ссылку на неё. &gt; &gt;Это неправильно --- пропущена %_niconsdir. &gt;Правильно пиктограмму класть в %_niconsdir, (%_niconsdir != /usr/share/icons!!!) &gt;а в /usr/share/pixmaps  &gt;можно при желании положить ссылку на нее. <div style="display: inline; color: red;">(только какой уже в этом смысл?)</div> &gt; &gt;&gt;Если есть пиктограммы других размеров, то кладу их в &gt;&gt;%_miconsdir и %_liconsdir соответственно. &gt;Это правильно. &gt; &gt;&gt;Кстати, ранее высказывалась &gt;&gt;такая точка зрения, что единственным правильным местом для пиктограмм &gt;&gt;является /usr/share/pixmaps &gt;Это была злая шутка :(
 
----
&gt; А просто %_iconsdir больше не действует?
такой макрос есть, он указывает в $prefix/share/icons.
но это место больше не должно использоваться для размещения
пиктограмм. Для этого введен новый макрос %_niconsdir.
Старые пакеты использовали <br/>%_miconsdir, %_liconsdir, %_iconsdir, <br/>теперь нужно <br/>%_miconsdir, %_liconsdir, %_niconsdir. <br/>> > Это когда-то уже писалось, что в связи с переходом на freedesktop            &gt; > пиктограммы 32x32 надо перекладывать из %_iconsdir в %_niconsdir :( 
 
----
 
==== Обсуждение freedesktops.org и  menu policy. ====
по теме:
[http://lists.altlinux.org/pipermail/devel/2004-March/011968.html архив]
 
[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html]
Единственное место с упоминанием /usr/share/pixmaps следующее:
<cite>
Directory Layout:
Icons and themes are looked for in a set of directories. By default,
apps should look in $HOME/.icons (for backwards compatibility), in
$XDG_DATA_DIRS/icons and in /usr/share/pixmaps (in that order).
</cite>
В этом месте говорится только о том, что /usr/share/icons
имеет приоритет над /usr/share/pixmaps.
 
Более того, далее явно указывается /usr/share/icons как корень:
<cite>
Installing Application Icons:
So, you're an application author, and want to install application
icons so that they work in the KDE and Gnome menus. Minimally you
should install a 48x48 icon in the hicolor theme. This means
installing a PNG file in $prefix/share/icons/hicolor/48x48/apps.
</cite>


[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html]
[[Категория:Icons]]
[http://freedesktop.org/wiki/Standards_2ficon_2dtheme_2dspec http://freedesktop.org/wiki/Standards_2ficon_2dtheme_2dspec]
[http://live.gnome.org/ThemableAppIcons http://live.gnome.org/ThemableAppIcons]

Текущая версия от 11:27, 19 декабря 2012

Stamp90cw.png
Действующая политика Sisyphus

Политика действует, начиная со стабильного бранча 4.0 и выше.

Ответственный за проведение политики в жизнь — Игорь Власенко.

Нарушения политики отслеживаются: repocop icon_path тест статус


Политика упаковки пиктограмм. 3-я редакция.

Данная политика относится к упаковке пиктограмм, на которые ссылаются файлы меню оконных менеджеров.

Пиктограммы в .menu/.desktop-файлах

В .menu-файлах (Debian menu, старый формат) пиктограмма указывается параметром icon="icon.file". Значением параметра должно быть имя файла с пиктограммой и расширением, но без пути к файлу либо (не рекомендуется) полный путь к файлу.

В .desktop-файлах (freedesktop.menu, текущий формат) пиктограмма указывается параметром Icon=iconfile. Значением параметра должно быть имя иконки: имя файла с пиктограммой, но без расширения. Допускается, но не рекомендуется, указание имени с расширением или полного пути к файлу с пиктограммой.

Ссылки на пиктограмму из .menu/.desktop-файлов должны указывать на пиктограмму, упакованную по этой политике, и находящуюся либо в пакете с .menu/.desktop-файлом, либо в пакете, от которого зависит данный.

.menu/.desktop-файлы могут не ссылаться на пиктограммы вообще.

Формат пиктограмм

Допустимые форматы пиктограмм: растровые — PNG, XPM, векторый — SVG (в том числе сжатый gzip`ом — SVGZ). Пиктограммы в других форматах должны быть либо сконвертированы в перечисленные ранее, либо выкинуты при упаковке.

Именование пиктограмм

Имена файлов пиктограмм должны иметь расширения в нижнем регистре: .png, .xpm, .svg, .svgz для соответствующих типов.

Упаковка пиктограмм

Обязательна упаковка растровой пиктограммы размера 48x48.

Растровые пиктограммы других размеров и векторная пиктограмма рекомендуются к упаковке при наличии.

При наличии PNG и XPM пиктограмм одинакового размера можно не упаковывать XPM-пиктограмму (исправив .desktop/.menu файл при необходимости).

Расположение и размеры пиктограмм

Приложение может содержать как «общие» пиктограммы, так и пиктограммы для определённых «тем».

«Общие» пиктограммы

Должны упаковываться как пиктограммы темы hicolor.

Для упаковки пиктограмм размеров 16x16, 32x32, 48x48 имеются стандартные макросы

%_miconsdir/ (mini,  16x16) [/usr/share/icons/hicolor/16x16/apps]
%_niconsdir/ (normal,32x32) [/usr/share/icons/hicolor/32x32/apps]
%_liconsdir/ (large, 48x48) [/usr/share/icons/hicolor/48x48/apps]

Пиктограммы определённой «темы»

Векторные пиктограммы должны располагаться в директории /usr/share/icons/<тема>/scalable/apps.

Растровые пиктограммы должны располагаться в директориях /usr/share/icons/<тема>/WWxHH/apps, где WW и HH — ширина и высота пиктограммы в пикселях.

Регламентированное использование /usr/share/pixmaps как свалки пиктограмм.

Согласно freedesktop.org, папка /usr/share/pixmaps может использоваться как синоним %_iconsdir, т.е. как дополнительный корневой каталог для поиска тем и пиктограмм. В частности, в корневом каталоге ищутся неклассифицированные пиктограммы, что позволяет использовать его как свалку пиктограмм. В fedora эта папка используется в качестве %_liconsdir, так как туда принято складывать пиктограммы 48x48. Под влиянием fedora, как следствие заимствования .spec файлов, некоторое время назад стихийно возникла практика использовать /usr/share/pixmaps как синоним %_liconsdir, а также как свалку для пиктограмм разного размера, что есть плохо.

Поэтому предлагается использовать /usr/share/icons для упорядоченного хранения пиктограмм согласно стандарту, а /usr/share/pixmaps временно допускается, но не рекомендуется, использовать как свалку. Рекомендуется разгрести свалку в /usr/share/pixmaps заранее, так как следующая редакция полиси может ее полностью запретить.

Запрещается использовать /usr/share/icons как свалку для пиктограмм.

Использование /usr/share/pixmaps не рекомендуется, но допускается в указанных ниже случаях:

Допускается, но не рекомендуется, упаковка пиктограмм размера 48×48 в /usr/share/pixmaps. (рекомендуется перемещать все такие пиктограммы 48×48 в %_liconsdir).

Запрещается устанавливать темы в /usr/share/pixmaps.

Допускается, но не рекомендуется создавать приватные свалки пиктограмм в /usr/share/pixmaps/<name>/.

Не допускается упаковка пиктограмм в /usr/share/pixmaps размеров 16x16 и 32x32. (Требуется перемещать все такие пиктограммы в %_miconsdir (16x16) и %_niconsdir (32x32)).

Крайне не рекомендуется упаковка пиктограмм в /usr/share/pixmaps, размеров, отличных от размера 48×48. Как исключение, допускается наличие пиктограмм других размеров, если это единственная пиктограмма для приложения.

История изменений

Первая редакция

Действие: до Мастера 2.4 включительно.

Требовала наличие пиктограмм 3-х размеров (16x16, 32x32, 48x48) расположенных в /usr/share/icons{,/mini,/large} .

Эти пути были совместимы со старым Debian и старым Mandrake. Устарели после принятия стандарта freedesktop.org.

Миграция с Первой редакции

Необходимо изменить пути (желательно, используя макросы) согласно следующей таблицы.

Старый путь Новый путь Старый макрос Новый макрос
/usr/share/icons/mini /usr/share/icons/hicolor/16x16/apps %_miconsdir %_miconsdir
/usr/share/icons /usr/share/icons/hicolor/32x32/apps %_iconsdir %_niconsdir
/usr/share/icons/large /usr/share/icons/hicolor/48x48/apps %_liconsdir %_liconsdir

Вторая редакция

Действие: бранч 4.0-4.1.

отличалась от Третьей редакции только требованием наличия пиктограмм 3-х размеров: 16x16, 32x32, 48x48.

Теперь, начиная с Третьей редакции, достаточно иметь только одну пиктограмму размера 48x48.

При необходимости, если оконный менеджер не умеет масштабировать пиктограммы, сервис wm-common-pixmap-autoscaler позволяет автоматически создавать уменьшенные пиктограммы размеров 16x16 и 32x32.

Миграция с Второй редакции

Не требуется. Пакеты, соответствующие Второй редакции, удоволетворяют и Третьей редакции.

Ссылки

Нормативные:

Ненормативные: