[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