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

Материал из ALT Linux Wiki
Строка 41: Строка 41:
Поэтому для получения списка оконных менеджеров и запуска оконного менеджера рекомендуется пользоваться командой {{cmd|runwm}}.
Поэтому для получения списка оконных менеджеров и запуска оконного менеджера рекомендуется пользоваться командой {{cmd|runwm}}.


==== Использование скриптов xinitrc для эмуляции стандарта Freedesktop ====
==== Использование скриптов {{pkg|xinitrc}} и {{cmd|runwm}} для эмуляции стандарта Freedesktop ====


===== WMNAME для скриптов xinitrc =====
===== WMNAME для {{cmd|runwm}} =====


Согласно новому [[УпаковкаWM|полиси по упаковке оконных менеджеров]] (Window Managers), последние декларируют себя в системе с помощью файлов {{path|/usr/share/xsessions/<name>.desktop}}.
Согласно новому [[УпаковкаWM|полиси по упаковке оконных менеджеров]] (Window Managers), последние декларируют себя в системе с помощью файлов {{path|/usr/share/xsessions/<name>.desktop}}.
Строка 57: Строка 57:
Пример:
Пример:
1) icewm имеет 1 desktop файл {{path|icewm-session.desktop}} с 'Name=IceWM Session', то <tt>WMNAME</tt> будет 'IceWM'.
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'.
2) icewm имеет 2 desktop файла {{path|org.icewm.icewm-session.desktop}} с 'Name=IceWM Session' и {{path|org.icewm.icewm-classic.desktop}}  с 'Name=IceWM Classic look&Feel' то <tt>WMNAME</tt> будут 'icewm-session' и 'icewm-classic'.


===== получения списка оконных менеджеров скриптами xinitrc =====
===== получения списка оконных менеджеров командой {{cmd|runwm}} =====


В файле {{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|/usr/share/xsessions/}} самостоятельно, не забыв добавить «default» для сессии по умолчанию.


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

Версия от 15:17, 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.

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

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

WMNAME для runwm

Согласно новому полиси по упаковке оконных менеджеров (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 файла org.icewm.icewm-session.desktop с 'Name=IceWM Session' и org.icewm.icewm-classic.desktop с 'Name=IceWM Classic look&Feel' то WMNAME будут 'icewm-session' и 'icewm-classic'.

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

В файле /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