Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/devel/УпаковкаWM ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Упаковка оконных менеджеров (WM)

Интеграция с менеджером сессий (*dm)


Каждый менеджер сессий имеет свой конфигурационный файл, в котором перечислены все установленные оконные менеджеры. При запуске он читает их из своего конфигурационного файла и отображает пользователю. Для того, чтобы облегчить труд майнтейнеров оконных менеджеров, в ALT Linux был создан и используется скрипт, который автоматически добавляет/удаляет запись об оконном менеджере в конфигурационные файлы менеджеров сессий (поддерживаются KDM, GDM и WDM). Этот скрипт находится в /usr/sbin и называется update_wms. Для того, чтобы его вызвать, нужно в spec-файл добавить следующую запись:



Таким образом мы обеспечим вызов скрипта update_wms после установки пакета, чтобы добавить запись о новом менеджере окон, и после удаления пакета из системы, чтобы удалить запись о новом WM.


Вся информация о свежеустановленном оконном менеджере должна находиться в файле /etc/X11/wmsession.d/XY Вместо 'X' следует подставить приоритет оконного менеджера, выраженный в числовой форме. Числа от 1 до 9 должны также предваряться нулем. Вместо 'Y' укажите название оконного менеджера.


Формат файла с информацией о WM следующий:



Таким образом, чтобы информация о новом оконном менеджере стала известна скрипту update_wms, мы должны добавить в наш spec-файл следующие строчки (пример для Fluxbox):


Этот файл необязательно создавать в spec-файле. Можно создать его отдельно и добавить в спек только следующие строчки:



(с) Slava Semushin
Добавлено: 06/12/2004

Поиск иконок для меню


Этот раздел выделен из policy и всё ещё местами ссылается на него.

Порядок поиска пиктограмм


Из вышесказанного следует, что правильно настроенный оконный менеджер
должен искать пиктограммы в следующем порядке:


если он поддерживает SVG, то сначала в 
/usr/share/icons/<theme>/scalable/apps.
и в /usr/share/icons/hicolor/scalable/apps,


если он поддерживает темы, то затем в 
/usr/share/icons/<theme>/<SIZExSIZE>/apps.


Затем в любом случае смотрит
/usr/share/icons/hicolor/<SIZExSIZE>/apps,
где по выбору <SIZExSIZE> это одно из 16х16, 32х32 и 48х48 по выбору.


Если оконный менеджер поддерживает масштабирование иконок, то затем
смотрит в /usr/share/icons/<theme>/48х48/apps, и в
/usr/share/icons/hicolor/48х48/apps (минимально гарантированная
пиктограмма).


Если оконный менеджер поддерживает масштабирование иконок, то
дополнительно смотрим в /usr/share/icons/ и в /usr/share/pixmaps
для совместимости с пакетами, которые бросают пиктограммы куда попало.

> /usr/share/icons – это старое стандартное положение иконок в ALT
> /usr/share/pixmaps – чисто GNOME
> Добавить можно обе.

Замечание: Вышеуказанный алгоритм --- некоторое приближение и упрощение для 
настройки оконных менеджеров, не поддерживающих freedesktop menu, в условиях Alt Linux?.
подробный алгоритм выписан на 
http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

Где прописывать пути


Есть 2 возможности: список путей в оконном менеджере
(если в нем есть такая возможность) и список путей в 
соответствующем методе для menu-methods (для оконных менеджеров,
не поддерживающих напрямую freedesktop menu).


Разберем это на примере Ice WM?.
Ice WM? поддерживает список путей в оконном менеджере,
поэтому пути прописываем в параметре Icon Path? конфигурации.


Ice WM? не поддерживает напрямую freedesktop menu,
но функцию findicon можно взять попроще:


function findicon($filename, $defaulticon)= \
ifeqelse($filename, , $defaulticon, replace(replace($filename, “.xpm”,), ".png",))

Если бы IceWM не поддерживал список путей, то их пришлось бы вбивать
в findicon наподобие следующего (размер пиктограмм 16x16):

function findicon($filename, $defaulticon)= \
ifeqelse($filename, , $defaulticon, \

ifelsefile($filename, $filename, \
ifelsefile(«/usr/share/icons/hicolor/16x16/apps/» $filename, «/usr/share/icons/default.kde/16x16/apps/» $filename, \
ifelsefile(«/usr/share/icons/hicolor/48x48/apps/» $filename, «/usr/share/icons/default.kde/32x32/apps/» $filename, \
ifelsefile(«/usr/share/icons/hicolor/32x32/apps/» $filename, «/usr/share/icons/hicolor/16x16/apps/» $filename, \
ifelsefile(«/usr/share/icons/slick/16x16/apps/» $filename,
«/usr/share/icons/slick/16x16/apps/» $filename, \
ifelsefile(«/usr/share/icons/mini/» $filename, «/usr/share/icons/mini/» $filename, \
ifelsefile(«/usr/share/pixmaps/» $filename, «/usr/share/pixmaps/» $filename, \

$defaulticon))))))))\


Страницы, ссылающиеся на данную: PhpCoder


 
Файлов нет. [Показать файлы/форму]
Комментарии [Скрыть комментарии/форму]