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

Материал из ALT Linux Wiki
Строка 73: Строка 73:
== pam ==
== pam ==


Нужна ли стандартизация или рекомендации по настройке pam ???
на момент версии 2.0 раздел pam является заглушкой.
Если такие будут, выпустить на их основе проект этого полиси v. 2.1.
 
Похоже, что конфигурация pam для DM нуждается в стандартизации на уровне дистрибутива.
 
Планируется со временем собрать рекомендации по настройке pam и выпустить на их основе проект этого полиси версии 2.1.


== Примечания ==
== Примечания ==

Версия от 23:06, 10 ноября 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)

поддержка выбора оконного менеджера (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. Для каждого desktop файла команда rundm --list выдаст строку WMNAME, которую можно передать команду /etc/X11/Xsession.

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

Реализация для WMNAME будет определена в новом релизе пакета xinitrc.

Возможная реализация:

В поле Name= desktop файла указывается уникальная строка-название оконного менеджера. Далее первое слово этой строки будем называть WMNAME. К примеру, для 'Name=IceWM Session' WMNAME будет 'IceWM'.

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

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

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

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

pam

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

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

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

Примечания

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