Как запускать скрипты при старте KDM (Xsetup)
Зачем использовать KDM?
KDM — дисплей-менеджер KDE, который запускается вместе с экземпляром X-сервера. В момент запуска KDM пользователь ещё не вошёл в систему, поэтому настройки, применённые на этом этапе, становятся глобальными и действуют для всех пользователей. Правка Xsetup часто проще и безопаснее, чем изменение xorg.conf или запуск пользовательских скриптов после логина.

Как выполняются скрипты: файл Xsetup
KDM использует скрипт Xsetup. Когда запускается X, KDM выполняет содержимое этого файла. Чтобы запускать собственные скрипты, достаточно добавить вызовы в Xsetup.
Пример задач, которые удобно делать в Xsetup:
- Автоматическая настройка монитора через xrandr — применится до входа любого пользователя.
- Включение/выключение NumLock с помощью numlockx для глобального поведения.
- Установка системной раскладки или keymap через xmodmap.
Шаги — пример с xrandr
- Найдите файл Xsetup — путь зависит от дистрибутива. В Kubuntu он обычно находится здесь:
/etc/kde4/kdm/Xsetup- Отредактируйте файл от root. Пример (Alt+F2):
kdesudo kate /etc/kde4/kdm/Xsetup- Добавьте команды, которые должны выполниться (они выполняются от root до появления диалога входа):
xrandr --auto --output VGA1 --mode 1440x900 --right-of LVDS1 --refresh 60.1- Сохраните файл и закройте редактор.
Рекомендуется вставлять ваши команды перед строкой:
/sbin/initctl -q emit login-session-start DISPLAY_MANAGER=kdmЭто гарантирует, что они выполнены до продолжения запуска сессии.

Пример: включение NumLock
- Установите numlockx:
sudo apt-get install numlockx- Вставьте в Xsetup строку:
numlockx on- Сохраните файл.
После этого NumLock будет включаться глобально ещё до входа пользователя.
Важные замечания по безопасности и правам
- Всё, что вы добавляете в Xsetup, выполняется от root. Не храните в скриптах пароли или чувствительные данные.
- Дайте минимально необходимые права на файл: например, chmod 700 /etc/kde4/kdm/Xsetup и владелец root.
- Сделайте резервную копию оригинального файла перед правками:
sudo cp /etc/kde4/kdm/Xsetup /etc/kde4/kdm/Xsetup.bak- Тестируйте изменения на машине с локальным доступом, чтобы избежать потери возможности войти в систему удалённо.
Критерии приёмки
- Команда xrandr применяет нужное разрешение и положение мониторов до экрана логина.
- NumLock устанавливается в заданное состояние до входа пользователя.
- Xsetup имеет права root-only, резервная копия создана.
- После перезагрузки система корректно отображает экран входа и разрешения.
Когда это НЕ сработает — ограничения и альтернативы
- Wayland: если вы используете сеанс Wayland или дисплей-менеджер, который не запускает X, Xsetup бессилен. Для Wayland нужно искать эквивалентные хуки DM или системные способы настройки.
- Другие дисплей-менеджеры (LightDM, SDDM, GDM): у них могут быть свои скрипты-хуки и иные пути конфигурации. Проверьте документацию конкретного DM.
- Если у вас многопользовательская среда с корпоративной политикой, глобальные изменения могут нарушать ожидания пользователей.
Альтернативные подходы:
- Пользовательские автозапуски (~/.xprofile, ~/.xsessionrc, ~/.config/autostart) — применимы только после логина конкретного пользователя.
- Системные unit’ы systemd с зависимостью от display-manager.service — для сервисов, не зависящих напрямую от X.
План действий: методология безопасной правки Xsetup
- Скопируйте оригинал: sudo cp /etc/kde4/kdm/Xsetup /etc/kde4/kdm/Xsetup.bak
- Откройте в редакторе от root и добавьте команды в логичном порядке.
- Проверьте синтаксис и права: sudo chmod 700 /etc/kde4/kdm/Xsetup
- Перезагрузите систему и проверьте экран логина и поведение устройств.
- Если что-то пошло не так — восстановите бекап и перезагрузитесь.
Инструменты и контрольный список ролей
Администратор:
- Сделать резервную копию.
- Проверить и применить права доступа.
- Документировать изменения.
Пользователь (тестировщик):
- Провести перезагрузку и проверить разрешение экрана.
- Проверить состояние NumLock и корректность раскладки.
Откат и аварийный план
Если после изменений вы потеряли доступ к графическому входу:
- Перейдите в консоль (Ctrl+Alt+F2), войдите как root или пользователь с sudo.
- Восстановите бекап:
sudo cp /etc/kde4/kdm/Xsetup.bak /etc/kde4/kdm/Xsetup
sudo chmod 700 /etc/kde4/kdm/Xsetup- Перезагрузите X/систему.
Совместимость и миграция
KDE и дистрибутивы развиваются: некоторые современные окружения используют SDDM или другие дисплей-менеджеры. Если ваш дистрибутив перешёл на другой DM, найдите эквивалентный хук или скрипт у этого менеджера. Для серверных сценариев рассмотрите systemd-юниты.
Короткая памятка (cheat sheet)
- Файл: /etc/kde4/kdm/Xsetup
- Резервная копия: Xsetup.bak
- Права: chmod 700
- Частые команды: xrandr, numlockx, xmodmap
- Тестирование: перезагрузка и проверка экрана логина
Итог
Использование Xsetup KDM — простой и надёжный способ применить глобальные настройки X перед входом пользователя. Это удобно для конфигурации мониторов, NumLock и системных раскладок. Не забывайте про безопасность: тестируйте, делайте резервные копии и проверяйте совместимость с вашим дисплей-менеджером.
Внимание: если вы используете Wayland или иной дисплей-менеджер, изучите соответствующие механизмы хук-скриптов.
Важно: все примеры команд выполняются от root — соблюдайте осторожность при их добавлении.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента