WIP: Перенос на Weston
Этот MR переносит запуск ReadySet с оконного менеджера Cage на Weston. Преимущества:
- Нормальная работа с разными мониторами
- Хорошая поддержка разного оборудования (включая виртуальные машины, встройки). На Cage система могла намертво на программной отрисовке.
- Возможность сменить раскладку
- Поддержка глобального масштабирования (в работе...)
Weston запускается с kiosk-shell. Xwayland включен, а ReadySet временно запускается с GDK_BACKEND=x11. Это обход ошибки Weston, из-за которой GTK-приложение после ввода текста визуальный курсор и его хитбокс рассинхронились. После появления исправленной версии Weston можно будет повторно проверить нативный Wayland:
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/2147
Запуск сервиса
По умолчанию ReadySet теперь работает от отдельного системного пользователя ready-set, а не от root. Для него задаются отдельные:
-
HOMEи рабочий каталог в/var/lib/ready-set; - runtime-каталог в
/run/ready-set-service; - ограничения systemd на доступ к файловой системе, сети и системным ресурсам.
Это также предотвращает появление GTK-конфигурации в /root. При необходимости ReadySet по-прежнему можно запускать от root.
Конфигурация ReadySet создается перед запуском и явно задает используемые шаги: приветствие, выбор языка и создание пользователя. Необходимые плагины и компоненты Weston/Xwayland добавлены в зависимости пакета.
Завершение первоначальной настройки
Операции после выхода из ReadySet перенесены в привилегированный ExecStopPost. Сам интерфейс работает от сервисного пользователя, а требующие root операции выполняются отдельно.
Перед очисткой проверяется, что в системе действительно появился обычный пользователь. Если пользователь не был создан, очистка не выполняется и ReadySet перезапускается.
После успешного завершения выполняются следующие действия:
-
systemd.unit=setup.targetудаляется из/etc/sysconfig/grub2и уже сгенерированной конфигурации GRUB. - Удаляется
/usr/share/wayland-sessions/weston.desktop, чтобы Weston не предлагался пользователю как обычная сессия. - Запускается
graphical.targetи текущий Display Manager без дополнительной перезагрузки. - Удаляются временные компоненты первоначальной настройки: Weston, ReadySet и
ready-set-service.
Что осталось
- Добавить поддержку глобального масштабирования, чтобы на дисплеях с большим разрешением не было мелковато (уже подготовил, пока тестирую)
- Дождаться исправления смещения курсора в Weston
- Дождаться исправленной версии Weston в Sisyphus.
- Доработать changelog в спеке пакета (я сам пока не редактировал)
- Принять данный PR в mkimage-profiles
- Отключить из пакета установщика страницы настройки пользователя
-
Maintainer
Провёл тестирование своего Merge Request с последней версией ready-set 0.3.1. Теперь не работает, ReadySet в целом не запускается, ибо ему нужна предварительная настройка. Займусь позже.
(ready-set-ruler:4156): org.altlinux.ReadySet-ERROR **: 02:16:23.748: utils.vala:90: Failed to generate rules: Error opening directory '/usr/share/ready-set/rules.d': No such file or directory (ready-set:4064): org.altlinux.ReadySet-ERROR **: 02:16:23.748: application.vala:85: Failed to generate rules: Дочерний процесс убит по сигналу 5 -
Toggle commit list
-
changed the description
Toggle commit list -
changed the description
Toggle commit list -