LightDM KDE greeter — собственное решение ALT Linux для графического входа в систему (Антон Голубев, OSSDEVCONF-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Новая страница: «;{{SpeakerInfo}}: {{Speaker|Антон Голубев}} <blockquote> Рассказывается история LightDM KDE greeter — одной из обол…») |
StasFomin (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Антон Голубев}}
<blockquote>
Рассказывается история LightDM KDE greeter — одной из оболочек для LightDM, разрабатываемой ALT Linux, для дистрибутивов, основанных на KDE.
Обсуждаются текущие возможности, альтернативы и причины разработки собственного проекта.
Рассматриваются проблемы, решённые, не решённые и не решаемые в принципе, варианты дальнейшего развития проекта, оптимистичные и не очень.
</blockquote>
{{VideoSection}}
{{vimeoembed|1159717320|800|450}}
{{youtubelink|}}
|QtZ2uD7VKiY}}
{{SlidesSection}}
[[File:LightDM KDE greeter — собственное решение ALT Linux для графического входа в систему (Антон Голубев, OSSDEVCONF-2025).pdf|left|page=-|300px]]
{{----}}
== Thesis ==
Ключевые слова: LightDM, KDE, менеджер входа, аутентификация, PAM.
Если у вас дистрибутив ALT Linux с рабочим столом Plasma, вы, скорее всего, видите на экране LightDM KDE greeter, когда вводите пароль при входе в систему (см. Рис. 1).
[[File:2025-.png.
[[File:|thumb|LightDM KDE greeter.]]
— собственное решение ALT Linux для графического входа в систему (Антон Голубев, OSSDEVCONF-2025).pdf|center|page=2|640px]]
Это программа, представляющая из себя одну из оболочек (гритеров) к экранному менеджеру LightDM. Это можно считать особенностью LightDM — сам он не имеет графического интерфейса и без оболочки способен лишь осуществить автологин. Для взаимодействия с пользователем нужна оболочка — графическое приложение, которому предоставляется API для взаимодействия с LightDM. Подобную архитектуру имеет также проект greetd.
Итак, основная задача менеджера входа — аутентифицировать пользователя и запустить графический сеанс. Казалось бы, что тут разрабатывать, и скорее всего существует множество готовых решений.=== Архитектура LightDM KDE greeter === [[File:2025-arch-exp.png|center|64greeter.svg|center|720px|thumb|Архитектура LightDM KDE greeter.]] Немного о том, как работает LightDM и какова роль LightDM KDE greeter. LightDM запускается как служба systemd <code>display-manager</code> с правами root. Затем LightDM запускает на каждом рабочем месте оболочку, в данном случае LightDM KDE greeter, под служебным пользователем <code>_ldm</code> с правами обычного пользователя. Таким образом достигается изоляция кода оболочки. Если оболочка является X11-приложением, LightDM предварительно запускает X-сервер. Если гритер сконфигурирован как Wayland-приложение, запуск композитора (kwin, sway, cage) выполняется самим гритером. В настоящий момент LightDM KDE greeter работает под X11, однако ведётся работа по переводу его на Wayland, в частности с использованием <code>kwin_wayland</code>. | |||
Текущая версия на 15:18, 5 февраля 2026
- Докладчик
- Антон Голубев
Рассказывается история LightDM KDE greeter — одной из оболочек для LightDM, разрабатываемой ALT Linux, для дистрибутивов, основанных на KDE.
Обсуждаются текущие возможности, альтернативы и причины разработки собственного проекта.
Рассматриваются проблемы, решённые, не решённые и не решаемые в принципе, варианты дальнейшего развития проекта, оптимистичные и не очень.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: LightDM, KDE, менеджер входа, аутентификация, PAM.
Если у вас дистрибутив ALT Linux с рабочим столом Plasma, вы, скорее всего, видите на экране LightDM KDE greeter, когда вводите пароль при входе в систему.
Это программа, представляющая из себя одну из оболочек (гритеров) к экранному менеджеру LightDM. Это можно считать особенностью LightDM — сам он не имеет графического интерфейса и без оболочки способен лишь осуществить автологин. Для взаимодействия с пользователем нужна оболочка — графическое приложение, которому предоставляется API для взаимодействия с LightDM. Подобную архитектуру имеет также проект greetd.
Итак, основная задача менеджера входа — аутентифицировать пользователя и запустить графический сеанс. Казалось бы, что тут разрабатывать, и скорее всего существует множество готовых решений.
Посмотрим на них:
- Entrance — экранный менеджер Enlightenment
- GDM — экранный менеджер GNOME
- LXDM — экранный менеджер LXDE, может быть использован отдельно от среды рабочего стола LXDE
- SDDM — экранный менеджер, основанный на QML, продолжение KDE4 kdm, рекомендуется для Plasma 5 и LXQt
- XDM — экранный менеджер Xorg по умолчанию
- LightDM — независимый от среды рабочего стола экранный менеджер, можно подключать различные фронтенды с любыми тулкитами
- greetd — минимальный, гибкий и независимый демон входа в систему, который поддерживает как консольные, так и графические интерфейсы
Учитывая, что у LightDM и greetd существует множество оболочек, вариантов действительно много. Однако если требуется более продвинутая функциональность, например настройка подключения к сети внутри дисплейного менеджера, на данный момент фактически доступны только два решения, работающих «из коробки»: GDM и LightDM KDE greeter. Поскольку GDM сильно зависит от GNOME, использовать его для Plasma нецелесообразно, и остаётся единственный вариант. Стоит отметить, что функциональность настройки сети полностью реализована внутри гритера и разработана в ALT Linux.
Особенности LightDM KDE greeter[править | править вики-текст]
- написан с использованием KDE Frameworks
- поддерживаются сменные темы на QML
- есть графический интерфейс настроек через «Параметры системы» Plasma
- «PAM-нейтральный» дизайн — должна работать любая процедура аутентификации
- настройка сети, подключение к Wi-Fi точке доступа, в том числе по протоколу 802.1x
- подключение к VPN (OpenVPN)
А также благодаря LightDM:
- поддержка рабочих мест (seat)
- поддержка удалённого подключения по VNC и XDMCP
- поддержка автоматического логина
- возможность «смены пользователя»
- использование в качестве блокировщика экрана
Архитектура LightDM KDE greeter[править | править вики-текст]
Немного о том, как работает LightDM и какова роль LightDM KDE greeter. LightDM запускается как служба systemd display-manager с правами root. Затем LightDM запускает на каждом рабочем месте оболочку, в данном случае LightDM KDE greeter, под служебным пользователем _ldm с правами обычного пользователя. Таким образом достигается изоляция кода оболочки. Если оболочка является X11-приложением, LightDM предварительно запускает X-сервер. Если гритер сконфигурирован как Wayland-приложение, запуск композитора (kwin, sway, cage) выполняется самим гритером. В настоящий момент LightDM KDE greeter работает под X11, однако ведётся работа по переводу его на Wayland, в частности с использованием kwin_wayland.
После запуска гритер получает от LightDM данные о пользователях и доступных сеансах (Plasma, GNOME и т. д.), загружает QML-тему и отображает её на экране, ожидая действий пользователя. Получив имя пользователя, гритер инициирует процесс аутентификации через LightDM, полностью управляемый PAM, отображает сообщения PAM и запрашивает ввод необходимых данных. Это может быть пароль, отпечаток пальца, распознавание лица или доменная аутентификация. При успешной аутентификации гритер запрашивает запуск пользовательской сессии, после чего LightDM завершает работу гритера и запускает сеанс пользователя.
История разработки LightDM KDE greeter[править | править вики-текст]
Изначально гритер разрабатывался сообществом KDE, в основном Дэвидом Эдмундсоном. Первый коммит был сделан 29 ноября 2011 года, а в октябре 2012 года он заменил kdm в Kubuntu. Изначально предполагалась длительная поддержка проекта, так как использование LightDM позволяло упростить разработку и в перспективе обеспечить поддержку Wayland. Однако после смены приоритетов Canonical и фокуса на Mir интерес к проекту со стороны KDE снизился, и разработка была фактически остановлена. В 2015 году SDDM заменил LightDM KDE greeter в Kubuntu, хотя поддержка Wayland в LightDM появилась позднее.
На фоне проблем SDDM и ограничений его функциональности в конце 2022 года в ALT Linux было принято решение развивать и поддерживать собственный LightDM KDE greeter. Были выполнены многочисленные исправления и улучшения интерфейса, унифицировано взаимодействие с PAM, исправлены проблемы локализации, переписан модуль настроек на QML, добавлена расширенная настройка сети и VPN, а также выполнен переход на Qt6 и KDE Frameworks 6.
В сентябре 2023 года в выпуске «Альт Рабочая станция К» 10.2 LightDM KDE greeter заменил SDDM в качестве менеджера входа.
Возвращение в апстрим[править | править вики-текст]
В 2023 году проект был возвращён в апстрим на invent.kde.org. Теперь все изменения проходят через pull request, что сделало проект более доступным для сообщества и привело к появлению внешних пользователей, использующих гритер вне ALT Linux.
Проблемы[править | править вики-текст]
LightDM — практически прекратил активное развитие, многие pull request, включая поддержку Qt6, долгое время не принимаются, поэтому часть функциональности реализована непосредственно в гритере.
KDE — существует сильная зависимость от KDE-специфичных компонентов, что усложняет использование гритера вне Plasma и требует выбора между глубокой интеграцией и универсальностью.
Планы на ближайшее будущее[править | править вики-текст]
- завершение перехода на Wayland с использованием
kwin_wayland - разделение гритера и модуля настроек на отдельные пакеты для лучшего управления зависимостями
- расширение возможностей настройки сети и VPN
- рефакторинг тем и вынос общих компонентов
- возможная разработка отдельной темы для планшетов
Планы на далёкое будущее[править | править вики-текст]
Рассматривается возможность поддержки удалённых соединений на базе krdp, а также потенциальный переход на другой бэкенд, например greetd, в случае дальнейшей стагнации LightDM. Параллельно в KDE развивается проект Plasma Login Manager (PLM), который при успешной реализации заявленных целей может стать новым стандартом и в перспективе заменить LightDM KDE greeter.
