Display Manager Policy: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 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). | |||
== | == поддержка выбора оконного менеджера (WM)/рабочей среды (DE) == | ||
=== DM, соответствующие стандарту Freedesktop === | |||
Ничего менять не требуется. | |||
Используется стандартный механизм, когда оконные менеджеры регистрируются в системе через <tt>.desktop</tt>-файлы в каталоге <tt>/usr/share/xsessions/</tt>. | |||
=== DM, не соответствующие стандарту Freedesktop === | |||
DM, не соответствующий стандарту Freedesktop, не умеет читать <tt>.desktop</tt>-файлы в каталоге <tt>/usr/share/xsessions</tt> напрямую. | |||
<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>в настоящее | Этот файл будет запускаться служебными скриптами<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'. | |||
===== получения списка оконных менеджеров скриптами xinitrc ===== | |||
В файле {{path|/etc/X11/wms-methods.d/DMmethod}} для получения списка всех WMNAME для установленных в системе оконных менеджеров можно воспользоваться командой {{cmd|runwm --list}}. Можно также распарсить файлы в {{path|/usr/share/xsessions/}} самостоятельно, не забыв добавить «default» для сессии по умолчанию. | |||
===== Запуск WM скриптами xinitrc ===== | |||
Для запуска оконного менеджера Display Manager должен вызывать команду {{cmd|/etc/X11/Xsession}} с параметром | |||
<tt>WMNAME</tt>. | |||
== pam == | == pam == |
Версия от 20:07, 31 октября 2021
Полиси по упаковке Display Manager’ов
История
- Версия 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 ???
Примечания
- ↑ в настоящее время — /usr/sbin/update_wms