- Display manager (Русский)
- Список экранных менеджеров
- Консольные
- Графические
- Демоны входа
- Запуск экранного менеджера
- Использование systemd-logind
- Настройка сеанса
- Использование ~/.xinitrc как сеанс
- Запуск приложений без оконного менеджера
- Советы и рекомендации
- Автозапуск
- Установка языка
- Arch Linux
- Display manager
- List of display managers
- Console
- Graphical
- Login daemons
- Loading the display manager
- Using systemd-logind
- Session configuration
- Run ~/.xinitrc as a session
- Starting applications without a window manager
- Tips and tricks
- Autostarting
- Set language for user session
Display manager (Русский)
Состояние перевода: На этой странице представлен перевод статьи Display manager. Дата последней синхронизации: 15 сентября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Экранный менеджер или менеджер входа — графический экран, который отображается в конце процесса загрузки вместо стандартного приглашения командной строки. Экранный менеджер представляет собой экран ввода имени пользователя и пароля для входа в систему. Существует множество экранных менеджеров, как и окружений рабочего стола. Практически все экранные менеджеры можно настраивать, изменяя их стиль и поведение.
Список экранных менеджеров
Консольные
- CDM — ультра-минималистичный, но полнофункциональный менеджер входа, написанный на Bash.
- Console TDM — расширение для xinit, также написанное на Bash.
- nodm — минималистичный экранный менеджер для автоматического входа.
- Ly — легковесный TUI (ncurses-like) экспериментальный менеджер входа.
- tbsm — лаунчер сессий или приложений, написанный на чистом bash. Поддерживает сеансы X и Wayland.
- emptty — совершенно простой менеджер CLI на TTY с поддержкой X и Wayland.
Графические
- Entrance — экранный менеджер Enlightenment.
- GDM — экранный менеджер GNOME.
- LightDM — независимый от среды рабочего стола экранный менеджер, можно подключать различные фронтенды с любыми тулкитами.
- LXDM — экранный менеджер LXDE. Может быть использован отдельно от среды рабочего стола LXDE.
- SDDM — экранный менеджер, основанный на QML. Продолжение KDE4 kdm, рекомендуется для Plasma 5 и LXQt.
- XDM — экранный менеджер с поддержкой XDMCP.
Демоны входа
- greetd — Минимальный, гибкий и независимый демон входа в систему, который поддерживает как консольные, так и графические интерфейсы.
Запуск экранного менеджера
Чтобы включить экран входа, запустите соответствующую службу. Например для SDDM включите sddm.service .
Это должно работать без дополнительных настроек. Если нет, возможно, вам придется удалить символическую ссылку default.target , чтобы указать на graphical.target файл по умолчанию. Смотрите Изменение цели загрузки по умолчанию.
После включения SDDM в /etc/systemd/system/ должен быть установлен symlink display-manager.service . Возможно, вам придется использовать —force для переопределения старых символических ссылок.
$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service
Использование systemd-logind
Чтобы иметь возможность проверить статус вашей сессии, вы можете использовать loginctl. Все действия polkit, такие, как перевод системы в ждущий режим или монтирование внешних устройств будут работать «из коробки».
$ loginctl show-session $XDG_SESSION_ID
Настройка сеанса
Большинство экранных менеджеров получают список доступных сеансов из каталога /usr/share/xsessions/ . Он содержит стандартные файлы .desktop для каждого экранного/оконного менеджера.
Чтобы добавить/удалить записи в список сеансов вашего экранного менеджера, создайте/удалите соответствующий файл .desktop в /usr/share/xsessions/ . Типичный файл .desktop выглядит примерно так:
[Desktop Entry] Name=Openbox Comment=Log in using the Openbox window manager (without a session manager) Exec=/usr/bin/openbox-session TryExec=/usr/bin/openbox-session Icon=openbox.png Type=Application
Использование ~/.xinitrc как сеанс
Установите xinit-xsession AUR для запуска xinitrc в качестве сеанса. Просто установите xinitrc в качестве сеанса в настройках вашего экранного менеджера и убедитесь, что файл ~/.xinitrc является исполняемым.
Запуск приложений без оконного менеджера
Вы также можете запускать приложения без какого-либо оформления. Например, для запуска google-chrome AUR создайте файл web-browser.desktop в /usr/share/xsessions/ :
[Desktop Entry] Name=Web Browser Comment=Use a web browser as your session Exec=/usr/bin/google-chrome --auto-launch-at-startup TryExec=/usr/bin/google-chrome --auto-launch-at-startup Icon=google-chrome Type=Application
При этом, сразу после входа будет запущено приложение, указанное в опции Exec . Когда вы закроете приложение, вы будете возвращены к экранному менеджеру (точно так же, как если бы вы вышли из среды рабочего стола/оконного менеджера).
Важно помнить, что большинство графических приложений не рассчитаны на запуск в таком режиме и вы можете столкнуться с определенными ограничениями в их работе (например, диалоговые окна будут отображены без рамки и вы не сможете их перемещать по экрану; вы не сможете управлять никаким окном обычным способом — для установки размеров и положения вам, вероятно, придется вносить изменения в файлы настроек приложения).
Советы и рекомендации
Автозапуск
Большинство экранных менеджеров используют /etc/xprofile , ~/.xprofile и /etc/X11/xinit/xinitrc.d/ при входе. Для получения подробной информации, см. xprofile.
Установка языка
Для экранных менеджеров, которые используют AccountsService, язык для пользовательского сеанса может быть установлен путем редактирования:
/var/lib/AccountsService/users/$USER
[User] Language=your_locale
где your_locale — значение вида ru_RU.UTF-8 .
В качестве альтернативы можно использовать D-Bus:
busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale
Выйдите из системы, а затем снова войдите, чтобы изменения вступили в силу.
Arch Linux
I’m confused about the instructions in the Wiki on this topic. I can’t decide whether I’m doing something right or wrong so I thought I’d see what others think.
I’m on my 3rd install of the new systemd Arch.
My goal is to start X automatically without using a display/login manager.
#!/bin/sh # # ~/.xinitrc # # Executed by startx (run your window manager from here) if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi xrdb -merge ~/.Xresources # update x resources db exec startlxde
After I get successfully logged into my console, I follow the instructions here: https://wiki.archlinux.org/index.php/Start_X_at_Login
According to the instructions for starting X at login, all one needs do is add:
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
to the end of .bash_profile.
This just doesn’t work for me. To troubleshoot what’s going on, I issue «echo $DISPLAY» while I’m at the console after my failed attempt to start X.
Since the conditional expects nothing for «$DISPLAY», it fails and X doesn’t start.
I’ve changed the conditional above to:
[[ $DISPLAY = :0 && $XDG_VTNR -eq 1 ]] && exec startx
And lxde starts up on boot.
I’m inclined to edit the Wiki to reflect my experience but am reluctant dispute what the author says. So I’m wondering if anyone else has had the same experience I’m having or else can give me insight as to why my $DISPLAY environment variable equals «:0» instead of nothing.
[Edited to remove superfluous link to Wiki.]
Last edited by whatshisname (2013-03-14 13:33:21)
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.
List of display managers
Console
- CDM — Login manager written in Bash.
- Console TDM — Extension for xinit written in pure Bash.
- nodm — Display manager for automatic logins. Discontinued since 2017.
- Ly — TUI (ncurses-like) display manager for Linux and BSD. Supports X and Wayland sessions.
- tbsm — A Bash session or application launcher. Supports X and Wayland sessions.
- emptty — Simple CLI Display Manager on TTY with X and Wayland support.
- loginx — A getty/login/xinit combination with a friendly curses ui.
- Lemurs — TUI display manager for Linux, written in Rust. Supports X, Wayland and TTY shell sessions.
Graphical
- Entrance — Enlightenment display manager. Highly experimental, and does not have proper systemd support.
- GDM — GNOME display manager.
- LightDM — Cross-desktop display manager, can use various front-ends written in any toolkit.
- LXDM — LXDE display manager. Can be used independent of the LXDE desktop environment.
- SDDM — QML-based display manager and successor to KDM; recommended for Plasma and LXQt.
- SLiM — Lightweight and elegant graphical login solution. Discontinued since 2013, not fully compatible with systemd.
- XDM — X display manager with support for XDMCP, host chooser.
Login daemons
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.
$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service
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.
$ loginctl show-session $XDG_SESSION_ID
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:
[Desktop Entry] Name=Openbox Comment=Log in using the Openbox window manager (without a session manager) Exec=/usr/bin/openbox-session TryExec=/usr/bin/openbox-session Icon=openbox.png Type=Application
Run ~/.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:
[Desktop Entry] Name=Web Browser Comment=Use a web browser as your session Exec=/usr/bin/google-chrome --auto-launch-at-startup TryExec=/usr/bin/google-chrome --auto-launch-at-startup Icon=google-chrome Type=Application
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:
/var/lib/AccountsService/users/$USER
[User] Language=your_locale
where your_locale is a value such as en_GB.UTF-8 .
Alternatively, you can achieve this using D-Bus: busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User SetLanguage s your_locale
Log out and then back in again for the changes to take effect.