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

Материал из ALT Linux Wiki
Строка 45: Строка 45:
===== WMNAME для скриптов xinitrc =====
===== WMNAME для скриптов xinitrc =====


<!--
Согласно новому [[УпаковкаWM|полиси по упаковке оконных менеджеров]] (Window Managers), последние декларируют себя в системе с помощью файлов {{path|/usr/share/xsessions/<name>.desktop}}.
Согласно [[УпаковкаWM|полиси по упаковке оконных менеджеров]] (Window Managers), последние декларируют себя в системе с помощью файлов {{path|/etc/X11/wmsession.d/NNname}}.
В поле <tt>NAME=</tt> этого файла указывается уникальная строка-название оконного менеджера. Далее эту строку будем называть <tt>WMNAME</tt>.  


Кроме <tt>WMNAME</tt>-ов, полученных из файлов {{path|/etc/X11/wmsession.d/NNname}}, существует специальное <tt>WMNAME</tt> «default» для сессии по умолчанию.
Для каждого валидного и не скрытого (<tt>Hidden=true</tt>) desktop файла команда rundm --list выдаст уникальную не содержащую пробелов строку-название оконного менеджера <tt>WMNAME</tt>, которую можно отобразить в меню DE и при выборе пользователя передать в команду {{cmd|/etc/X11/Xsession}}.
-->
 
Согласно [[УпаковкаWM|полиси по упаковке оконных менеджеров]] (Window Managers), последние декларируют себя в системе с помощью файлов {{path|/usr/share/xsessions/<name>.desktop}}. Для каждого desktop файла команда rundm --list выдаст строку <tt>WMNAME</tt>, которую можно передать команду {{cmd|/etc/X11/Xsession}}.


