SDDM
Simple Desktop Display Manager (SDDM) — современный дисплейный менеджер, поддерживающий протоколы X-сервера и Wayland.
По умолчанию, нажатие на кнопку «power off» в SDDM полностью выключит компьютер сразу же, без выдачи запроса подтверждения.
Установка
USE-флаги
USE flags for x11-misc/sddm Simple Desktop Display Manager
Установка
Установите x11-misc/sddm:
root #
emerge --ask x11-misc/sddm
При проблемах производительности можно попробовать добавить пользователя sddm в группу video:
root #
usermod -a -G video sddm
Настройка
Файлы
У SDDM есть два расположения для конфигурации: /usr/share/sddm/sddm.conf.d/ и /etc/sddm.conf.d/, которое используется для перезаписи значений по умолчанию. Второе расположение не создаётся пакетом. KDE Plasma записывает пользовательские изменения в /etc/sddm.conf.d/. Оба расположения поддерживают файлы с одинаковым форматом. См. man-страницу man 5 sddm.conf для получения дополнительной информации.
Файлы override.conf и Xsetup
В большинстве случаев эти файлы не нужны, так что этот раздел можно пропустить.
В некоторых случаях перед стартом X-сервера и показом экрана приглашения может понадобится выполнить некоторые команды. Для этих случаев можно использовать файл Xsetup, расположение которого должно быть переопределено локальным изменением в /etc/sddm.conf.d/override.conf.
Создайте каталог локальной конфигурации, если он не существует:
root #
mkdir -p /etc/sddm.conf.d
Создайте и отредактируйте файл /etc/sddm.conf.d/override.conf со следующим содержанием:
/etc/sddm.conf.d/override.conf
[X11]
DisplayCommand=/etc/sddm/scripts/Xsetup
Далее создайте каталог /etc/sddm/scripts и файл /etc/sddm/scripts/Xsetup:
root #
mkdir -p /etc/sddm/scripts
root #
touch /etc/sddm/scripts/Xsetup
root #
chmod a+x /etc/sddm/scripts/Xsetup
/etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# Ниже могут быть различные команды, которые будут запускаться при старте SDDM.
Раскладка клавиатуры
Чтобы выбрать корректную раскладку клавиатуры на экране входа, добавьте команду setxkbmap в файл /etc/sddm/scripts/Xsetup:
/etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# ...
# Первая раскладка будет gb
setxkbmap gb,us
Первый код страны будет значением по умолчанию.
Многомониторная конфигурация
Расположение экрана приветствия можно указать через конфигурацию xrandr в сценарии SDDM /etc/sddm/scripts/Xsetup. Сначала установите x11-apps/xrandr:
root #
emerge --ask x11-apps/xrandr
Ниже представлен вывод xrandr, в котором есть два подключённых монитора: основной (DP-4
) и дополнительный (DP-2
):
user $
xrandr | grep -w connected
DP-2 connected 2160x3840+0+0 left (normal left inverted right x axis y axis) 597mm x 336mm DP-4 connected primary 3840x2160+2160+0 (normal left inverted right x axis y axis) 697mm x 392mm
Добавьте следующие строки в файл /etc/sddm/scripts/Xsetup:
/etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# ...
# Сначала установка DP-4 в качестве основного
xrandr --output DP-4 --auto --primary
# Затем DP-2 будет расположен слева от DP-4 и повёрнут на 270 градусов по часовой стрелке.
xrandr --output DP-2 --left-of DP-4 --rotate left --noprimary
После перезагрузки SDDM отобразит экран приветствия на мониторе DP-4
.
Сервис
OpenRC
Если gui-libs/display-manager-init не установлен, установите его с помощью emerge:
root #
emerge --ask gui-libs/display-manager-init
При использовании SDDM конфигурационный файл следует изменить следующим образом:
/etc/conf.d/display-manager
Настройка SDDM в качестве дисплейного менеджераCHECKVT=7
DISPLAYMANAGER="sddm"
Чтобы запускать выбранный дисплейный менеджер при старте системы, добавьте display-manager в уровень загрузки default:
root #
rc-update add display-manager default
Чтобы немедленно запустить display-manager, выполните:
root #
rc-service display-manager start
systemd
Для старта SDDM при загрузке:
root #
systemctl enable sddm.service
Для немедленного запуска SDDM:
root #
systemctl start sddm.service
Plasma
Конфигурация графики интегрирована в системные настройки Plasma 5 и доступна после установки kde-plasma/sddm-kcm:
root #
emerge --ask kde-plasma/sddm-kcm
Устранение проблем
Долгая загрузка перед отображением экрана приветствия SDDM
Причиной долгого времени загрузки SDDM может быть низкий уровень энтропии — см. отчет об ошибке проекта SDDM. При использовании systemd после достижения цели graphical всё неожиданно «зависает». Движение мышью или нажатие клавиш клавиатуры может ускорить появление экрана приветствия SDDM.
Проблему можно решить путём увеличения уровня энтропии (например, при помощи пакета sys-apps/haveged) или включением параметра ядра RANDOM_TRUST_CPU для достаточно современных процессоров.
Ошибки «Permission denied» в Xorg.log
Сервер X не запускается, в журнале Xorg.log появляются ошибки «permission denied» (как показано на примере):
/var/log/Xorg.log
/var/log/Xorg.0.log:[ 2058.998] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
/var/log/Xorg.0.log:[ 2061.229] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
Скорее всего, пользователь sddm не был добавлен в группу video. Выполните следующую команду, чтобы решить проблему:
root #
usermod -a -G video sddm
Отсутствуют системные кнопки
SDDM отображает кнопки только в том случае, если проверка соответствующего функционала выявила его доступность. Это может зависеть от нескольких факторов. Для систем OpenRC с использованием elogind причиной ошибки может стать то, что в момент инициализации дисплейного менеджера не работал сервис elogind. Чтобы разрешить эту проблему, добавьте elogind в уровень загрузки boot.
root #
rc-update add elogind boot
Отсутствуют некоторые пользователи
Если в форме выбора пользователей отсутствуют некоторые пользователи, причина может крыться в /etc/sddm.conf: по умолчанию MinimumUid
равен 1000, а некоторые уже существующие пользователи могут иметь UID ниже этой цифры.
/etc/sddm.conf
[Users]
MaximumUid=60000
MinimumUid=1000
Сервис SDDM запускается, но показывает чёрный экран
При использовании карт NVIDIA для SDDM требуется включённая и нормальная работающая подсистема DRM (см. закрытый отчет об ошибке).
Убедитесь, что Direct Rendering Manager включен в ядре. Если нет — включите его, пересоберите ядро и пересоберите x11-drivers/nvidia-drivers.
Device Drivers --->
Graphics support --->
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
[*] Enable legacy fbdev support for your modesetting driver
Проверьте, что модуль nvidia-drm настроен на загрузку при старте и параметр modeset включен:
/etc/modules-load.d/nvidia-drm.conf
nvidia-drm
options nvidia-drm modeset=1
Параметр modeset также можно включить через командную строку ядра с помощью параметра nvidia-drm.modeset=1. Его можно установить в начальном загрузчике или встроить в конфигурацию ядра.
Смотрите также
- LightDM — универсальный дисплейный менеджер, цель которого — стать стандартным дисплейным менеджером для сервера X.
- SLiM — a desktop-independent graphical display manager.