LightDM (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи LightDM. Дата последней синхронизации: 26 сентября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

LightDM это кросс-десктопный Экранный менеджер. Главные особенности:

  • Кросс-десктопный - поддерживает различные технологии рабочего стола.
  • Поддерживает различные технологии отображения (X, Wayland, Mir, ...).
  • Легковесный - низкое потребление памяти и высокая производительность.
  • Поддержка гостевых сессий.
  • Поддержка удаленного входа (входящий - XDMCP, VNC, исходящий - XDMCP, PAM).
  • Комплексный набор тестов.
  • Низкая сложность кода.

Более подробную информацию о проекте LightDM можно найти здесь.

Установка

Установите lightdm.

Совет: Обратите внимание, что чётные выпуски являются стабильными (1.8, 1.10), а разрабатываемые - нечётными (1.9, 1.11). Разрабатываемые версии доступны в lightdm-develAUR, а также в lightdm-gitAUR.

Greeter (Экран приветствия/входа в систему)

Возможно вы хотите установить Экран приветствия. Экран приветствия представляет собой графический интерфейс, который предлагает пользователю ввести учетные данные, выбрать сеанс, и так далее. Можно использовать LightDM без Экрана приветствия, но только с настроеным автоматическим входом; в противном случае вам нужно установить xorg-server и какой-нибудь экран приветствия из перечисленных ниже.

Официальные репозитории содержат следующие экраны приветствия:

  • lightdm-gtk-greeter: Это экран приветствия по умолчанию, который LightDM пытается использовать, если в настройках не выбран какой-то другой.
  • lightdm-deepin-greeter (deepin-session-shell): Экран приветствия из проекта Deepin.
  • lightdm-pantheon-greeter: Экран приветствия из проекта elementary OS.
  • lightdm-slick-greeter: Основанный на GTK экран приветствия, сосредоточенный на внешнем виде сильнее чем lightdm-gtk-greeter; является форком lightdm-unity-greeterAUR и экраном по умолчанию в Linux Mint.
  • lightdm-webkit2-greeter: Экран приветствия, который использует Webkit2 для тем. Он заменяет lightdm-webkit-greeter.
  • lightdm-webkit-theme-litarvan: Современная и полнофункциональная тема Webkit2 LightDM.

В AUR доступны дополнительные экраны приветствия:

  • lightdm-unity-greeterAUR: Экран приветствия используемый Unity.
  • lightdm-mini-greeterAUR: Минималистичный настраиваемый однопользовательский экран приветствия.
  • lightdm-webkit-theme-aetherAUR: Элегантный и понятный экран приветствия с темой Arch Linux, написанный на основе lightdm и lightdm-webkit2-greeter.
  • lightdm-elephant-greeter-gitAUR: Небольшой и простой экран приветствия, по умолчанию запускается в Wayland-композиторе cage.
  • web-greeterAUR: Современный, привлекательный экран приветствия использует PyQtWebEngine для оформления. Он заменяет lightdm-webkit2-greeter.

Вы можете установить Экран приветствия по умолчанию, путём изменения раздела [Seat:*] в файле настроек LightDM, например:

/etc/lightdm/lightdm.conf
[Seat:*]
...
greeter-session=lightdm-вашэкран-greeter
...


Примечание: Для lightdm-pantheon-greeter файлом настроек является io.elementary.greeter.conf, а не lightdm-pantheon-greeter.conf

Каждый файл .desktop в каталоге /usr/share/xgreeters представляет доступный Экран приветствия. В этом примере доступны Экраны приветствия lightdm-gtk-greeter и lightdm-webkit2-greeter:

$ ls -1 /usr/share/xgreeters/
lightdm-gtk-greeter.desktop
lightdm-webkit2-greeter.desktop

Включение LightDM

Убедитесь в том что вы включили lightdm.service, чтобы LightDM запускался при загрузке. Смотрите также Экранный менеджер#Запуск экранного менеджера.

Инструмент командной строки

LightDM предлагает инструмент командной строки, dm-tool, который может быть использован для блокировки текущего места, переключения сеансов и т.д., что полезно в «минималистских» оконных менеджерах и для тестирования. Чтобы увидеть список доступных команд, выполните следующую команду:

$ dm-tool --help

Переключение пользователей

Важно: При использовании dm-tool lock или dm-tool switch-to-greeter сесиия не будет заблокирована без light-locker или другого экрана блокировки совместимого с loginctl. Также смотрите XScreenSaver#User switching from the lock screen.

Команда LightDM dm-tool может быть использована для входа нескольких пользователей в отдельные TTY. Приведённая ниже команда посылает запрос на блокировку текущей сессии и переключается на экран приветствия LightDM, что позволяет другому пользователю войти в систему.

$ dm-tool switch-to-greeter

Тестирование

Установите xorg-server-xephyr из официальных репозиториев.

Затем запустите LightDM как приложение X:

$ lightdm --test-mode --debug

Дополнительные настройки

LightDM может быть настроен редактированием его файла конфигурации /etc/lightdm/lightdm.conf.

Некоторые Экраны приветствия имеют свои собственные файлы настроек. Например:

lightdm-gtk-greeter: /etc/lightdm/lightdm-gtk-greeter.conf (или можно использовать графический инструмент lightdm-gtk-greeter-settings).

lightdm-webkit2-greeter: /etc/lightdm/lightdm-webkit2-greeter.conf

X session wrapper

Если вы мигрируете с xinit, то заметите, что сессия запущена не вашим shell. Это происходит, потому что не shell запускает сессию (и наследуются переменные вашего shell), а LightDM запускает сессию и не использую ваш шелл shell. LightDM запускает сессию с помощью скрипта и после этого графическое окружение. По умолчанию используется /etc/lightdm/Xsession.

Переменные окружения

Скрипт проверяет и использует /etc/profile, ~/.profile, /etc/xprofile и ~/.xprofile в указанном порядке. Если вы используете shell которые не использует эти файлы, то можете создать ~/.xprofile. (В этом примере используется zsh)

~/.xprofile
#!/bin/sh
[ -f ~/.config/zsh/.zshenv ] && . ~/.config/zsh/.zshenv

Если имеются переменные shell которые важны для вашей сессии (например Gtk или QT темы, расположение GNUPG, изменения в конфигурации, и т.д.) это позволит графическому окружению получить доступ к переменным окружения shell.

Keymap

Скрипт запускает Xkbmap с аргументами указанными в файлах /etc/X11/Xkbmap, ~/.Xkbmap. Если эти файлы не найдены, запускается xmodmap с /etc/X11/Xmodmap, ~/.Xmodmap. Если используется xkbmap, файлы обрабатываются при помощи cat. Пример:

~/.Xmodmap
-model pc105 -layout us,us,tr -variant ,dvorak,f -option grp:caps_toggle

Иначе, сессия наследует системные настройки X11. Эти настройки могут быть указаны в конфигурационных файлах xorg вручную или с помощью localectl set-x11-keymap. Смотрите Xorg/Keyboard configuration#Setting keyboard layout.

Несколько раскладок клавиатуры в lightdm-gtk-greeter

Чтобы включить возможность выбора настроенных раскладок клавиатуры на экране приветствияоткройте выпадающее меню и настройте раскладки. Также можно использовать графический lightdm-gtk-greeter-settings или откорректировать файл вручную:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
indicators = ~host;~spacer;~clock;~spacer;~layout;~language;~session;~a11y;~power

Используйте localectl, чтобы установить несколько раскладок, например de и его “вариант” neo с последней как основной:

# localectl --no-convert set-x11-keymap de,de pc105 neo,

Обратите внимание на запятую в конце, которая подразумевает пустой вариант для второго de.

Изменение фонового изображения/цветов

Вы можете установить фон в шестнадцатеричном формате цвета или изображение. Некоторые экраны приветствия предоставляют более расширенные параметры для фона, например выбор фона на экране входа, случайное изображение, и т.д.

Экран приветствия GTK

Можете воспользоваться программой с графическим интерфейсом lightdm-gtk-greeter-settings.

Пользователям, желающим настроить обои на экране приветствия необходимо отредактировать /etc/lightdm/lightdm-gtk-greeter.conf и определить переменную background в секции [greeter]. Например:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
background=/usr/share/pixmaps/black_and_white_photography-wallpaper-1920x1080.jpg
Примечание: Рекомендуется поместить PNG или JPG-файл в /usr/share/pixmaps т.к. LightDM нужен доступ на чтение файла обоев рабочего стола.

Тема GTK3 может быть указана в переменной theme-name в секции [greeter]. Тема для значков у курсора изменяются аналогично, как показано в примере:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name = Tela
icon-theme-name = Tela
cursor-theme-name = Tela
cursor-theme-size = 32
font-name = Cantarell 20

Экран приветствия Webkit2

lightdm-webkit2-greeter позволяет выбрать обои непосредственно на экране приветствия. Также доступна возможность показывать случайное изображение при каждом запуске, если используете Material theme. По умолчанию, как источник обоев используется /usr/share/backgrounds. Вы можете изменить каталог с изображениями отредактировав lightdm-webkit2-greeter.conf. Например:

/etc/lightdm/lightdm-webkit2-greeter.conf
[branding]
background_images = /usr/share/backgrounds

Экран приветствия Unity

Пользователи, использующие lightdm-unity-greeterAUR должны отредактировать /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml файл, а затем выполнить:

# glib-compile-schemas /usr/share/glib-2.0/schemas/

В соответствии с этой страницей.

Экран приветствия Slick

Используйте графический инструмент lightdm-settingsAUR.

Изменение аватара

Во-первых, убедитесь, что установлен пакет accountsservice из Официальных репозиториев, затем настройте его следующим образом, замените username на имя нужного пользователя.

  • Создайте PNG файл /var/lib/AccountsService/icons/username.png размером 96x96. Также доступны и другие форматы изображений, например JPEG.
  • Или создайте файл с изображением /home/username/.face и пропустите следующий шаг так как уже указан путь к каталогу пользователя.
  • Отредактируйте или создайте файл /var/lib/AccountsService/users/username и добавьте строки
[User]
Icon=/var/lib/AccountsService/icons/username

Имя файла здесь указывает на изображение созданное в первом шаге, если необходимо измените и расширение файла.

Примечание: Убедитесь, что оба созданных файлы имеют права 644, используйте chmod, чтобы исправить права, при необходимости.

Внедрение Arch-ориентированных 64x64 иконок

Пакет archlinux-artworkAUR содержит некоторые интересные примеры, которые устанавливаются в /usr/share/archlinux/icons и которые могут быть скопированы в /usr/share/icons/hicolor/64x64/devices следующим образом:

# find /usr/share/archlinux/icons -name "*64*" -exec cp {} /usr/share/icons/hicolor/64x64/devices \;

После копирования, пакет archlinux-artworkAUR может быть удалён.

Включение автовхода

Отредактируйте файл настроек LightDM, раскомментируйте эти строки и правильно настройте:

/etc/lightdm/lightdm.conf
[Seat:*]
autologin-user=username

Вы должны быть в группе autologin, чтобы входить в систему автоматически без ввода пароля:

# groupadd -r autologin
# gpasswd -a username autologin

LightDM производит вход в сессию указанную в ~/.dmrc пользователя для которого настроен автоматический вход. Чтобы обойти эти настройки, укажите autologin-session в lightdm.conf:

/etc/lightdm/lightdm.conf
[Seat:*]
autologin-user=username
autologin-session=session

Список доступных имён сессий можно посмотреть в /usr/share/xsessions/*.desktop для X сессий и в /usr/share/wayland-sessions/*.desktop для Wayland.

Примечание: Пользователи GNOME, использующие расширение gnome-keyring должны установить пустой пароль для своего gnome-keyring, чтобы он разблокировался автоматически.

Включение интерактивного без парольного входа в систему

LightDM проходит через PAM, так что вы должны сконфигурировать lightdm настройки PAM:

/etc/pam.d/lightdm
#%PAM-1.0
auth        sufficient  pam_succeed_if.so user ingroup nopasswdlogin
auth        include     system-login
...

Вы также должны входить в группу nopasswdlogin, чтобы получить возможность входа в систему в интерактивном режиме без ввода пароля:

# groupadd -r nopasswdlogin
# gpasswd -a username nopasswdlogin
Примечание: Пользователям GNOME, и пользователям Gnome-keyring, возможно, придётся следовать инструкциям в конце предыдущего раздела о включении автоматического логина.

Для того, чтобы создать новую учётную запись пользователя, которая входит в систему автоматически и дополнительно имеет возможность снова войти в систему без пароля, пользователь может быть создан с помощью дополнительного участия в обеих группах и т.д .:

# useradd -mG autologin,nopasswdlogin -s /bin/bash username

Гостевой вход

Примечание: Гость будет иметь беспарольный доступ к вашей системе после применения этих настроек.

Чтобы включить поддержку гостевого входа в LightDM (без изменения настроек вашей системы) потребуется следующее:

  1. guest-account-script: по умолчанию guest-account и включает в себя две команды:
    • add (для создания временного системного гостевого аккаунта, возвращает имя пользователя созданного аккаунта)
    • remove имя аккаунта(для удаления указанного аккаунта)
  2. Наличие autologin группы в которую созданный гостевой аккаунт должен быть добавлен (см. /etc/pam.d/lightdm-autologin)

В AUR доступны два пакета, которые включают гостевой вход в lightdm:

  • lightdm-guestAUR предоставляет (неизмененный) guest-session скрипт как и сам lightdm.
  • lightdm-guest-accountAUR предоставляет минимальную версию скрипта.

Скрытие системных пользователей и служб

Чтобы исключить системных пользователей из списка при входе в систему, установите дополнительную зависимость accountsservice или добавьте имя пользователя в /etc/lightdm/users.conf в секцию hidden-users. Первый вариант предпочтительнее, так как не нужно обновлять список при добавлении или удалении пользователей.

Миграция с SLiM

Переместите содержимое xinitrc в xprofile, удалите вызов запуска Оконного менеджера или Среды рабочего стола.

Вход с помощью ~/.xinitrc

Смотрите Display manager (Русский)#Использование ~/.xinitrc как сеанс.

NumLock включен по умолчанию

Установите пакет numlockx и отредактируйте /etc/lightdm/lightdm.conf:

/etc/lightdm/lightdm.conf
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on

Сессия по умолчанию

Lightdm, как и другие Экранные менеджеры, хранит последнюю выбранную сессию в ~/.dmrc. Для подробностей смотрите Display manager (Русский)#Настройка сеанса.

Регулировка положения входа окна

Экран приветствия GTK

Необходимо отредактировать /etc/lightdm/lightdm-gtk-greeter.conf и ввести значение в переменную position. Оно принимает значения x и y, как абсолютные (в пикселях), так и относительные (в процентах). Каждое значение может иметь дополнительное местоположение для привязки окна, start, center и end, которые отделяются от значения запятой.

Пример:

position=200,start 50%,center

VNC сервер

Lightdm также может использоваться для подключения через VNC. Установите пакет tigervnc на сервер и опционально как VNC-клиент на ПК клиента.

Настройте пароль для аутентификации на сервере под root:

# vncpasswd /etc/vncpasswd

Отредактируйте конфигурационный файл LightDM как показано ниже. Имейте ввиду, что listen-address настраивает VNC на соединение только с localhost. Это используется для разрешения соединения только через SSH and port forwarding. Проверьте, что на клиенте SSH используется localhost:5900 for the tunnel destination; использование 127.0.0.1:5900 или ::1:5900 нереализуемо при сетевых подключениях с двойным стеком. Если хотите разрешить небезопасные соединения можете отключить эти настройки.

/etc/lightdm/lightdm.conf
[VNCServer]
enabled=true
command=Xvnc -rfbauth /etc/vncpasswd
port=5900
listen-address=localhost
width=1024
height=768
depth=24

Теперь откройте SSH туннель и подключитесь к localhost как описано в TigerVNC#On the client.

Примечание: Если получите пустой экран при открытии VNC подключения, попробуйте другие LightDM экраны приветствия.

Блокировка экрана с помощью light-locker

light-locker простой блокировщик экрана для LightDM. После установки и корректного запуска, сеанс может быть заблокирован командой:

$ light-locker-command -l

Необходимо, чтобы light-locker был запущен перед запуском вашей сессии. По умолчанию, это доступно через XDG Autostart. Дополнительную информацию смотри в разделе Autostarting.

Использование нескольких мониторов

Иногда LightDM некорректно устанавливает разрешение экрана при использовании нескольких мониторов. Следующая конфигурация Xorg работает с двумя мониторами: большой основной экран слева и меньший вторичный справа. Порядок может быть изменён и дополнен.

/etc/X11/xorg.conf.d/52-resolution-fix.conf
Section "Monitor"
    Identifier "DP1"
    Option "PreferredMode" "3840x2160"
    Option "Primary" "1"
EndSection
Section "Monitor"
    Identifier "eDP1"
    Option "PreferredMode" "1920x1080"
    Option "RightOf" "DP1"
EndSection

Это делает параметр display-setup-script в /etc/lightdm/lightdm.conf избыточным.

Решение проблем

Автоматический вход не работает

Убедитесь, что autologin-user= в /etc/lightdm/lightdm.conf содержит допустимое значение. Последующие пробелы также вызывают ошибки.

Если автоматический вход приводит к пустому экрану или экран входа сразу возвращается, возможно необходимо установить logind-check-graphical=true.

Также можно установить lightdm-autologin-greeter-gitAUR для этой цели.

Просмотр текущей конфигурации

Для просмотра используемой конфигурации, запустите:

$ lightdm --show-config

Будут показаны текущие настройки, со ссылками на файлы в которых заданы эти настройки.

LightDM не запускается и моргает экран

Если вы столкнулись с миганием экрана, и в итоге LightDM не запускается, проверьте что вы определили Экран приветствия правильно, в файле настроек LightDM. И если вы правильно задали Экран приветствия GTK, убедитесь что xsessions-directory (по умолчанию: /usr/share/xsessions) существует и содержит по меньшей мере один файл .desktop.

Та же ошибка может произойти при запуске Lightdm, когда последняя запускаемая сессия больше не доступна (например, когда вы последний раз использовали Gnome, а потом удалили пакет gnome-session): самый простой способ - временно восстановить удалённый пакет. Другое возможное решение:

# dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:xfce

В этом примере устанавливается сессия по умолчанию "xfce" для пользователя 1000.

Локаль неправильно отображается

В случае, если ваша локаль не отображается правильно LightDM, добавьте свой языковой стандарт в /etc/environment

LANG=ru_RU.utf8

Если вы хотите, чтобы LightDM и экраны приветствия использовали язык отличающийся от системного, можете использовать параметр Environment= в Systemd#Drop-in files.

Не отвечает в течение нескольких минут после запуска

Возможно, необходимо увеличить энтропию. Для этого установите и включите haveged. Подробнее о проблеме https://github.com/canonical/lightdm/issues/17

Отсутствуют иконки в Экране приветствия GTK

Если вы используете lightdm-gtk-greeter как Экран приветствия и видите "заполнитель изображений" в виде иконок, убедитесь что действующая тема значков установлена и задействована. Проверьте следующий файл:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name=mate      # имя каталога из /usr/share/themes/
icon-theme-name=mate # имя каталога из /usr/share/icons/

LightDM зависает при попытке входа в систему

После ввода правильного имени пользователя и пароля, при попытке войти в систему, вы обнаруживаете что LightDM завис и вы не можете продолжить загрузку до Рабочего стола. Чтобы устранить эту проблему, переустановите пакет gdk-pixbuf2. Смотрите эту тему на форуме (Англ.).

LightDM отображается в неправильном мониторе

Если вы используете несколько мониторов, LightDM может отображаться в неправильном (например, если ваш основной монитор находится справа). Чтобы заставить экран LightDM отображаться на конкретном мониторе, отредактируйте /etc/lightdm/lightdm.conf и измените параметр display-setup-script, например:

/etc/lightdm/lightdm.conf
display-setup-script=xrandr --output HDMI-1 --primary

Замените HDMI-1 на ваш настоящий ID монитора, который можно найти с помощью результата вывода команды xrandr.

Если используете экран приветствия GTK, можете отредактировать /etc/lightdm/lightdm-gtk-greeter.conf и добавить параметр active-monitor например:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
active-monitor=0

Замените 0 на необходимый номер монитора.

LightDM не отображается или отображается только вывод TTY

Может случиться так, что ваша система загружается так быстро, что служба LightDM запускается перед загрузкой графического драйвера. Если это ваш случай, добавьте следующие настройки в файл lightdm.conf:

/etc/lightdm/lightdm.conf
[LightDM]
logind-check-graphical=true

Этот параметр заставит LightDM ждать, пока графический драйвер не будет готов перед запуском сессии Экранного приветствия/автозапуска.

LightDM запускается с маленьким FPS на Intel Graphics

Смотрите Intel graphics#AccelMethod.

Pulseaudio не запускается автоматически

Смотрите PulseAudio (Русский)#Выполнение.

Большая задержка перед загрузкой LightDM при зашифрованном HOME

Некоторые темы LightDM пытаются получить доступ к пользовательскому аватару расположенному в HOME. Если ваш HOME зашифрован, LightDM не может получить доступ к нему. Чтобы исправить ситуацию, сделайте следующее:

Загрузка останавливается на "[ OK ] Reached target Graphical Interface."

Возможно, что обзор пользователя и группы не удаётся, в случае если вы изменили /etc/nsswitch.conf. Это случается когда nsswitch.conf группа: включает ldap без настроек nss_initgroups_ignoreusers ALLLOCAL в /etc/nslcd.conf

Сессия Wayland не работает с дублирующимися записями GNOME

Некоторые экраны приветствия (lightdm-webkit2-greeter например) не поддерживает две сессии с одинаковым именем [1]. Для проверки на дублирующиеся записи выполните:

$ ls -1 /usr/share/wayland-sessions /usr/share/xsessions

Переименуйте дублирующиеся записи в /usr/share/xsessions. Например:

# mv /usr/share/xsessions/gnome.desktop /usr/share/xsessions/gnome.desktop.disabled

Первая попытка входа всегда завершается ошибкой

Укажите hostname как описано в Настройка сети. Также смотрите FS#47694.

Бесконечный цикл при входе

Если вы попали в замкнуты круг в котором вводите корректные имя пользователя и пароль, но экран чернеет и вы возвращаетесь на экран входа после каждой попытки. Удаление командой rm ~/.Xauthority (проблемного пользовательского файла .Xauthority) может решить проблему.

Другой причиной может быть, что вы заменили файл "lightdm.conf" для сброса настроек и в нём отсутствует строка:

session-wrapper=/etc/lightdm/Xsession

В этом случае, lightdm пытается использовать "lightdm-session" в качестве session-wrapper, которая отсутствует в Arch Linux.

Смотрите также