arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
402 lines (252 loc) • 17.9 kB
Markdown
相关文章
* [Display manager](/index.php/Display_manager "Display manager")
* [GDM](/index.php/GDM "GDM")
* [LXDM](/index.php/LXDM "LXDM")
**翻译状态:** 本文是英文页面 [Lightdm](/index.php/Lightdm "Lightdm") 的[翻译](/index.php/ArchWiki_Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ArchWiki Translation Team (简体中文)"),最后翻译时间:2016-07-06,点击[这里](https://wiki.archlinux.org/index.php?title=Lightdm&diff=0&oldid=436210)可以查看翻译后英文页面的改动。
[LightDM](http://www.freedesktop.org/wiki/Software/LightDM) 是一个跨桌面环境的[显示管理器](/index.php/Display_manager_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Display manager (简体中文)")。它的特点有:
* 跨桌面 - 支持不同的桌面环境.
* 支持多种显示技术(X, Wayland, ...).
* 轻量级 - 低内存使用,高性能.
* 支持定制会话.
* 支持远程登录(XDMCP, VNC, XDMCP, 可插拔).
* 完善的测试组件.
* 低代码复杂度.
更多关于LightDM的特点可以在[这里](http://www.freedesktop.org/wiki/Software/LightDM/Design)找到。
## Contents
* [1 安装](#.E5.AE.89.E8.A3.85)
* [1.1 Greeter](#Greeter)
* [2 启用 LightDM](#.E5.90.AF.E7.94.A8_LightDM)
* [3 命令行工具](#.E5.91.BD.E4.BB.A4.E8.A1.8C.E5.B7.A5.E5.85.B7)
* [4 测试](#.E6.B5.8B.E8.AF.95)
* [5 配置和调整](#.E9.85.8D.E7.BD.AE.E5.92.8C.E8.B0.83.E6.95.B4)
* [5.1 更改背景图片/颜色](#.E6.9B.B4.E6.94.B9.E8.83.8C.E6.99.AF.E5.9B.BE.E7.89.87.2F.E9.A2.9C.E8.89.B2)
* [5.1.1 GTK+ greeter](#GTK.2B_greeter)
* [5.1.2 Webkit2 greeter](#Webkit2_greeter)
* [5.1.3 Unity greeter](#Unity_greeter)
* [5.1.4 KDE greeter](#KDE_greeter)
* [5.2 改变你的头像](#.E6.94.B9.E5.8F.98.E4.BD.A0.E7.9A.84.E5.A4.B4.E5.83.8F)
* [5.3 Arch 为中心的 64x64 图标来源](#Arch_.E4.B8.BA.E4.B8.AD.E5.BF.83.E7.9A.84_64x64_.E5.9B.BE.E6.A0.87.E6.9D.A5.E6.BA.90)
* [5.4 启用自动登录](#.E5.90.AF.E7.94.A8.E8.87.AA.E5.8A.A8.E7.99.BB.E5.BD.95)
* [5.5 启用无密码交互登录](#.E5.90.AF.E7.94.A8.E6.97.A0.E5.AF.86.E7.A0.81.E4.BA.A4.E4.BA.92.E7.99.BB.E5.BD.95)
* [5.6 隐藏系统和服务用户](#.E9.9A.90.E8.97.8F.E7.B3.BB.E7.BB.9F.E5.92.8C.E6.9C.8D.E5.8A.A1.E7.94.A8.E6.88.B7)
* [5.7 从 SLiM 迁移](#.E4.BB.8E_SLiM_.E8.BF.81.E7.A7.BB)
* [5.8 默认打开小键盘](#.E9.BB.98.E8.AE.A4.E6.89.93.E5.BC.80.E5.B0.8F.E9.94.AE.E7.9B.98)
* [5.9 Xfce4 下多用户切换](#Xfce4_.E4.B8.8B.E5.A4.9A.E7.94.A8.E6.88.B7.E5.88.87.E6.8D.A2)
* [5.10 默认会话](#.E9.BB.98.E8.AE.A4.E4.BC.9A.E8.AF.9D)
* [5.11 修改登录窗口的位置](#.E4.BF.AE.E6.94.B9.E7.99.BB.E5.BD.95.E7.AA.97.E5.8F.A3.E7.9A.84.E4.BD.8D.E7.BD.AE)
* [5.11.1 GTK+ greeter](#GTK.2B_greeter_2)
* [6 疑难问题](#.E7.96.91.E9.9A.BE.E9.97.AE.E9.A2.98)
* [6.1 显示错误语言环境](#.E6.98.BE.E7.A4.BA.E9.94.99.E8.AF.AF.E8.AF.AD.E8.A8.80.E7.8E.AF.E5.A2.83)
* [6.2 Xresources 未被正常解析](#Xresources_.E6.9C.AA.E8.A2.AB.E6.AD.A3.E5.B8.B8.E8.A7.A3.E6.9E.90)
* [6.3 使用 GTK greeter 丢失图标](#.E4.BD.BF.E7.94.A8_GTK_greeter_.E4.B8.A2.E5.A4.B1.E5.9B.BE.E6.A0.87)
* [6.4 LightDM 在登录提示符处冻结](#LightDM_.E5.9C.A8.E7.99.BB.E5.BD.95.E6.8F.90.E7.A4.BA.E7.AC.A6.E5.A4.84.E5.86.BB.E7.BB.93)
* [6.5 LigthDM 显示在错误的显示器上](#LigthDM_.E6.98.BE.E7.A4.BA.E5.9C.A8.E9.94.99.E8.AF.AF.E7.9A.84.E6.98.BE.E7.A4.BA.E5.99.A8.E4.B8.8A)
* [6.6 LightDM 不出现](#LightDM_.E4.B8.8D.E5.87.BA.E7.8E.B0)
* [6.7 Pulseaudio 不自动启动](#Pulseaudio_.E4.B8.8D.E8.87.AA.E5.8A.A8.E5.90.AF.E5.8A.A8)
* [7 另见](#.E5.8F.A6.E8.A7.81)
## 安装
[安装](/index.php/%E5%AE%89%E8%A3%85 "安装") 软件包 [lightdm](https://www.archlinux.org/packages/?name=lightdm). 注意稳定版版本号是偶数的 (1.8, 1.10) 而开发版是奇数的 (1.9, 1.11). 开发版可以安装 [lightdm-devel](https://aur.archlinux.org/packages/lightdm-devel/) 或者 [lightdm-bzr](https://aur.archlinux.org/packages/lightdm-bzr/).
### Greeter
可能需要安装一个 greeter。 greeter 是提示用户输入密码的 GUI 界面。如果配置了自动登录,可以不使用 greeter。参考的 greeter 是 [lightdm-gtk-greeter](https://www.archlinux.org/packages/?name=lightdm-gtk-greeter),默认的配置会使用它。
官方软件仓库包含如下 greeter:
* [lightdm-kde-greeter](https://www.archlinux.org/packages/?name=lightdm-kde-greeter): KDE4 greeter.
* lightdm-deepin-greeter ([deepin-session-ui](https://www.archlinux.org/packages/?name=deepin-session-ui)): [Deepin](/index.php/Deepin_Desktop_Environment "Deepin Desktop Environment") 桌面提供.
其他的 greeter 可以从 [AUR](/index.php/AUR "AUR") 安装:
* [lightdm-webkit2-greeter](https://aur.archlinux.org/packages/lightdm-webkit2-greeter/): 一个用 Webkit2 做主题引擎的 greeter. 替代 [lightdm-webkit-greeter](https://aur.archlinux.org/packages/lightdm-webkit-greeter/)。
* [lightdm-unity-greeter](https://aur.archlinux.org/packages/lightdm-unity-greeter/): Ubuntu [Unity](/index.php/Unity "Unity") 使用的 greeter.
* [lightdm-pantheon-greeter](https://aur.archlinux.org/packages/lightdm-pantheon-greeter/): 一个来自 ElementaryOS Project 的 greeter.
你可以通过更改配置文件的 `[Seat:*]` 部分设置 greeter:
`/etc/lightdm/lightdm.conf`
```
[Seat:*]
...
greeter-session=lightdm-yourgreeter-greeter
```
通过下面命令可以获取 `greeter-session` 的可用选项,`/usr/share/xgreeters` 目录下的每个 `.desktop` 目录都代表一个可用 greeter。下面例子中包含 `lightdm-gtk-greeter` 和 `lightdm-kde-greeter`:
```
$ ls -1 /usr/share/xgreeters/
lightdm-gtk-greeter.desktop
lightdm-kde-greeter.desktop
```
## 启用 LightDM
确保[使用 systemctl](/index.php/Systemd#Using_units "Systemd") 启用 `lightdm.service`, 如此 LightDM 将会开机启动。参考 [Display manager#Loading the display manager](/index.php/Display_manager#Loading_the_display_manager "Display manager")。
## 命令行工具
LightDM 提供一个命令行工具, `dm-tool`. 它可用来锁定当前 seat, 切换会话,等等。这对'极简'窗口管理器和测试非常有用。要列出可用命令,运行:
```
$ dm-tool --help
```
## 测试
首先,[安装](/index.php/Pacman_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Pacman (简体中文)") 软件包 [xorg-server-xephyr](https://www.archlinux.org/packages/?name=xorg-server-xephyr).
之后,把 LightDM 作为 X 程序启动:
```
$ lightdm --test-mode --debug
```
## 配置和调整
`/etc/lightdm/lightdm.conf` 包含 LightDM 的默认配置。某些 greeter 拥有自己的配置文件。例如
* [lightdm-gtk-greeter](https://www.archlinux.org/packages/?name=lightdm-gtk-greeter): `/etc/lightdm/lightdm-gtk-greeter.conf`
* [lightdm-webkit2-greeter](https://aur.archlinux.org/packages/lightdm-webkit2-greeter/): `/etc/lightdm/lightdm-webkit2-greeter.conf`
* [lightdm-kde-greeter](https://www.archlinux.org/packages/?name=lightdm-kde-greeter): `/etc/lightdm/lightdm-kde-greeter.conf`
可以直接修改 LightDM 的配置文件,或者使用位于 `/usr/lib/lightdm/lightdm/` 的 `lightdm-set-defaults`程序。想知道一些可用选项,执行:
```
$ man lightdm-set-defaults
```
然而一大部分变量要直接编辑配置文件而不是使用 `lightdm-set-defaults` 程序。
### 更改背景图片/颜色
如果您想使用一个纯色 (非图片) 的背景,只需将 `background` 变量设置为十六进制的颜色。
例如:
```
background=#000000
```
如果你想用图像来代替,请看下文。
#### GTK+ greeter
可以使用 [lightdm-gtk-greeter-settings](https://www.archlinux.org/packages/?name=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](https://aur.archlinux.org/packages/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-greeter](https://aur.archlinux.org/packages/lightdm-unity-greeter/),请修改 `/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml`,然后执行:
```
# glib-compile-schemas /usr/share/glib-2.0/schemas/
```
可以参考[这个](https://bbs.archlinux.org/viewtopic.php?id=149945)页面。
#### KDE greeter
转到 *系统设置 > 登录界面 (LightDM)* 设置你的主题与背景图片。
### 改变你的头像
**Tip:** If you are using KDE, you can change your avatar in KDE System Settings.
首先确保已安装 [accountsservice](https://www.archlinux.org/packages/?name=accountsservice) 软件包,然后如下设置,把 `*username*` 替换为目标用户的登录名。文件名中不要加 *.png* 后缀。
* 编辑或创建 `/var/lib/AccountsService/users/*username*`, 添加如下内容:
```
[User]
Icon=/var/lib/AccountsService/icons/*username*
```
I
* 使用 96x96 PNG 图表文件来创建 `/var/lib/AccountsService/icons/*username*`.
**注意:** 确保创建的文件都是 644 权限,使用 [chmod](/index.php/Chmod "Chmod") 来更正。
### Arch 为中心的 64x64 图标来源
[AUR](/index.php/AUR "AUR") 的 [archlinux-artwork](https://aur.archlinux.org/packages/archlinux-artwork/) 软件包包含了一些不错的例子。它们被安装到 `/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-artwork](https://aur.archlinux.org/packages/archlinux-artwork/).
### 启用自动登录
编辑 LightDM 配置文件,取消该行的注释,并添加要自动登陆的用户名:
`/etc/lightdm/lightdm.conf` `autologin-user=*username*`
你必须是 `autologin` 组的成员来使得自己登录时不用输入密码:
```
# groupadd autologin
# gpasswd -a *username* autologin
```
**注意:** GNOME 用户, 更一般地 gnome-keyring 用户需要把他们的密码环设置一个空白密码以自动禁用。
### 启用无密码交互登录
LightDM goes through PAM so you must configure the lightdm configuration of PAM:
`/etc/pam.d/lightdm`
```
#%PAM-1.0
**auth sufficient pam_succeed_if.so user ingroup nopasswdlogin**
auth include system-login
...
```
You must then also be part of the `nopasswdlogin` group to be able to login interactively without entering your password:
```
# groupadd -r nopasswdlogin
# gpasswd -a *username* nopasswdlogin
```
**Note:** 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](https://www.archlinux.org/packages/?name=accountsservice), 或者把这些用户名添加到 `/etc/lightdm/users.conf` 下的 `hidden-users` 里。前者优势在于添加/删除用户时不用更新列表。
### 从 SLiM 迁移
把 [xinitrc](/index.php/Xinitrc "Xinitrc") 的内容搬到 [xprofile](/index.php/Xprofile "Xprofile"), 删除调用[窗口管理器](/index.php/%E7%AA%97%E5%8F%A3%E7%AE%A1%E7%90%86%E5%99%A8 "窗口管理器")或[桌面环境](/index.php/%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83 "桌面环境")的部分。
### 默认打开小键盘
安装 [numlockx](https://www.archlinux.org/packages/?name=numlockx), 编辑 `/etc/lightdm/lightdm.conf` 添加以下几行:
`/etc/lightdm/lightdm.conf`
```
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on
```
### Xfce4 下多用户切换
如果您使用 [Xfce](/index.php/Xfce "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](/index.php/XScreenSaver "XScreenSaver") 锁屏界面切换用户 - 参见 [XScreenSaver#Lightdm](/index.php/XScreenSaver#Lightdm "XScreenSaver").
### 默认会话
Lightdm, 像其他 DM 一样,把上次选择的 xsession 存储在 `~/.dmrc`. 更多信息见 [Display manager#Session_list](/index.php/Display_manager#Session_list "Display manager").
### 修改登录窗口的位置
#### GTK+ greeter
编辑 `/etc/lightdm/lightdm-gtk-greeter.conf` 文件,设置 `position`,这个设置接受 `x` 和 `y` 变量,可以使用绝对值(pixels)或相对值(percent). 每个变量都可以增加一个额外的锚定位置 `start`, `center` 和 `end`,数值间用 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](/index.php/Xresources "Xresources") 文件未被预处理器加载时,会导致一个 LightDM 的上游 [bug](https://bugs.launchpad.net/lightdm/+bug/1084885). 在实际中,这意味着使用 `#define` 设置的变量在之后调用时没有被扩展。如果你使用 urxvt 的自定义颜色时,这会表现为一个全粉色的屏幕。要修复,编辑 `/etc/lightdm/Xsession` 并搜索以下内容:
```
xrdb -nocpp -merge "$file"
```
更改为读取:
```
xrdb -merge "$file"
```
你的 Xresources 会正常加载并且变量会正常扩展。
### 使用 GTK greeter 丢失图标
如果你把 [lightdm-gtk-greeter](https://www.archlinux.org/packages/?name=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](https://www.archlinux.org/packages/?name=gdk-pixbuf2) 软件包。参见 [这个](https://bbs.archlinux.org/viewtopic.php?id=179031)论坛帖子。
### 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](/index.php/PulseAudio#Running "PulseAudio")。
## 另见
* [light-locker](https://www.archlinux.org/packages/?name=light-locker), a screen locker using LightDM.
* [Ubuntu Wiki article](https://wiki.ubuntu.com/LightDM)
* [Gentoo Wiki article](http://wiki.gentoo.org/wiki/LightDM)
* [Launchpad Page](https://launchpad.net/lightdm)
* [LightDM blog](http://www.mattfischer.com/blog/?tag=lightdm)