跳转至内容

LightDM

来自 ArchWiki

LightDM 是一个跨桌面的 显示管理器。其主要特点是:

  • 跨桌面 - 支持不同的桌面技术。
  • 支持不同的显示技术(X、Mir、Wayland ...)。
  • 轻量级 - 内存占用少,性能高。
  • 支持访客会话。
  • 支持远程登录(入站 - XDMCPVNC,出站 - XDMCP,PAM)。
  • 全面的测试套件。
  • 低代码复杂度。

有关 LightDM 设计的更多详细信息,请在此 查阅。

安装

安装 lightdm 包。

登录器

您可能需要 安装一个登录器。登录器是一个图形用户界面,用于提示用户输入凭据、允许用户选择会话等。可以不使用登录器而使用 LightDM,但前提是配置了自动登录;否则,您需要安装 xorg-server 和下面的一个登录器包。

基于 GTK 的登录器

  • LightDM GTK Greeter — LightDM 的 GTK 登录器。这是 LightDM 尝试使用的 **默认** 登录器,除非另有配置。
https://github.com/Xubuntu/lightdm-gtk-greeter || lightdm-gtk-greeter
  • lightdm-pantheon-greeter — 来自 elementary OS 项目的登录器。
https://github.com/elementary/greeter || lightdm-pantheon-greeter
  • slick-greeter — 一个基于 GTK 的登录器,比 lightdm-gtk-greeter 更注重外观,最初是 Unity 登录器的分支,并且是 Linux Mint 的默认设置。
https://github.com/linuxmint/slick-greeter || lightdm-slick-greeter
  • Web Greeter for LightDM — 一个使用 Webkit2 进行主题化的登录器。**该项目自 2019-05-22 起已停止开发。**
https://github.com/antergos/web-greeter || lightdm-webkit2-greeter
  • Mini-Greeter — 一个最小化、可配置的、单用户 GTK3 登录器。
https://github.com/prikhi/lightdm-mini-greeter || lightdm-mini-greeterAUR
  • Nody Greeter — LightDM 登录器,允许使用 Web 技术创建精美的。使用 Node.js、Electron.js 和 NodeGTK 构建。
https://github.com/JezerM/nody-greeter || nody-greeterAUR

基于 Qt 的登录器

  • Web Greeter — 一个现代、视觉吸引人的登录器,使用 PyQtWebEngine 进行主题化。它取代了 lightdm-webkit2-greeter
https://github.com/JezerM/web-greeter || web-greeterAUR
  • LightDM KDE Greeter — KDE 的 LightDM 登录器。
https://invent.kde.org/plasma/lightdm-kde-greeter || lightdm-kde-greeterAUR

其他登录器

  • lightdm-deepin-greeter — 来自 Deepin 项目的登录器。
https://github.com/linuxdeepin/dde-session-shell || deepin-session-shell
  • LightDM Elephant Greeter — 一个小巧简单的登录器,默认在 cage Wayland 合成器中运行。
https://github.com/max-moser/lightdm-elephant-greeter || lightdm-elephant-greeter-gitAUR

lightdm-webkit2-greeter 的主题

  • Litarvan's LightDM WebKit2 theme — 一个现代、功能齐全的主题。
https://github.com/Litarvan/lightdm-webkit-theme-litarvan || lightdm-webkit-theme-litarvan
  • Aether — 一个时尚、简洁的 Arch Linux 主题登录屏幕。
https://github.com/NoiSek/Aether || lightdm-webkit-theme-aetherAUR

用于 web-greeterAURnody-greeterAUR 的主题

  • Shikai — 美学、可定制的主题。
https://github.com/TheWisker/Shikai || shikai-themeAUR

您可以通过修改 LightDM 配置文件中的 [Seat:*] 部分来设置默认登录器,如下所示:

/etc/lightdm/lightdm.conf
[Seat:*]
...
greeter-session=lightdm-yourgreeter-greeter
...
注意 lightdm-pantheon-greeter 的对应配置文件是 io.elementary.greeter.conf,而不是 lightdm-pantheon-greeter.conf

