Display manager (Русский) - ArchWiki

Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Display manager. Дата последней синхронизации: 15 сентября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- Среда рабочего стола
- Оконный менеджер
- Запуск X при входе

Экранный менеджер или менеджер входа — графический экран, который отображается в конце процесса загрузки вместо стандартного приглашения командной строки. Экранный менеджер представляет собой экран ввода имени пользователя и пароля для входа в систему. Существует множество экранных менеджеров, как и окружений рабочего стола. Практически все экранные менеджеры можно настраивать, изменяя их стиль и поведение.

## Список экранных менеджеров

### Консольные

- CDM — ультра-минималистичный, но полнофункциональный менеджер входа, написанный на Bash.

  https://github.com/evertiro/cdm || cdmAUR

- Console TDM — расширение для xinit, также написанное на Bash.

  https://github.com/dopsi/console-tdm || console-tdmAUR

- nodm — минималистичный экранный менеджер для автоматического входа.

  https://github.com/spanezz/nodm || nodm

- Ly — легковесный TUI (ncurses-like) экспериментальный менеджер входа.

  https://github.com/nullgemm/ly || ly

- tbsm — лаунчер сессий или приложений, написанный на чистом bash. Поддерживает сеансы X и Wayland.

  https://loh-tar.github.io/tbsm/ || tbsmAUR

- emptty — совершенно простой менеджер CLI на TTY с поддержкой X и Wayland.

  https://github.com/tvrzna/emptty/ || emptty-gitAUR

### Графические

- Entrance — экранный менеджер Enlightenment.

  https://github.com/Obsidian-StudiosInc/entrance || entrance-gitAUR

- GDM — экранный менеджер GNOME.

  https://wiki.gnome.org/Projects/GDM || gdm

- LightDM — независимый от среды рабочего стола экранный менеджер, можно подключать различные фронтенды с любыми тулкитами.

  https://github.com/canonical/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

### Демоны входа

- greetd — Минимальный, гибкий и независимый демон входа в систему, который поддерживает как консольные, так и графические интерфейсы.

  https://git.sr.ht/~kennylevinsen/greetd || 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-xsessionAUR для запуска xinitrc в качестве сеанса. Просто установите `xinitrc` в качестве сеанса в настройках вашего экранного менеджера и убедитесь, что файл `~/.xinitrc` является исполняемым.

### Запуск приложений без оконного менеджера

Вы также можете запускать приложения без какого-либо оформления. Например, для запуска google-chromeAUR создайте файл `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`. Когда вы закроете приложение, вы будете возвращены к экранному менеджеру (точно так же, как если бы вы вышли из среды рабочего стола/оконного менеджера).

Важно помнить, что большинство графических приложений не рассчитаны на запуск в таком режиме и вы можете столкнуться с определенными ограничениями в их работе (например, диалоговые окна будут отображены без рамки и вы не сможете их перемещать по экрану; вы не сможете управлять никаким окном обычным способом — для установки размеров и положения вам, вероятно, придется вносить изменения в файлы настроек приложения).

Смотрите также xinitrc (Русский)#Запуск приложений без оконного менеджера.

## Советы и рекомендации

### Автозапуск

Большинство экранных менеджеров используют `/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

Выйдите из системы, а затем снова войдите, чтобы изменения вступили в силу.

Categories:

- Graphical user interfaces (Русский)
- Lists of software (Русский)