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

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{span|font-size: 180%|}}
{{span|font-size: 180%|Полиси по упаковке Display Manager’ов}}
{{Policy
{{Policy
|since_branch=5.1
|since_branch=5.1
|responsible=Igor Vlasenko
|responsible=Igor Vlasenko
}}
}}
== История ==
* Версия 1.0 (с бранча 5.1)
* Версия 2.0 (с бранча 10) [Вынесена на обсуждение] (переезд на стандарт Freedesktop; поддержка {{path|/etc/X11/wms-methods.d}} оставлена для DM, не соответствующих стандарту Freedesktop).


== Полиси по упаковке Display Manager’ов (устарела) ==
== поддержка выбора оконного менеджера (WM)/рабочей среды (DE) ==


Полиси устарела. Сейчас оконные менеджеры регистрируются в системе через <tt>.desktop</tt>-файлы в каталоге <tt>/usr/share/xsessions/</tt>.
=== DM, соответствующие стандарту Freedesktop ===


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


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


==== Запуск WM ====
DM, не соответствующий стандарту Freedesktop, не умеет читать <tt>.desktop</tt>-файлы в каталоге <tt>/usr/share/xsessions</tt> напрямую.
Для запуска оконного менеджера Display Manager должен вызывать команду {{cmd|/etc/X11/Xsession}} с параметром
<tt>WMNAME</tt>.


==== Обновление меню Display Manager’а ====
==== Обновление меню Display Manager’а ====
Строка 24: Строка 23:
Для обновления своего меню Display Manager ''должен'' предоставлять метод-файл {{path|/etc/X11/wms-methods.d/DMmethod}}.
Для обновления своего меню Display Manager ''должен'' предоставлять метод-файл {{path|/etc/X11/wms-methods.d/DMmethod}}.


Этот файл будет запускаться служебными скриптами<ref>в настоящее время — {{cmd|/usr/sbin/update_wms}}</ref> каждый раз при установке, обновлении, удалении оконных менеджеров, а также при установке и обновлении  самого Display Manager’а.
Этот файл будет запускаться служебными скриптами<ref>в настоящее время — {{cmd|/usr/sbin/update_wms}}</ref> каждый раз при установке, обновлении, удалении оконных менеджеров, а также при установке и обновлении  самого Display Manager’а.
 
Служебный скрипт вызывается из файл-триггера пакета {{pkg|xinitrc}} автоматически.
Служебный скрипт вызывается из файл-триггера пакета {{pkg|xinitrc}} автоматически, поэтому использовать устаревшие макросы <tt>%update_wms</tt>/<tt>%clean_wms</tt> ''не нужно''.
<!--, поэтому использовать устаревшие макросы <tt>%update_wms</tt>/<tt>%clean_wms</tt> ''не нужно''.-->


Метод-файл {{path|/etc/X11/wms-methods.d/DMmethod}} ''должен'' быть исполняемым.
Метод-файл {{path|/etc/X11/wms-methods.d/DMmethod}} ''должен'' быть исполняемым.
Строка 33: Строка 32:


Известное исключение:  
Известное исключение:  
Sergey V Turchin> kdm из kde3/4: они пользуются сами `runwm --list`
==== Запуск оконного менеджера ====
Display Manager может осуществлять парсинг файлов в <tt>/usr/share/xsessions/</tt> и запуск оконного менеджера самостоятельно.
Однако поскольку DM не соответствует стандарту Freedesktop, то он скорее всего не производит всех необходимых действий, тербуемых стандартом, к примеру, не выставляет переменную окружения {{cmd|$XDG_CURRENT_DESKTOP}}.
Поэтому для получения списка оконных менеджеров и запуска оконного менеджера рекомендуется пользоваться скриптами из пакета {{pkg|xinitrc}}.
==== Использование скриптов xinitrc для эмуляции стандарта Freedesktop ====
===== WMNAME для скриптов xinitrc =====
<!--
Согласно [[Упаковка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» для сессии по умолчанию.
-->
Согласно [[Упаковка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> будет определена в новом релизе пакета {{pkg|xinitrc}}.
Возможная реализация:
В поле <tt>Name=</tt> desktop файла указывается уникальная строка-название оконного менеджера.
Далее первое слово этой строки будем называть <tt>WMNAME</tt>. К примеру, для 'Name=IceWM Session' WMNAME будет 'IceWM'.


Sergey V Turchin> kdm из kde3/4: они пользуются сами `runwm --list`
===== получения списка оконных менеджеров скриптами xinitrc =====


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


В файле {{path|/etc/X11/wms-methods.d/DMmethod}} для получения списка всех WMNAME для установленных в системе оконных менеджеров можно воспользоваться командой {{cmd|runwm --list}}. Можно также распарсить файлы {{path|/etc/X11/wmsession.d/NNname}} самостоятельно, не забыв добавить «default» для сессии по умолчанию.
===== Запуск WM скриптами xinitrc =====
Для запуска оконного менеджера Display Manager должен вызывать команду {{cmd|/etc/X11/Xsession}} с параметром
<tt>WMNAME</tt>.


== pam ==
== pam ==

Версия от 17:07, 31 октября 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

Рекомендации по настройке pam ???

Примечания

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