Display manager
A display manager, or login manager, is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell. There are various implementations of display managers, just as there are various types of window managers and desktop environments. There is usually a certain amount of customization and themeability available with each one.
Contents
List of display managers
Console
- CDM — Ultra-minimalistic, yet full-featured login manager written in Bash.
https://github.com/evertiro/cdm || cdmAUR
- Console TDM — Extension for xinit written in pure Bash.
https://github.com/dopsi/console-tdm || console-tdmAUR
- nodm — Minimalistic display manager for automatic logins, unmaintained since 2017.
https://github.com/spanezz/nodm || nodm
- Ly — Experimental ncurses display manager.
https://github.com/cylgom/ly || lyAUR
- tbsm — A pure bash session or application launcher. Supports X and Wayland sessions.
https://loh-tar.github.io/tbsm/ || tbsmAUR
- emptty — Dead simple CLI Display Manager on TTY with X and Wayland support.
https://github.com/tvrzna/emptty/ || emptty-gitAUR
Graphical
- Entrance — Enlightenment display manager.
https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR
- GDM — GNOME display manager.
https://wiki.gnome.org/Projects/GDM || gdm
- LightDM — Cross-desktop display manager, can use various front-ends written in any toolkit.
https://github.com/CanonicalLtd/lightdm/ || lightdm
- LXDM — LXDE display manager. Can be used independent of the LXDE desktop environment.
https://sourceforge.net/projects/lxdm/ || lxdm
- SDDM — QML-based display manager and successor to KDM; recommended for Plasma and LXQt.
https://github.com/sddm/sddm || sddm
- XDM — X display manager with support for XDMCP, host chooser.
xdm(8) || xorg-xdm
Login daemons
- greetd — Minimal, flexible and agnostic login daemon which supports both console and graphical greeters.
https://git.sr.ht/
Loading the display manager
To enable graphical login, enable the appropriate systemd service. For example, for SDDM, enable sddm.service .
This should work out of the box. If not, you might have to reset a custom default.target symlink to point to the default graphical.target . See systemd#Change default target to boot into.
After enabling SDDM a symlink display-manager.service should be set in /etc/systemd/system/ . You may need to use —force to override old symlinks.
Using systemd-logind
In order to check the status of your user session, you can use loginctl. All polkit actions like suspending the system or mounting external drives will work out of the box.
Session configuration
Many display managers read available sessions from /usr/share/xsessions/ directory. It contains standard desktop entry files for each desktop environment or window manager. Some display managers use a separate /usr/share/wayland-sessions/ to list Wayland-specific sessions.
To add/remove entries to your display manager’s session list; create/remove the .desktop files in /usr/share/xsessions/ as desired. A typical .desktop file will look something like:
/.xinitrc as a session
Installing xinit-xsession AUR will provide an option to run your xinitrc as a session. Simply set xinitrc as the session in your display manager’s settings and make sure that the
/.xinitrc file is executable.
Starting applications without a window manager
You can also launch an application without any decoration, desktop, or window management. For example to launch google-chrome AUR create a web-browser.desktop file in /usr/share/xsessions/ like this:
In this case, once you login, the application set with Exec will be launched immediately. When you close the application, you will be taken back to the login manager (same as logging out of a normal desktop environment or window manager).
It is important to remember that most graphical applications are not intended to be launched this way and you might have manual tweaking to do or limitations to live with (there is no window manager, so do not expect to be able to move or resize any windows, including dialogs; nonetheless, you might be able to set the window geometry in the application’s configuration files).
Tips and tricks
Autostarting
Most display managers source /etc/xprofile ,
/.xprofile and /etc/X11/xinit/xinitrc.d/ . For more details, see xprofile.
Set language for user session
For display managers that use AccountsService the locale for the user session can be set by editing:
where your_locale is a value such as en_GB.UTF-8 .
Log out and then back in again for the changes to take effect.
Display manager (Русский)
Экранный менеджер или менеджер входа — графический экран, который отображается в конце процесса загрузки вместо стандартного приглашения командной строки. Экранный менеджер представляет собой экран ввода имени пользователя и пароля для входа в систему. Существует множество экранных менеджеров, как и окружений рабочего стола. Практически все экранные менеджеры можно настраивать, изменяя их стиль и поведение.
Contents
Список экранных менеджеров
Консольные
- CDM — ультра-минималистичный, но полностью функциональный менеджер входа, написанный на Bash.
https://github.com/ghost1227/cdm || cdm-gitAUR
- Console TDM — расширение для xinit, также написанное на Bash.
https://github.com/dopsi/console-tdm || console-tdmAUR
- Nodm — минималистичный экранный менеджер для автоматического входа.
https://github.com/spanezz/nodm || nodm
- Ly — экспериментальный менеджер входа.
https://github.com/cylgom/ly || ly-gitAUR
Графические
- GDM — экранный менеджер GNOME.
https://wiki.gnome.org/Projects/GDM || gdm
- LightDM — независимый от среды рабочего стола экранный менеджер, основанный на WebKit.
https://www.freedesktop.org/wiki/Software/LightDM/ || lightdm
- LXDM — экранный менеджер LXDE. Может быть использован отдельно от среды рабочего стола LXDE.
https://sourceforge.net/projects/lxdm/ || lxdm
- SDDM — экранный менеджер, основанный на QML. Продолжение KDE4 kdm, рекомендуется для Plasma 5 и LXQt.
https://github.com/sddm/sddm || sddm
- XDM — экранный менеджер с поддержкой XDMCP.
xdm(8) || xorg-xdm
Запуск экранного менеджера
Чтобы включить экран входа, запустите соответствующую службу. Например для SDDM включите sddm.service . Это должно работать без дополнительных настроек. Если нет, возможно, вам придется удалить символическую ссылку default.target , чтобы указать на graphical.target файл по умолчанию. После включения SDDM в /etc/systemd/system/ должен быть установлен symlink display-manager.service . Возможно, вам придется использовать —force для переопределения старых символических ссылок.
Использование systemd-logind
Чтобы иметь возможность проверить статус вашей сессии, вы можете использовать loginctl. Все действия polkit, такие, как перевод системы в ждущий режим или монтирование внешних устройств будут работать «из коробки».
Настройка сеанса
Большинство экранных менеджеров получают список доступных сеансов из каталога /usr/share/xsessions/ . Он содержит стандартные файлы .desktop для каждого экранного/оконного менеджера. Чтобы добавить/удалить записи в список сеансов вашего экранного менеджера, создайте/удалите соответствующий файл .desktop в /usr/share/xsessions/ . Типичный файл .desktop выглядит примерно так:
Использование
Установите xinit-xsession AUR для запуска xinitrc в качестве сеанса. Просто установите xinitrc в качестве сеанса в настройках вашего экранного менеджера и убедитесь, что файл
/.xinitrc является исполняемым.
Запуск приложений без оконного менеджера
Вы также можете запускать приложения без какого-либо оформления. Например, для запуска google-chrome AUR создайте файл web-browser.desktop в /usr/share/xsessions/ :
При этом, сразу после входа будет запущено приложение, указанное в опции Exec . Когда вы закроете приложение, вы будете возвращены к экранному менеджеру (точно так же, как если бы вы вышли из среды рабочего стола/оконного менеджера).
Важно помнить, что большинство графических приложений не рассчитаны на запуск в таком режиме и вы можете столкнуться с определенными ограничениями в их работе (например, диалоговые окна будут отображены без рамки и вы не сможете их перемещать по экрану; вы не сможете управлять никаким окном обычным способом — для установки размеров и положения вам, вероятно, придется вносить изменения в файлы настроек приложения).
Автозапуск
Большинство экранных менеджеров используют /etc/xprofile ,
/.xprofile и /etc/X11/xinit/xinitrc.d/ при входе. Для получения подробной информации, см. xprofile.
Установка языка
Для экранных менеджеров, которые используют AccountsService, язык для пользовательского сеанса может быть установлен путем редактирования:
Выйдите из системы, а затем снова войдите, чтобы изменения вступили в силу.
SDDM (Русский)
Simple Desktop Display Manager (SDDM) — это дисплейный менеджер (программа для графического экрана входа) для X11. SDDM был написан с нуля на языке C++11 и поддерживает установку тем через QML. SDDM является заменой устаревшему KDE Display Manager и интегрируется в KDE Frameworks 5, KDE Plasma 5 и KDE Applications 5.
Contents
Установка
Установите пакет sddm . Опционально установите пакет sddm-kcm для использования модуля KCM.
Теперь следуйте инструкциям из раздела Экранный менеджер#Запуск экранного менеджера, чтобы запускать SDDM при загрузке.
Настройка
Настройки SDDM по умолчанию хранятся в файле /usr/lib/sddm/sddm.conf.d/default.conf . Для каких-либо изменений создайте конфигурационный файл(ы) в директории /etc/sddm.conf.d/ . Для получения полного списка настроек смотрите страницу справочного руководства sddm.conf(5) .
Пакет sddm-kcm (входящий в группу plasma ) предлагает графический интерфейс для конфигурации SDDM в Параметрах системы KDE Plasma. Также в AUR (Русский) доступен редактор настроек sddm-config-editor-git AUR на основе Qt (Русский).
Всё должно работать «из коробки», так как Arch Linux использует systemd (Русский) и SDDM по умолчанию использует systemd-logind для управления сессиями.
Автоматический вход в систему
SDDM поддерживает автоматический вход. Для этого настройте конфигурационный файл, например:
Эта конфигурация позволит автоматически запускать KDE Plasma для пользователя ivan при загрузке системы. Все доступные сеансы доступны в директории /usr/share/xsessions/ (для Xorg) и /usr/share/wayland-sessions/ (для Wayland).
Также недоступна возможность автоматического входа в KDE Plasma с одновременной блокировкой сеанса [2].
Вы можете добавить скрипт, который активирует скринсейвер KDE при автозапуске в качестве обходного пути:
Автоматическая разблокировка KDE Wallet при входе в систему
Настройки темы
Настройки темы могут быть изменены в секции [Theme] . Также можно увидеть предпросмотр тем, если вы используете приложение Параметры системы в KDE Plasma.
Задайте значение breeze для стандартной темы KDE Plasma.
Текущая тема
Установите текущую тему с помощью значения Current , например, Current=archlinux-simplyblack .
Редактирование тем
Каталогом тем для SDDM по умолчанию является /usr/share/sddm/themes/ . Вы можете добавить свои собственные темы в отдельный подкаталог этой директории. Заметьте, что названия подкаталогов должны совпадать с названием самой темы. Изучите установленные файлы для их изменения или создания собственной темы.
Тестирование (предпросмотр) темы
В случае необходимости, вы можете предварительно просматривать тему SDDM. Это особенно полезно в случае, когда вы не уверены в том, как тема будет смотреться (в частности, после её редактирования) без необходимости выхода из аккаунта. Вы можете выполнить команду вроде следующей:
Эта команда откроет новое окно для каждого подключённого монитора с предварительным просмотром темы.
Курсор мыши
Чтобы задать тему для курсора мыши, установите CursorTheme на предпочитаемую вами тему курсора.
Допустимыми значениями для Plasma (Русский) являются breeze_cursors , Breeze_Snow и breeze-dark .
Аватар пользователя
SDDM считывает иконку пользователя (аватар) как изображение PNG
/.face.icon для каждого пользователя. Также можно задать единую директорию для аватаров всех пользователей используя переменную FacesDir в файле конфигурации SDDM. Данный файл должен располагаться в /etc/sddm.conf или, лучше, в /etc/sddm.conf.d/ , например, /etc/sddm.conf.d/avatar.conf .
Для использования функции FacesDir , разместите изображение PNG под названием username.face.icon в директории, указанной параметром FacesDir в файле конфигурации. По умолчанию используется директория /usr/share/sddm/faces/ . Вы можете изменить стандартное значение FacesDir , например:
Также можно разместить PNG-изображение под названием .face.icon в корне вашей домашней директории. В таком случае не потребуется вносить какие-либо изменения в файл конфигурации SDDM. Тем не менее, вам нужно убедиться, что пользователь sddm имеет права на чтение аватаров.
/.face.icon (символическая ссылка на первый файл). Если аватары пользователя – это символические ссылки, вам потребуется задать корректные права доступа к исходному файлу.
Для задания корректных прав, выполните следующую команду:
Вы можете проверить права с помощью данной команды:
Numlock
Если вы хотите, чтобы Numlock автоматически включался, пропишите Numlock=on в секции [General] .
Поворот экрана
Настройки DPI
Иногда требуется задать корректные настройки PPI монитора на уровне экранного менеджера. [3] Для этого нужно добавить параметр -dpi ваш_dpi в конце строки ServerArguments .
Включение HiDPI
Создайте следующий файл:
Включение виртуальной клавиатуры
Создайте следующий файл:
Теперь SDDM отображает кнопку открытия виртуальной клавиатуры в нижнем левом углу экрана входа.
Использование сканера отпечатка пальцев
SDDM использует сканер отпечатков пальцев с помощью fprint. После установки fprint и регистрации отпечатка, добавьте строку auth sufficient pam_fprintd.so в начало файла /etc/pam.d/sddm .
Также экран блокировки KDE позволяет включить вход по отпечаткам пальцев, при этом оставив возможность использовать пароль. Добавьте следующее содержание в начало секции аутентификации:
Данный метод работает также и с SDDM ( /etc/pam.d/sddm ), но требует отдельной разблокировки KWallet.
Теперь сканер отпечатков пальцев должен включаться по нажатию на клавишу Enter в пустом поле пароля пользователя.
Решение проблем
Пустой экран с курсором, но без экрана приветствия
Проверьте свободное дисковое пространство с помощью команды df -h . В случае его отсутствия экран приветствия аварийно завершает работу.
Если же проблема не в отсутствии свободного места, она может быть связана с данной ошибкой. Переключитесь в другой TTY и перезапустите SDDM.
Долгая загрузка перед отображением экрана приветствия SDDM
Низкий уровень энтропии в системе может стать причиной долгой загрузки SDDM (Отчет об ошибке). Смотрите статью Random number generation для получения информации о повышении уровня энтропии.
Зависания после входа
Попробуйте удалить файл
/.Xauthority и перезайти в систему без перезагрузки. Перезагрузка до повторного входа в систему пересоздаст данный файл и проблема сохранится.
SDDM запускается на tty1 вместо tty7
SDDM следует конвенции systemd, в которой первая графическая сессия запускается на tty1. Если вы предпочитаете старую конвенцию, в которой терминалы с первого по шестой зарезервированы для текстовых консолей, измените стандартное значение переменной MinimumVT в секции [X11] :
Один или более пользователей не отображаются на экране приветствия
По умолчанию, SDDM отображает только тех пользователей, чей UID находится в диапазоне от 1000 до 65000. Если UID нужных вам пользователей ниже данного значения, вам потребуется изменить этот диапазон. Например, для пользователя с UID равным 501 файл конфигурации будет выглядеть следующим образом:
Аватары пользователей не отображаются на экране приветствия
Иконки пользователей не отображаются на экране приветствия, если количество пользователей превышает значение параметра DisableAvatarsThreshold или аватары совсем отключены параметром EnableAvatars. Данное поведение настраивается следующей конфигурацией SDDM:
SDDM загружает только английскую (US) раскладку клавиатуры
SDDM загружает раскладку клавиатуры, заданную в файле /etc/X11/xorg.conf.d/00-keyboard.conf . Вы можете сгенерировать этот конфигурационный файл командой localectl set-x11-keymap . Смотрите Keyboard configuration in Xorg (Русский) для дополнительной информации.
Также SDDM может некорректно отображать раскладку как английскую, но моментально изменит её на правильную после начала ввода пароля [4]. Похоже, что это баг не SDDM, а libxcb (версии 1.13-1 по состоянию на 2018) [5].
Слишком низкое разрешение экрана
Проблема может быть вызвана использованием HiDPI с мониторами с повреждённой информацией EDID [6]. Попробуйте отключить HiDPI, если он у вас включён.
Если же решение выше не помогает, можно попробовать задать размер экрана в файле конфигурации Xorg. Например:
Долгая загрузка с домашней директорией на autofs
По умолчанию, SDDM пытается отобразить аватарки пользователей считывая файл