Lightdm
lightdm - это легковесный менеджер входа для linux. Отличается быстротой, лёгкостью исходного кода и хорошей раширяемостью.
Настройка
Файл конфигурации
Файл конфигурации находится по пути /etc/lightdm/lightdm.conf. Значения задаются обычным способом: опция=значение.
Greeter (экран приветствия)
Greeter - это то самое окно в котором вы будете вводить имя и пароль или выключать компьютер. Экран приветствия можно менять в конфигурационном файле /etc/lightdm/lightdm.conf.
Ниже приведены ссылки доступных Greeter-ов в репозитории Debian.
lightdm-kde-greeter
razorqt-lightdm-greeter
lightdm-gtk-greeter
Изменение Greeter-а
Для того чтобы вывести список доступных greeter-ов выполните команду
ls -l /usr/share/xgreeters/
Далее открываем любым редактором файл /etc/lightdm/lightdm.conf и ищем строчку с текстом #[Seat:0]. Сразу под ней добавляем данную строчку:
greeter-session=lightdm-gtk-greeter
Вместо lightdm-gtk-greeter указываем тот greeter который нам нужен.
Перезагружаем компьютер и проверяем.
Опции файла lightdm.conf
Здесь перечислены все опции которые получилось использовать на практике. Опции надо создавать в секциях дабы избежать ошибок. Проверить файл на ошибки можно командой lightdm --show-config.
Секция [LightDM]
minimum-vt
Начальный виртуальный терминал запускающий дисплей.
minimum-vt=7
user-authority-in-system-dir
Установите true если полномочия сессии должны находиться в системном месте.
guest-account-script
Скрипт выполняется для настройки учётной записи гостя.
logind-check-graphical
Может произойти что ваша система будет загружатся слишком быстро, и сервис lightdm запускается перед тем как ваши графические драйверы будут загружены. при таком случае надо изменить (или добавить в секцию [LightDm]) следующую строчку:
logind-check-graphical=true
Этот параметр прикажет lightdm ждать пока графические устройства не будут готовы.
log-directory
Директория папки в которой будут хранится логи.
Создавать папки не обязательно, все необходимые папки и подпапки создаются автоматически при перезагрузке системы.
run-directory
Директория в которой хранятся файлы запущенного lightdm. Создавать папки не обязательно, все необходимые папки и подпапки создаются автоматически при перезагрузке системы.
cache-directory
Директория для хранения cache-файлов. Создавать папки не обязательно, все необходимые папки и подпапки создаются автоматически при перезагрузке системы.
sessions-directory
Директории для поиска сессий. Перечисляются через :.
remote-sessions-directory
Директории для поиска удалённых сессий.
greeters-directory
Директории для поиска greerer-ов. Перечисляются через :.
Секция [SeatDefaults]
Писать данные значения в [SeatDefaults] не рекомендуется, используйте [Seat:*] вместо него.
Секция [Seat:*]
Вместо * надо писать номер начиная с нуля. Таким образом можно создавать несколько конфигураций.
type
Тип места. Поддерживаются всего 2 значения: xlocal и xremote.
pam-service
PAM (Pluggable Authentication Module) сервис используемый для входа.
pam-autologin-service
PAM (Pluggable Authentication Module) сервис используемый для автологина.
pam-greeter-service
PAM (Pluggable Authentication Module) сервис используемый для greeter-ов.
xserver-command
Команда для запуска X сервера. Также можно задавать аргументы:
xserver-command=X [опции]
Аргументы можно узнать коммандой X --help
xserver-config
Файл конфигурации для передачи на X сервер.
xserver-allow-tcp
Установите true если соединения TCP/IP разрешены к X серверу.
xserver-share
Установите true если X сервер является общим для обоих greeter и сессии.
xserver-hostname
Имя хоста X сервера. Только для типа xremote.
xserver-display-number
Номер дисплея X сервера. Только для типа xremote.
xdmcp-manager
XDMCP менеджер для подключения к. Подрузамевает xserver-allow-tcp=true.
xdmcp-port
XDMCP UDP/IP порт для связи.
xdmcp-key
Ключ для использования XDM-AUTHENTICATION-1 (хранится в /etc/lightdm/keys.conf).
unity-compositor-command
Команда для запуска unity compositor. Можно использовать аргументы:
unity-compositor-command=unity-system-compositor [опции]
unity-compositor-timeout
Подождать указанное количество секунд чтобы запустить compositor.
greeter-session
Позволяет указать greeter для загрузки сессии. Чтобы посмотреть список доступных в системе greeter-ов введите в терминале:
ls -l /usr/share/xgreeters/
greeter-hide-users
Установите true чтобы скрыть список пользователей.
greeter-allow-guest
Установите true чтобы greeter показал вариант для входа гостя.
greeter-show-manual-login
Установите true чтобы greeter предлагал вариант ручного входа в систему.
greeter-show-remote-login
Установите true чтобы greeter предлагал вариант удалённого входа в систему.
user-session
Сессия загружаемая для пользователя.
allow-user-switching
Установите true чтобы разрешить переключать пользователей.
allow-guest
Значение true позволяет включить гостевой вход.
guest-session
Сессия загружаемая для гостей. Отменяет значение user-session.
session-wrapper
Скрипт обёртка для запуска сессии. Пример:
session-wrapper=/etc/X11/xdm/Xsession
greeter-wrapper
Скрипт обёртка для запуска greeter.
guest-wrapper
Скрипт обёртка для запуска гостевой сессии.
display-setup-script
Путь до скрипта запускаемого при запуске greeter сессии (запускаетя от root). Обычно используется при неполадках связанных с разрешением экрана, но об этом позже.
display-stopped-script
Путь до скрипта запускаемого при остановке дисплейного сервера. (запускаетя от root)
session-cleanup-script
Путь до скрипта запускаемого при выходе пользователя из сеанса. (запускаетя от root)
autologin-guest
Установите true чтобы авторизироватся как гость по умолчанию.
autologin-user-timeout
Секунды ожидания перед автоматическим входом.
autologin-session
Сессия к загрузке для автоматического входа в систему.
autologin-in-background
Установите true если автоматический вход не должен быть немедленно активирован.
exit-on-failure
Установите true если daemon должен выйти если это место (Seat) не работает.
Секция [XDMCPServer]
XDMCP Server configuration
enabled
Установите true если XDCMP соединения должны быть разрешены.
port
UDP/IP порт для прослушивания соединений.
key
Ключ аутентификации используемый для XDM-AUTHENTICATION-1 или оставьте пустым чтобы не использовать аутентификацию (ключи хранятся в keys.conf).
Ключ аутентификации является 56 битным DES ключом, указанном в шестнадцатеричном 0xnnnnnnnnnnnnnn. В качестве альтернативы это может быть слово, и первые 7 символов используются в качестве ключа.
Зашифровать пароль в des можно здесь - Сервис для шифрования.расшифрование DES онлайн
Секция [VNCServer]
VNC Server configuration
enabled
Установите true если VNC соединения должны быть разрешены.
command
Команда для запуска сервера с Xvnc.
port
TCP/IP порт для прослушивания соединений.
width
Ширина дисплея для использования.
height
Высота дисплея для использования.
depth
Глубина цвета дисплея для использования
Изменение фона
Цвет фона
В качестве заднего фона экрана приветствия можно задать обычный цвет. Для этого открываем любым редактором файл /etc/lightdm/lightdm-gtk-greeter.conf и ищем строчку background=. Значение задаётся в hex формате. Пример: background=#FF00FF.
Изображение вместо цвета
Фон в чистом lightdm изменяется в /etc/lightdm/lightdm-gtk-greeter.conf, в случае с остальными greeter-ами читайте к прилагающейся к ним инструкции.
Открываем файл /etc/lightdm/lightdm-gtk-greeter.conf и ищем строчку background=. Удаляем прежнее значение и указываем путь к картинке. Поддерживаются практически все популярные форматы.
Изменение шрифта
Для того чтобы изменить шрифт экрана приветствия нужно сделать простые манипуляции.
Скачиваем из интернета любой понравившийся шрифт. Закидываем его в папку /usr/share/fonts/truetype/. Или вы можете узнать список системных щрифтов:
fc-list :lang=ru|cut -d " " -f 2-99
И использовать нужный скопировав название до двоеточия.
Дальше заходим в файл /etc/lightdm/lightdm-gtk-greeter.conf и ищем строчку с текстом:
font-name
Присваиваем этой опции значение в качестве имени нашего шрифта. Важно соблюдать регистр, а также допускается наличие пробелов. Перезагружаемся и пробуем написать что-нибудь в текстбоксах.
Автовход
Для того чтобы воспользоватся автовходом без ввода пароля, нужно отредактировать файл /etc/lightdm/lightdm.conf. За автовход отвечает строчка:
autologin-user=
Задаём опции значение имени пользователя. Перезагружаем компьютер и проверяем.
За то как долго экран приветствия будет ждать перед запуском автологина отвечает строчка:
autologin-user-timeout=
Примечание: если данная опция закомментирована то задержка равна 0.
Следующая строчка включает автоматический вход с гостевой учетной записи:
autologin-guest=true
Запуск команды когда запускается X, когда запускается экран приветствия или когда запускается сессия
Когда lightdm запускает X вы можете запустить команду или скрипт, установив значение в переменную:
display-setup-script=[путь до скрипта или команда]
Тоже самое можно делать и когда запускается экран приветствия:
greeter-setup-script=[путь до скрипта или команда]
Или когда начинается сеанс пользователя:
session-setup-script=[путь до скрипта или команда]
Если lightdm запускается некорректно
У некоторых пользователей наблюдаются неполадки с разрешением или отображением изображения на экран при запуске lightdm. Для того чтобы это исправить нужно выполнить следующие операции. Выполняем в терминале:
xrandr
Вывод будет приблизительно такой:
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 4096 x 4096
VGA-1 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 428mm x 255mm
1440x900 59.89 + 74.98*
1280x1024 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
TV-1 disconnected (normal left inverted right x axis y axis)
На экран выведутся все доступные разрешения экрана. DVI-I-1 это дисплей. Вместо этого значения у вас может быть другое.
Теперь необходимо создать скрипт отвечающий за изменение разрешения экрана.
mkdir ~/xrandr
touch ~/xrandr/resolution.sh
Теперь открываем файл ~/xrandr/resolution.sh любым редактором. Копируем в него следующие строки:
#!/bin/sh
xrandr --output DVI-I-1 --primary --mode 1440x900
Вместо DVI-I-1 подставляем имя вашего дисплея из вывода команды xrandr. Вместо 1440x900 указываем необходимое разрешение экрана из доступных. При необходимости дописываем опцию --dpi и указываем значение для необходимой плотности пикселей.
Даём нашему скрипту права запуска:
chmod +x ~/xrandr/resolution.sh
Теперь открываем файл /etc/lightdm.conf и редактируем опцию display-setup-script таким образом:
display-setup-script=[путь до домашнего каталога]/xrandr/resolution.sh
Перезагружаемся и проверяем.