检查可用登录器的一种方法是列出 /usr/share/xgreeters 目录中的文件;每个 .desktop 文件代表一个可用的登录器。在此示例中,lightdm-gtk-greeterlightdm-webkit2-greeter 登录器是可用的。

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

启用 LightDM

确保 启用 lightdm.service,以便 LightDM 在启动时启动;另请参阅 Display manager#Loading the display manager

命令行工具

LightDM 提供了一个命令行工具 dm-tool,可用于锁定当前会话、切换会话等,这对于“极简主义”窗口管理器和测试很有用。要查看可用命令列表,请执行:

$ dm-tool --help

用户切换

警告 dm-tool(使用 dm-tool lockdm-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 GUI)。

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

X 会话包装器

本文档或章节可以合并到 Xprofile

注意: 重复信息(请在 Talk:LightDM 讨论)

如果您正在从 xinit 迁移,您会注意到显示并非由您的 shell 启动。这是因为,与您的 shell 启动显示(并且显示继承您 shell 的环境)不同,LightDM 启动您的显示,并且不加载您的 shell。LightDM 通过运行一个包装器脚本来启动显示,该脚本最终会执行您的图形环境。默认情况下,会运行 /etc/lightdm/Xsession

环境变量

该脚本按顺序检查并加载 /etc/profile~/.profile/etc/xprofile~/.xprofile。如果您使用的 shell 不加载这些文件中的任何一个,您可以创建一个 ~/.xprofile 来实现这一点。(在此示例中,登录 shell 是 zsh)。

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

如果您有对您的显示至关重要的 shell 变量(例如 Gtk 或 QT 主题、GNUPG 位置、配置覆盖等),这将允许您的图形环境访问您的环境,而无需由您的登录 shell 启动。

键盘映射

该脚本使用 /etc/X11/Xkbmap~/.Xkbmap 文件中提供的参数运行 Xkbmap。如果找不到这些文件,它会使用 /etc/X11/Xmodmap~/.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 GUI,或者直接编辑配置文件:

/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 GUI。

希望自定义登录器屏幕上壁纸的用户需要编辑 /etc/lightdm/lightdm-gtk-greeter.conf 并在 [greeter] 部分定义 background 变量。例如:

/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 主题可以通过 [greeter] 部分中的 theme-name 变量指定。图标和光标主题可以以相同方式设置,如下例所示:

/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
HiDPI 或 4K 配置

在 HiDPI 或 4K 显示器上开箱即用 lightdm-gtk-greeter 会导致文本和对话框非常小,可以通过这种方式强制设置 DPI:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
xft-dpi = 192

在这种情况下,“192”表示屏幕 96 DPI 设置的两倍,这等同于其他图形环境中的2X Scale设置。可以使用 Xorg 中的 xdpyinfo | grep dots 来获取该值,例如。

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
注意 背景图片目录必须可供 LightDM 用户访问,因此不应位于 /home 下的任何位置。

Slick 登录器

使用 lightdm-settingsAUR GUI

更改您的头像

首先,确保安装了 accountsservice 包,然后按如下方式设置它,将 username 替换为所需用户的登录名。

  • 创建文件 /var/lib/AccountsService/icons/username.png,使用 96x96 的 PNG 图片文件。也可以使用其他图片文件格式,例如 JPEG。
  • 或者,将图片文件创建为 /home/username/.face,如果默认设置已指向用户主目录路径,则跳过下一步。
  • 编辑或创建账户设置文件 /var/lib/AccountsService/users/username,并添加以下行:
[User]
Icon=/var/lib/AccountsService/icons/username.png

此处的文件名应指向第一步中创建的图标,因此请根据需要调整文件名扩展名。

注意 确保创建的两个文件都具有 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 中指定的会话进行登录。要覆盖此文件,请在 lightdm.conf 中指定 autologin-session

/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 用户需要为其密钥环设置一个空白密码才能自动解锁。

启用交互式无密码登录

LightDM 通过 PAM 进行身份验证,因此您必须配置 PAM 的 lightdm 配置:

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

