SDDM
Simple Desktop Display Manager (SDDM) — современный дисплейный менеджер, поддерживающий протоколы X-сервера и Wayland.
По умолчанию, нажатие на кнопку «power off» в SDDM полностью выключит компьютер сразу же, без выдачи запроса подтверждения.
Установка
USE-флаги
USE flags for x11-misc/sddm Simple Desktop Display Manager
+X
|
Add support for X11 |
+elogind
|
Enable session tracking via sys-auth/elogind |
+pam
|
Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
Установка
Установите 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.
Create local configuration directory if it does not exists:
root #
mkdir -p /etc/sddm.conf.d
После этого создайте и отредактируйте файл /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
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# Ниже могут быть различные команды, которые будут запускаться при старте SDDM.
override.conf and X11 rootless mode
By default SDDM runs in X11 as the root user. This may be considered a security risk.
Since x11-misc/sddm version 0.20 it is possible to run SDDM in X11 rootless mode instead.
В некоторых случаях перед стартом X-сервера и показом экрана приглашения может понадобится выполнить некоторые команды. Для этих случаев можно использовать файл Xsetup, расположение которого должно быть переопределено локальным изменением в /etc/sddm.conf.d/override.conf.
Create local configuration directory if it does not exists:
root #
mkdir -p /etc/sddm.conf.d
After that create and edit file /etc/sddm.conf.d/override.conf with following lines in it:
[General]
DisplayServer=x11-user
override.conf and wayland mode
Running SDDM in Wayland mode is highly experimental
Since x11-misc/sddm version 0.20 it is possible to run SDDM in Wayland mode.
Weston
SDDM supports several Wayland compositors. This first example uses SDDMs default compositor, Weston, for systems where kde-plasma/plasma-desktop is not used. First install dev-libs/weston with the fullscreen USE flag enabled.
Then the Display server configuration should be overridden in the local /etc/sddm.conf.d/override.conf.
Create local configuration directory if it does not exists:
root #
mkdir -p /etc/sddm.conf.d
After that create and edit file /etc/sddm.conf.d/override.conf with following lines in it:
[General]
DisplayServer=wayland
# Эта часть необязательна
[Wayland]
CompositorCommand=weston --shell=fullscreen-shell.so
Kwin
Users of systems using kde-plasma/plasma-desktop may want to use Kwin as the compositor instead:
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1
Раскладка клавиатуры
Чтобы выбрать корректную раскладку клавиатуры на экране входа, добавьте команду setxkbmap в файл /etc/sddm/scripts/Xsetup:
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# ...
# First keymap will be gb
setxkbmap gb,us
Первый код страны будет значением по умолчанию.
Multimonitor configuration
Расположение экрана приветствия можно указать через конфигурацию 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:
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# ...
# First, set DP-4 as primary
xrandr --output DP-4 --auto --primary
# Second, DP-2 will be placed on left of DP-4 and rotated by 270 degree clockwise.
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 конфигурационный файл следует изменить следующим образом:
CHECKVT=7
DISPLAYMANAGER="sddm"
In its default configuration, SDDM likely won't start without elogind. Enable and start it using:
root #
rc-update add elogind boot
root #
rc-service elogind start
Чтобы запускать выбранный дисплейный менеджер при старте системы, добавьте 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 и доступна после установки 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.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 ниже этой цифры.
[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 включен:
nvidia-drm
options nvidia-drm modeset=1
Параметр modeset также можно включить через командную строку ядра с помощью параметра nvidia-drm.modeset=1. Его можно установить в начальном загрузчике или встроить в конфигурацию ядра.
Смотрите также
- LightDM — универсальный дисплейный менеджер, цель которого — стать стандартным дисплейным менеджером для сервера X.
- SLiM — a desktop-independent graphical display manager.