• M mos-auth
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 3
    • Задачи 3
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 0
    • Запросы на слияние 0
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Метрики
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • MOS
  • Исходные коды
  • mos-auth
  • Запросы на слияние
  • !17

Adapt mos-auth to KDE 6

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Слиты sgakerru запросил слияние update-to-kde6 в master Мар 27, 2026
  • Обзор 1
  • Коммиты 50
  • Конвейеры 0
  • Изменения 42

Результаты адаптации mos-auth на KDE 6

Для перехода было осуществлено следующее: склонирована тема Breeze для sddm версии 6.4.2, поверх которой вручную переносились и адаптировались все те многочисленные улучшения, что были сделаны для темы mos-auth за всю историю его разработки. Во время переноса над большей части кода был проведен масштабный рефакторинг с целью улучшения качества кода и исправления ошибок, а именно:

  • Изменения и улучшения были атомарно разделены по коммитам. Условно, их можно поделить на следующие группы:

    1. Различные исправления и улучшения с потенциалом на апстримизацию

    2. Выбор пользователей в виде выпадающего списка

    3. Виджет Wi-Fi

    4. Вход через mos.ru и Гость

    5. Поддержка корпоративного Wi-Fi

    Это позволит упростить последующую апстримизацию в будущий plasma-login (замена SDDM от KDE) тех улучшений, которые могут быть потенциально пригодиться в апстриме (например, виджет Wi-Fi или выпадающий список пользователей, а также ряд более мелких исправлений и улучшений, например, кнопка "глазка" в поле ввода пароля для возможности его отображения).

  • В новой версии большое внимание уделено корректности отображения темы на маленьких разрешениях, в том числе на 640x480 (оно взято за минимальное разрешение, поскольку оно часто является стандартным для виртуальных систем по типу VirtualBox).

    Для этого был разработан новый компонент раскладки MainScreenLayout на базе SessionManagementScreen, включающий в себя:

    1. Возможность отображения часов и даты в верхней части экрана, при наличии свободного места.

    2. Разбиение экрана на две половины - в верхней могут располагаться элементы, такие как карусель пользователей, а в нижней - поля для ввода данных учетной записи, а также кнопки.

    3. Также в нижней половине отображается унифицированное поле для вывода уведомления на экран (уведомление об ошибке, о включенном Caps Lock, и так далее).

    4. В самой нижней части экрана - ActionButton, такие как "Перезагрузка", "Возврат к списку пользователей" и так далее.

    5. Теперь вся раскладка является "гибкой" - она адаптируется в зависимости от разрешения экрана с целью максимального эффективного использования свободного пространства на экране. Например, в оригинальной раскладке из Breeze SDDM часто были ситуации на маленьких разрешениях экрана, когда элементы интерфейса отображались некорректно (отображались ниже границы экрана или начинали накладываться друг на друга) - несмотря на наличие небольшого свободного пространства.

    Этот компонент был переиспользован как для страниц SDDM (карусель пользователей, ручной ввод логина), так и для страниц mos-auth, таких как виджет Wi-Fi и форма регистрации после авторизации на сайте mos.ru.

    Унификация раскладки позволила избавиться от дублирующего кода, а также обеспечить одинаковую адаптивность интерфейса для всех этих страниц.

  • Помимо этого, для корректного отображения на маленьких разрешениях, для разрешений меньше 1000px теперь отображаются укороченные метки для кнопок с выбором раскладки / сессии / виртуальной клавиатуры. Также для маленьких разрешений был создан "smallSize" режим для карусели (уменьшаются размеры аватарок и меток в карусели).

  • Также для разрешений меньше 720px по высоте - по умолчанию включается режим вывода пользователей в виде выпадающего списка.

  • Улучшение асинхронности для виджета Wi-Fi: исправление бага, когда не сразу отображается сохраненное соединение, а только если выбрать эту сеть заново через выпадающий список.

  • Добавлено предупреждающее диалоговое окно перед выходом на главный экран на этапе регистрации учетной записи mos. Поскольку выход с этапа регистрации приведет к потери данных авторизации, поэтому при повторной попытке регистрации через mos.ru - потребуется повторный ввод данных от учетной записи mos.ru.

  • При переходе на KDE 6 компоненты реализованные с помощью QQC2 перестали корректно отображаться (стили, размеры и так далее). Теперь эти элементы управления созданы на базе PlasmaComponents3 (поэтому, внешний вид некоторых элементов, таких как выпадающий список пользователей или сетей Wi-Fi стал отличаться от прошлой версии - теперь они больше похожи на стиль Plasma 6).

  • При переходе на Qt 6 в SDDM на уровне QML перестал работать QtWebEngine. Для исправления этой ситуации, был создан патч для SDDM по аналогии с изменениями в Plasma 6 (то есть в KDE произошла аналогичная ситуация при переходе на Qt 6) - https://abf.io/import/plasma6-sddm/pull_requests/3

  • Теперь mos-auth QML плагин собирается с метаданными для линтера qmllint.

Сравнительные скриншоты старой и новой версии mos-auth

Доступны здесь: https://hub.mos.ru/mos/dev-tasks/features/-/issues/103#note_176290

P.S Эти изменения тестируются уже несколько месяцев и используются в данный момент в основных репозиториях.

Этот MR нужен для документирования списка изменений и переноса KDE6 ветки в master.

Отредактировано Мар 27, 2026 пользователем sgakerru
Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: update-to-kde6