LightDM (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Lightdm翻译。上次翻译日期:2016-07-06。如果英文版本有所更改,则您可以帮助同步翻译。

Tango-preferences-desktop-locale-modified.png这篇文章或章节的翻译不反映原文。Tango-preferences-desktop-locale-modified.png

原因:Not updated since 2016(在 Talk:LightDM (简体中文)# 中讨论)

LightDM 是一个跨桌面环境的显示管理器。它的特点有:

  • 跨桌面 - 支持不同的桌面环境.
  • 支持多种显示技术(X, Wayland, ...).
  • 轻量级 - 低内存使用,高性能.
  • 支持定制会话.
  • 支持远程登录(XDMCP, VNC, XDMCP, 可插拔).
  • 完善的测试组件.
  • 低代码复杂度.

更多关于LightDM的特点可以在这里找到。

安装

安装 软件包 lightdm. 注意稳定版版本号是偶数的 (1.8, 1.10) 而开发版是奇数的 (1.9, 1.11). 开发版可以安装 lightdm-develAUR 或者 lightdm-bzrAUR[损坏的链接:package not found].

Greeter

可能需要安装一个 greeter。 greeter 是提示用户输入密码的 GUI 界面。如果配置了自动登录,可以不使用 greeter。参考的 greeter 是 lightdm-gtk-greeter,默认的配置会使用它。

官方软件仓库包含如下 greeter:

其他的 greeter 可以从 AUR 安装:

你可以通过更改配置文件的 [Seat:*] 部分设置 greeter:

/etc/lightdm/lightdm.conf
[Seat:*]
...
greeter-session=lightdm-yourgreeter-greeter

通过下面命令可以获取 greeter-session 的可用选项,/usr/share/xgreeters 目录下的每个 .desktop 目录都代表一个可用 greeter。下面例子中包含 lightdm-gtk-greeterlightdm-kde-greeter:

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

启用 LightDM

确保使用 systemctl 启用 lightdm.service, 如此 LightDM 将会开机启动。参考 Display manager#Loading the display manager

命令行工具

LightDM 提供一个命令行工具, dm-tool. 它可用来锁定当前 seat, 切换会话,等等。这对'极简'窗口管理器和测试非常有用。要列出可用命令,运行:

$ dm-tool --help

测试

首先,安装 软件包 xorg-server-xephyr.

之后,把 LightDM 作为 X 程序启动:

$ lightdm --test-mode --debug

配置和调整

/etc/lightdm/lightdm.conf 包含 LightDM 的默认配置。某些 greeter 拥有自己的配置文件。例如

可以直接修改 LightDM 的配置文件,或者使用位于 /usr/lib/lightdm/lightdm/lightdm-set-defaults程序。想知道一些可用选项,执行:

$ man lightdm-set-defaults

然而一大部分变量要直接编辑配置文件而不是使用 lightdm-set-defaults 程序。

更改背景图片/颜色

如果您想使用一个纯色 (非图片) 的背景,只需将 background 变量设置为十六进制的颜色。

例如:

background=#000000

如果你想用图像来代替,请看下文。

GTK+ greeter

可以使用 lightdm-gtk-greeter-settings 图形界面进行设置。

如果需要在 greeter 上使用自定义图片,请修改 /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 用户需要有背景文件的读取权限。

Webkit2 greeter

The lightdm-webkit2-greeter allows you to choose a background image directly on the login screen. It also offers an option to display a random image each time it starts. By default, images are sourced from /usr/share/backgrounds. You can change the background images directory by editing lightdm-webkit2-greeter.conf. For example:

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

Unity greeter

如果使用的是 lightdm-unity-greeterAUR,请修改 /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml,然后执行:

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

可以参考这个页面。

KDE greeter

转到 系统设置 > 登录界面 (LightDM) 设置你的主题与背景图片。

改变你的头像

提示: If you are using KDE, you can change your avatar in KDE System Settings.

首先确保已安装 accountsservice 软件包,然后如下设置,把 username 替换为目标用户的登录名。文件名中不要加 .png 后缀。

  • 编辑或创建 /var/lib/AccountsService/users/username, 添加如下内容:
[User]
Icon=/var/lib/AccountsService/icons/username.png

I

  • 使用 96x96 PNG 图表文件来创建 /var/lib/AccountsService/icons/username.png.
注意: 确保创建的文件都是 644 权限,使用 chmod 来更正。

Arch 为中心的 64x64 图标来源

AURarchlinux-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
autologin-user=username

你必须是 autologin 组的成员来使得自己登录时不用输入密码:

# groupadd autologin
# gpasswd -a username autologin
注意: GNOME 用户, 更一般地 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 users, and by extension any gnome-keyring user may have to follow the instructions at the end of the previous section on enabling autologin.

To create a new user account that logs in automatically and additionally able to login again without a password the user can be created with supplementary membership of both groups, e.g.:

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

隐藏系统和服务用户

为防止系统用户出现在登录界面,安装可选依赖 accountsservice, 或者把这些用户名添加到 /etc/lightdm/users.conf 下的 hidden-users 里。前者优势在于添加/删除用户时不用更新列表。

从 SLiM 迁移

xinitrc 的内容搬到 xprofile, 删除调用窗口管理器桌面环境的部分。

默认打开小键盘

安装 numlockx, 编辑 /etc/lightdm/lightdm.conf 添加以下几行:

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

Xfce4 下多用户切换

如果您使用 Xfce 桌面,在应用程序启动器/Whisker Menu 的活动按钮的多用户切换功能会特别关注 gdmflexiserver 可执行程序以启用自身。如果你提供了一个可执行 Shell 脚本 /usr/bin/gdmflexiserver 并且它包含

#!/bin/sh
/usr/bin/dm-tool switch-to-greeter

如此 Xfce 下多用户切换应该在 Lightdm 有效。

Alternatively, if you use the Whisker Menu, you can go to Properties -> Commands and change the "Switch Users" command directly to:

 dm-tool switch-to-greeter

你也可从 XScreenSaver 锁屏界面切换用户 - 参见 XScreenSaver#LightDM.

默认会话

Lightdm, 像其他 DM 一样,把上次选择的 xsession 存储在 ~/.dmrc. 更多信息见 Display manager#Session configuration.

修改登录窗口的位置

GTK+ greeter

编辑 /etc/lightdm/lightdm-gtk-greeter.conf 文件,设置 position,这个设置接受 xy 变量,可以使用绝对值(pixels)或相对值(percent). 每个变量都可以增加一个额外的锚定位置 start, centerend,数值间用 comma 分隔.

Example:

position=200,start 50%,center

疑难问题

如果你一直屏幕闪烁并且启动后没有 lightdm, 确保你已在 lightdm 的配置文件里正确设置了 greeter. 如果你正确设置了 GTK greeter, 确保 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

此例为用户 1000 设置默认会话为 "xfce".

显示错误语言环境

如果 Lightdm 未正常显示你的语言环境,把你的语言环境添加到 /etc/environment (自己酌情更改)

 LANG=pt_PT.utf8

Xresources 未被正常解析

当你的 Xresources 文件未被预处理器加载时,会导致一个 LightDM 的上游 bug. 在实际中,这意味着使用 #define 设置的变量在之后调用时没有被扩展。如果你使用 urxvt 的自定义颜色时,这会表现为一个全粉色的屏幕。要修复,编辑 /etc/lightdm/Xsession 并搜索以下内容:

xrdb -nocpp -merge "$file"

更改为读取:

xrdb -merge "$file"

你的 Xresources 会正常加载并且变量会正常扩展。

使用 GTK greeter 丢失图标

如果你把 lightdm-gtk-greeter 作为 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 软件包。参见 这个论坛帖子。

LigthDM 显示在错误的显示器上

如果你使用的多显示器,LightDM 可能会显示在不该出现的那一个上 (例如: 主显示器在左边). 为强制 LightDM 登录界面显示在特定的显示器上,编辑 /etc/lightdm/lightdm.conf 更改 display-setup-script 参数如下:

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

替换 HDMI1 为你的正确的显示器 ID, 可从 xrandr 命令输出获取。

LightDM 不出现

可能系统启动太快了,LightDM 服务在图形驱动加载前就启动了。如果是这样,将下面配置加入 lightdm.conf 文件:

   [LightDM]
   logind-check-graphical=true

设置后 LightDM 会等待图形驱动加载完成后再启动 greeters/autostarting 会话。

Pulseaudio 不自动启动

PulseAudio#Running

另见