WIP: Перенос на Weston
Этот Merge Request (ещё в работе...) переносит запуск ReadySet с оконного менеджера Cage на Weston. Преимущества:
- Нормальная работа с разными мониторами
- Хорошая поддержка разного оборудования (включая виртуальные машины, встройки). На Cage система могла намертво на программной отрисовке.
- Возможность сменить раскладку (в работе, пока не реализовал, но рабочие наработки уже есть)
Он также без проблем работает под сервисными пользователями или root. Также сделал маленький рефакторинг, например, перенёс код, отвечающий за операции после окончания работы ReadySet в ExecStop, чтобы он нормально инициализировался. И сами операции изменились, теперь это не удаление параметра, обновление GRUB и перезагрузка, а:
- Удаление
systemd.unit=setup.targetиз параметров ядра в GRUB - Удаление
weston.desktopсессии, это нужно для следующего шага - Запуск текущего Display Manager. Как раз прошлый шаг и нужен был, чтобы пользователь не мог зайти в Weston. Ранее у нас выполнялась команда перезагрузки, но я считаю это действие не особо нужным, ибо вход в нового пользователя и так по новой всё инициализирует. Единственное, возможно текущий уровень выполнения systemd нужно сразу менять, а не после перезагрузки, но я потом внимательнее это рассмотрю.
- Обновление GRUB и удаление Weston, ready-set и ready-set-service.
Мне не очень нравится текущий костыль с удалением параметра ядра из GRUB и его обновлением, по-хорошему у нас для этого есть systemctl set-default, но это не приоритетная задача на данный момент и к этому можно будет вернуться позже. Есть также проблемы с тем, что некоторые лишние зависимости всё равно остаются. В теории можно было бы использовать apt-get autoremove, но это более долгая операция, поэтому не стоит.
Но текущее решение работает без критических проблем, проверял на разных сборках. Есть некоторые вещи, которые мне ещё не нравятся, но их решить возможно. Например, в /root директории появляются GTK-конфиги (это можно исправить средствами systemd). Займусь моментами изоляции после выхода нового ReadySet.
-
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