[devel] DM Policy 2.1 Обсуждение: сессии wayland и обвязка к ним

Igor Vlasenko vlasenko на imath.kiev.ua
Сб Ноя 27 01:31:01 MSK 2021


Уважаемые коллеги!

Хочу форкнуть из обсуждения Display_Manager_Policy 2.0
[
https://www.altlinux.org/Display_Manager_Policy
]
обсуждение темы "поддержка Wayland в Display_Manager"
по итогам которой, возможно, будет сформулировано
Display_Manager_Policy 2.1.

Затравку для обсуждения этой темы я выложил здесь.

https://www.altlinux.org/Display_Manager_Policy#Wayland


Проблема.
Не наработана системная обвязка для сессий Wayland.

Текст внизу предварительный и нуждается в обсуждении и уточнении.

Отличия классической сессии X от сессии Wayland.

Сводная таблица отличий.
{| class="standard"
! 
! сессия X
! сессия Wayland
|-
| сервер
| требуется уже запущенный X сервер.
| не требуется. Приложение запускает его самостоятельно
|-
| ограничения
| X приложение.
| нет. Что угодно. wayland compositor, fb app, console app,<br>X app (должна сама запускать себе X)
|-
| запуск
| нет требований. Сойдет fork+exec в текущем VT
| аналог openvt -s -- <wsession script>
|-
| обертка D-BUS
| dbus-launch --exit-with-x11 <xsession-script>
| dbus-run-session <wsession script>
|}

Следствие.
сессии Wayland в принципе не могут использовать старую схему
с запуском /etc/X11/Xsession как посредника.
Хотя бы потому, что /etc/X11/Xsession должен быть запущен
в сеансе X-cервера, вызывает утилиты X и без X-cервера
вылетит с ошибкой. 

Также почти все, что делает /etc/X11/Xsession, бессмысленно вне X.
Исключение - 
 /etc/X11/profile.d
но там у нас по сути нет ничего конкретно для X. Можно ввести какой-нибудь
 /etc/user-session/profile.d
и перенести бывшее в /etc/X11/profile.d туда (ssh-agent.sh xdg-user-dirs.sh ...)


В итоге гипотетический помощник ALT для сессии Wayland должен вызвать
 условный /etc/user-session/profile.d
и проконтролировать наличие пользовательской сессии D-BUS,
обернув при необходимости вызов сессии Wayland в dbus-run-session.
Это может быть не только скрипт, но и, 
к примеру, специально написанный для ALT pam модуль.

Также добавил по заказу Сергея Турчина (zerg@) в wm-select (dev version)
поддержку отображения wayland-sessions (но пока без полноценного запуска). 

./wm-select --no-x --wayland --xdg --print


============================================================

Выношу в отдельную поддискуссию в связи с важностью wayland 
и чтобы не смешивать с обсуждением проекта политики 2.0
(отказ от wmsession.d через миграцию xinitrc на новый runwm
(пока упакован в wm-select, как runwm.test.)

Cм. 

https://bugzilla.altlinux.org/show_bug.cgi?id=41367

#289869 TESTED #1 [test-only] sisyphus wm-select.git=0.9.8-alt2 xinitrc.git=2.4.47-alt3

$ runwm.test --help
runwm is compiled to use /etc/X11/wmsession.d by default.
Usage: runwm <window manager> [args(ignored)]
       runwm --print <window manager> [args(ignored)]
       runwm --list
       runwm --help

Extra options:
 --help this help
 -v,--verbose   verbose
 -q,--quiet     quiet
 --print        do nothing; just print command to execute
 --alt,--altlinux | --deb,--debian      use /etc/X11/wmsession.d
 --xdg,--freedesktop    use /usr/share/xsessions

-- 

I V


Подробная информация о списке рассылки Devel