Кроме <tt>WMNAME</tt>-ов, полученных из файлов {{path|/usr/share/xsessions/*.desktop}}, существует специальное <tt>WMNAME</tt> «default» для сессии по умолчанию.
Кроме <tt>WMNAME</tt>-ов, полученных из файлов {{path|/usr/share/xsessions/*.desktop}}, существует специальное <tt>WMNAME</tt> «default» для сессии по умолчанию.


Реализация для <tt>WMNAME</tt> будет определена в новом релизе пакета {{pkg|xinitrc}}.
Реализация для <tt>WMNAME</tt> определена в {{prg|runwm}}.
 
Возможная реализация:


В поле <tt>Name=</tt> desktop файла указывается уникальная строка-название оконного менеджера.  
Текущая реализация <tt>WMNAME</tt>:
Далее первое слово этой строки будем называть <tt>WMNAME</tt>. К примеру, для 'Name=IceWM Session' WMNAME будет 'IceWM'.
Берется первое слово из поля <tt>Name=</tt> desktop файла. Если оно не уникально, то берется имя desktop файла без суффикса DNS и префикса .desktop. Иначе берется имя desktop файла.
Пример:
1) icewm имеет 1 desktop файл {{path|icewm-session.desktop}} с 'Name=IceWM Session', то <tt>WMNAME</tt> будет 'IceWM'.
2) icewm имеет 2 desktop файла {{path|icewm-session.desktop}} с 'Name=IceWM Session' и {{path|icewm-classic.desktop}}  с 'Name=IceWM Classic look&Feel' то <tt>WMNAME</tt> будут 'icewm-session' и 'icewm-classic'.


===== получения списка оконных менеджеров скриптами xinitrc =====
===== получения списка оконных менеджеров скриптами xinitrc =====

Версия от 18:04, 13 ноября 2021

Полиси по упаковке Display Manager’ов

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

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

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


История

  • Версия 1.0 (с бранча 5.1)
  • Версия 2.0 (с бранча 10). Вынесена на обсуждение (переезд на стандарт Freedesktop; поддержка /etc/X11/wms-methods.d оставлена для DM, не соответствующих стандарту Freedesktop). metabug

поддержка выбора оконного менеджера (WM)/рабочей среды (DE)

DM, соответствующие стандарту Freedesktop

Ничего менять не требуется. Используется стандартный механизм, когда оконные менеджеры регистрируются в системе через .desktop-файлы в каталоге /usr/share/xsessions/.

DM, не соответствующие стандарту Freedesktop

DM, не соответствующий стандарту Freedesktop, не умеет читать .desktop-файлы в каталоге /usr/share/xsessions напрямую.

Обновление меню Display Manager’а

Для обновления своего меню Display Manager должен предоставлять метод-файл /etc/X11/wms-methods.d/DMmethod.

Этот файл будет запускаться служебными скриптами[1] каждый раз при установке, обновлении, удалении оконных менеджеров, а также при установке и обновлении самого Display Manager’а. Служебный скрипт вызывается из файл-триггера пакета xinitrc автоматически.

Метод-файл /etc/X11/wms-methods.d/DMmethod должен быть исполняемым.


Известное исключение:

Sergey V Turchin> kdm из kde3/4: они пользуются сами `runwm --list`

Запуск оконного менеджера

Скрипты обновления меню для Display Manager'а может осуществлять парсинг файлов в /usr/share/xsessions/ и запуск оконного менеджера самостоятельно. Однако поскольку DM не соответствует стандарту Freedesktop, то он скорее всего не производит всех необходимых действий, тербуемых стандартом, к примеру, не выставляет переменную окружения $XDG_CURRENT_DESKTOP.

Поэтому для получения списка оконных менеджеров и запуска оконного менеджера рекомендуется пользоваться скриптами из пакета xinitrc.

Использование скриптов xinitrc для эмуляции стандарта Freedesktop

WMNAME для скриптов xinitrc

Согласно новому полиси по упаковке оконных менеджеров (Window Managers), последние декларируют себя в системе с помощью файлов /usr/share/xsessions/<name>.desktop.

Для каждого валидного и не скрытого (Hidden=true) desktop файла команда rundm --list выдаст уникальную не содержащую пробелов строку-название оконного менеджера WMNAME, которую можно отобразить в меню DE и при выборе пользователя передать в команду /etc/X11/Xsession.

Кроме WMNAME-ов, полученных из файлов /usr/share/xsessions/*.desktop, существует специальное WMNAME «default» для сессии по умолчанию.

Реализация для WMNAME определена в runwm.

Текущая реализация WMNAME: Берется первое слово из поля Name= desktop файла. Если оно не уникально, то берется имя desktop файла без суффикса DNS и префикса .desktop. Иначе берется имя desktop файла. Пример: 1) icewm имеет 1 desktop файл icewm-session.desktop с 'Name=IceWM Session', то WMNAME будет 'IceWM'. 2) icewm имеет 2 desktop файла icewm-session.desktop с 'Name=IceWM Session' и icewm-classic.desktop с 'Name=IceWM Classic look&Feel' то WMNAME будут 'icewm-session' и 'icewm-classic'.

получения списка оконных менеджеров скриптами xinitrc

В файле /etc/X11/wms-methods.d/DMmethod для получения списка всех WMNAME для установленных в системе оконных менеджеров можно воспользоваться командой runwm --list. Можно также распарсить файлы в /usr/share/xsessions/ самостоятельно, не забыв добавить «default» для сессии по умолчанию.

Запуск WM скриптами xinitrc

Для запуска оконного менеджера Display Manager должен вызывать команду /etc/X11/Xsession с параметром WMNAME.

Интеграция с системными темами branding-*

фон по умолчанию

Рекомендуется выставлять в настройках Display Manager фон (wallpaper) по умолчанию как

/usr/share/design/current/backgrounds/xpm.png

Чтобы файл /usr/share/design/current/backgrounds/xpm.png существовал бы в файловой системе, надо добавить в зависимости

Requires: design-graphics

pam

на момент версии 2.0 раздел pam является заглушкой.

Похоже, что конфигурация pam для DM нуждается в стандартизации на уровне дистрибутива.

Планируется со временем собрать рекомендации по настройке pam и выпустить на их основе проект этого полиси версии 2.1.

Примечания

  1. в настоящее время — /usr/sbin/update_wms