然后您还必须属于 nopasswdlogin 组和 autologin 组,以便能够交互式地登录而不输入密码。

# groupadd -r nopasswdlogin
# groupadd -r autologin
# gpasswd -a username nopasswdlogin
# gpasswd -a username autologin
注意 GNOME 用户以及所有 gnome-keyring 用户可能需要遵循上一节末尾关于启用自动登录的说明。

要创建一个新用户账户,该账户将自动登录并且还能够无密码再次登录,该用户可以被创建为这两个组的附加成员,例如:

# useradd -mG autologin,nopasswdlogin username

启用访客会话

注意 启用此功能后,访客用户将拥有对您系统的无密码访问权限。

要启用 LightDM 中的访客会话(而不更改您的系统配置),您至少需要两样东西:

  1. 一个 guest-account-script:默认为 guest-account,接受两个命令:
    • add(创建临时访客系统账户并返回创建账户的用户名)
    • remove** account name**(删除相应账户)
  2. 一个 autologin 组,创建的访客账户必须添加到其中(参见 /etc/pam.d/lightdm-autologin)。

有两个 AUR 包可以启用 LightDM 中的访客会话:

  • lightdm-guestAUR,它提供了(基本未修改的)上游 guest-session 脚本以及 LightDM 本身。
  • lightdm-guest-accountAUR,它仅提供脚本的最小版本。

隐藏系统和服务用户

为了防止系统用户显示在登录界面,请安装可选依赖项 accountsservice,或者将用户名添加到 /etc/lightdm/users.confhidden-users 部分。第一个选项的优点是不需要在添加或删除更多用户时更新列表。

从 SLiM 迁移

本文档或章节可以合并到 Display Manager

注意:非 LightDM 特定(甚至不是 SLiM 特定,因为 XDM 也使用 xinitrc)。也许这值得在 Display Manager 页面上放一句话?(请在 Talk:LightDM 讨论)

xinitrc 的内容移至 xprofile,并移除启动 窗口管理器桌面环境 的调用。

使用 ~/.xinitrc 登录

请参阅 Display manager#Run ~/.xinitrc as a session

默认启用 NumLock

安装 numlockx 包,然后编辑 /etc/lightdm/lightdm.conf

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

默认会话

Lightdm 和其他 DM 一样,将最后选择的 xsession 存储在 ~/.dmrc 中。有关更多信息,请参阅 Display manager#Session configuration

调整登录窗口位置

GTK 登录器

用户需要编辑 /etc/lightdm/lightdm-gtk-greeter.conf 并为 position 变量输入一个值。它接受 xy 值,可以是绝对值(像素)或相对值(百分比)。每个值还可以有一个额外的窗口锚定位置,startcenterend,用逗号与值分隔。

示例

position=200,start 50%,center

VNC 服务器

Lightdm 也可以通过 VNC 进行连接。确保在服务器端安装 tigervnc,并在客户端 PC 上选择性地作为 VNC 客户端。

在服务器上作为 root 设置身份验证密码:

# vncpasswd /etc/vncpasswd

像下面这样编辑 LightDM 配置文件。请注意,listen-address 配置 VNC 只监听来自 localhost 的连接。这用于仅允许通过 SSH 和端口转发 进行连接。在 SSH 客户端上,请确保您使用 localhost:5900 作为隧道目标;在双栈网络连接上,使用 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

这使得 /etc/lightdm/lightdm.conf 中的 display-setup-script 调整变得多余。

故障排除

自动登录不起作用

确保 /etc/lightdm/lightdm.conf 中的 autologin-user= 包含正确的值。尾随空格会导致错误。

如果自动登录失败,出现空白屏幕或登录屏幕立即返回,您可能需要设置 logind-check-graphical=true

您也可以为该特殊目的安装 lightdm-autologin-greeter-gitAUR

查看当前配置

要查看生效配置,请运行:

$ lightdm --show-config

这将显示当前设置,以及读取这些设置的配置文件。

LightDM 未启动且屏幕闪烁

