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

Перезагружаемся и проверяем.