Модуль KCM для GDM

Модуль Центра управления KDE (KCM) для настройки автоматического входа в GDM в РОСА Linux 13 с KDE 6.

English version

Обзор

Этот модуль предоставляет графический интерфейс для настройки автоматического входа в GDM (GNOME Display Manager). Он интегрируется в Системные параметры KDE и позволяет пользователям/администраторам включать или отключать автоматический вход без ручного редактирования файлов конфигурации.

Интерфейс модуля

Возможности

  • Включение/отключение автовхода - Переключение автоматического входа с помощью галочки
  • Выбор пользователя - Выбор пользователя из списка системных пользователей, полученного через AccountsService (D-Bus)
  • Произвольное имя пользователя - Возможность ввести любое имя пользователя для автовхода вручную ("Другой пользователь...")
  • Аутентификация PolicyKit - Требует права администратора для сохранения изменений
  • Контекстные предупреждения:
    • Ошибка, если утилита py-ini-config не установлена
    • Предупреждение, если GDM сейчас не используется
  • Перевод на русский язык - Полная поддержка русского языка

Структура проекта

gdm-kcm/
├── CMakeLists.txt              # Главная конфигурация сборки
├── Messages.sh                  # Скрипт переводов
├── README.md                    # Документация на английском
├── README.ru.md                 # Этот файл (русский)
├── TESTING.ru.md                # Инструкция по тестированию
├── BUGS.ru.md                   # Известные проблемы
├── po/                          # Переводы
│   ├── CMakeLists.txt
│   ├── kcm_gdm.pot              # Шаблон переводов
│   └── ru/
│       └── kcm_gdm.po           # Русский перевод
└── src/
    ├── CMakeLists.txt
    ├── config.h                 # Заголовок конфигурации (генерируется)
    ├── kcm_gdm.json             # Метаданные модуля KCM
    ├── gdmkcm.cpp/.h            # Главный класс KCM
    ├── usersmodel.cpp/.h        # Модель списка пользователей (AccountsService)
    └── ui/
        └── main.qml             # Пользовательский интерфейс QML

Требования

  • KDE Frameworks 6 (KF6)
  • Qt 6.6+
  • py-ini-config (из пакета py-ini-config, исходники: https://hub.mos.ru/mos/src/py-ini-config)
  • Дисплейный менеджер GDM
  • Accountsservice (для получения списка пользователей)

Установка

Из исходного кода:

mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install

После установки:

Модуль появится в Системные параметрыСистема как "Автовход в GDM".

Запуск напрямую:

systemsettings kcm_gdm
# или
kcmshell6 kcm_gdm

Конфигурация

Модуль изменяет файл /etc/gdm/custom.conf для настройки автовхода:

При включённом автовходе:

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=имя_пользователя

При отключённом автовходе:

[daemon]
AutomaticLoginEnable=false

Как это работает

  1. Чтение текущих настроек: Использует py-ini-config get для чтения текущей конфигурации автовхода
  2. Список пользователей: Получается через D-Bus от org.freedesktop.Accounts (AccountsService)
  3. Определение окружения:
    • Проверяет наличие утилиты py-ini-config
    • Проверяет, используется ли GDM (переменная окружения GDMSESSION)
  4. Сохранение изменений: Использует pkexec для запуска py-ini-config set с повышенными привилегиями
  5. Права доступа: Требует аутентификацию PolicyKit

Использование

  1. Откройте Системные параметры
  2. Перейдите в категорию Система
  3. Нажмите на "Автовход в GDM"
  4. Переключите галочку "Включить автовход"
  5. Выберите пользователя из выпадающего списка или введите имя вручную
  6. Нажмите "Применить"
  7. Введите пароль администратора по запросу

Примечание: Изменения вступят в силу после следующей перезагрузки системы.

Предупреждения

Модуль отображает контекстные предупреждения:

  • Красная ошибка: "Утилита py-ini-config не установлена. Сохранение настроек не будет работать."

    Установите утилиту для возможности сохранения настроек

  • Жёлтое предупреждение: "Похоже, сейчас GDM не используется. Эти настройки могут быть бесполезны."

    Отображается, когда GDM не является активным дисплейным менеджером

Оба предупреждения могут отображаться одновременно и расположены в верхней части модуля.

Переводы

Модуль включает переводы:

  • Английский (по умолчанию)
  • Русский

Добавление нового языка:

  1. Создайте файл .po в директории po/ из шаблона kcm_gdm.pot
  2. Обновите переводы в вашем языковом файле
  3. Пересоберите и установите

Домен переводов: kcm_gdm

Тестирование

См. TESTING.ru.md для полной инструкции по тестированию, включая:

  • Базовые сценарии
  • Пограничные случаи
  • Проверку предупреждений
  • Полный чек-лист

Известные проблемы

См. BUGS.ru.md для списка известных проблем и ограничений.

Лицензия

GPL-2.0-or-later

Авторы

Команда РОСА, Михаил Новосёлов, ИИ

Сообщения об ошибках

Сообщайте об ошибках по адресу https://hub.mos.ru/mikhailnov/gdm-kcm/issues или по почте m.novosyolov@rosa.ru