如果您在启动时遇到持续的屏幕闪烁,最终没有 LightDM,请确保您已在 LightDM 的配置文件中正确定义了登录器。如果您已正确定义了 GTK 登录器,请确保 xsessions-directory(默认:/usr/share/xsessions)存在并且至少包含一个 .desktop 文件。

如果最后一个使用的会话不再可用(例如,您上次使用 gnome,然后删除了 gnome-session 包),在 lightdm 启动时可能会出现相同的错误;最简单的解决方法是暂时恢复已删除的包。另一个解决方案可能是:

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

此示例将用户 1000 的默认会话设置为“xfce”。

显示错误的区域设置

如果您的区域设置在 LightDM 中未正确显示,请将您的区域设置添加到 /etc/environment

LANG=pt_PT.utf8

或者,如果您希望 LightDM 及其登录器使用非系统默认区域设置的语言,您可以在 drop-in file 中使用 Environment= 选项。

GTK 登录器图标缺失

如果您将 lightdm-gtk-greeter 用作登录器,并且它显示占位符图标,请确保已安装并配置了有效的图标主题和主题。请检查以下文件:

/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
theme-name=mate      # this should be the name of a directory under /usr/share/themes/
icon-theme-name=mate # this should be the name of a fully featured icons set directory under /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 greeter,您可以编辑 /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 在它们上生成 greeter/自动启动会话之前等待图形设备就绪。

对于新版本的 LightDM,这已经是默认设置。 因此,在某些硬件上,您的图形驱动程序可能未被正确检测,LightDM 可能永远不会尝试启动 greeter——即使在系统启动稳定后也是如此。如果发生这种情况,将其设置为 false 将禁用此检查,并强制 LightDM 无论如何启动 greeter。

LightDM 在 Intel 图形上以低 FPS 运行

请参阅 Intel graphics#AccelMethod

PulseAudio 未自动启动

请参阅 PulseAudio#Running

加密的 HOME 目录在 LightDM 显示之前有很长的停顿

一些 LightDM 主题会尝试访问位于 HOME 的用户头像。如果您的 HOME 已加密,LightDM 将无法访问它并挂起。为防止这种情况发生,您可以:

启动卡在 "[ OK ] Reached target Graphical Interface."

如果您修改了 /etc/nsswitch.conf,则用户和组查找可能会失败。当 nsswitch.conf 的 group: 包含 ldap 而未在 /etc/nslcd.conf 中设置 nss_initgroups_ignoreusers ALLLOCAL 时会发生这种情况。

Wayland 会话在 greeter 中出现重复的 GNOME 条目时无法正常工作

一些 greeter(例如 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

登录时第一次尝试总是 segfault

按照 Network configuration#Set the hostname 中的说明设置主机名。另请参阅 FS#47694

无限登录循环

如果您输入正确的用户名和密码后,屏幕变黑,然后每次尝试都返回登录提示,陷入循环,运行 rm ~/.Xauthority(或该用户有问题的 .Xauthority)可能会解决此问题。

这可能是因为您尝试从头开始重新创建 "lightdm.conf" 文件,而您的版本缺少这一行:

session-wrapper=/etc/lightdm/Xsession

在这种情况下,lightdm 会尝试使用 "lightdm-session" 作为会话包装器,而该包装器在 Arch Linux 上不存在。

如果您的 lightdm.conf 文件包含预期的会话包装器,但 lightdm 日志表明正在使用默认会话包装器,请确保您的 lightdm.conf 文件在启动时可用。例如,您可能在主目录中创建了一个文件的符号链接,但在 LightDM 服务启动之前,您的主目录尚未挂载。在这种情况下,LightDM 将回退到默认的会话包装器。

Wayland 会话中输入设备无法工作

启动 Wayland 会话时,输入设备有时可能无法工作,除非断开并重新连接物理连接。请参阅 LightDM issue 63

一种解决方法是延迟 Wayland 合成器的启动,在 /etc/lightdm/Xsession 中添加 sleep 1。请参阅 archlinux/packaging/packages/lightdm!4,其中提供了 Arch 包的建议解决方法。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.