[技术干货]
lightDM(Light Display Manager)补充
目录:
[lightDM(Light Display Manager)简介](https://bbs.huaweicloud.com/forum/thread-106009-1-1.html)
对上文进行补充,如果欢迎指出。
# LightDM(Light Display Manager)补充
> 注意!!!
>
> **配置结点的变化:**
>
> `[SeatDefaults]` = `Seat:*`
>
> 旧版:`[SeatDefaults]`
>
> 新版:`Seat:*`
## 1.配置文件
LightDM配置由下列位置的文件提供:
```c
/usr/share/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf
```
**解析:**
- `/usr/share/lightdm/lightdm.conf.d/*.conf`
- 系统提供的 配置文件
- 普通用户不可编辑
- `/etc/lightdm/lightdm.conf.d/*.conf`
`/etc/lightdm/lightdm.conf`
- 通过管理员覆盖系统文件
**例:**
**重载系统默认**
- 覆盖系统配置的默认会话配置:
(`/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf`提供)
- 新建一个文件:
`/etc/lightdm/lightdm.conf.d/50-myconfig.conf`
加入:
```c
[Seat:*]
user-session=mysession
```
## 2.常见配置
### 2.1 隐藏用户列表
默认配置下,Ubuntu系统的Unity Greeter(或者一些其它系统的Greeter)展示所有可能的用户帐号列表。如果你想禁用这个功能(可能你有太多的用户或者基于安全考虑),使用以下配置。
```c
[Seat:*]
greeter-hide-users=true
```
你也许需要显式启用手动登录以配合这个特性。
### 2.2 允许手动登录
默认配置下,Ubuntu系统的Unity Greeter(或者一些其它系统的Greeter)不允许用户手动输入用户名登录到系统。你可以用以下配置启用它:
```c
[Seat:*]
greeter-show-manual-login=true
```
### 2.3 禁止临时帐户登录
临时帐户名是Guest。默认情况下LightDM允许你用Guest以临时用户的身份登录到会话中,从而进入系统,禁用方法是:
```c
[Seat:*]
allow-guest=false
```
### 2.4 设置自动登录
要设置系统自动启动并登入的用户,设置`autologin-user`。如果设置了`autologin-user-timeout`,那么greeter将在自动登录发生之前显示这么多秒。在此期间如果存在用户操作超时将会取消。配置如下:
```c
[Seat:*]
autologin-user=username
autologin-user-timeout=delay
```
如果你想设置自动登录到临时帐户会话可设置:
```
autologin-guest=true
```
### 2.5 改变默认的会话
默认的会话是由session packages(这是一个LightDM专有名词,没想到合适的翻译)提供的配置`/usr/share/lightdm/lightdm.conf.d/`设置的。如果你需要覆盖这些,你可以设置:
```c
[Seat:*]
user-session=name
```
**解析:**
配置中的`name`指的是位于`/usr/share/xsessions/*.desktop`的以`.dekstop`扩展名结尾的文件的名称。
### 2.6 修改greeter
默认的greeter是由greeter packages(这是一个LightDM专有名词,没想到合适的翻译)提供的位于`/usr/share/lightdm/lightdm.conf.d/`的配置设置的。如果你需要覆盖这些,你可以设置:
```c
[Seat:*]
greeter-session=name
```
**解析:**
- 配置中的`name`指的是位于`/usr/share/xgreeters/*.desktop`的以`.dekstop`扩展名结尾的文件的名称。
### 2.7 背景图片
LightDM不配置Greeter外观。合适的greeter做这个配置。Unity Greeter 默认展示当前选中的用户的背景图片。
**解析:**
- 并且运行`sudo glib-compile-schemas /usr/share/glib-2.0/schemas/`以应用这些设置。
- 设置默认的背景图片,停止编辑`/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema`开关,使用配置:
```c
[com.canonical.unity-greeter]
draw-user-backgrounds=false
background='/foo/wallpaper.png'
```
- 对于LightDM GTK+ greeter,编辑`/etc/lightdm/lightdm-gtk-greeter.conf`,修改`background=/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.png`。
- `background`的值改为自己想要的图片。
## 3.添加系统钩子
> Hook一般译作钩子。
>
> 注意!!!
>
> `greeter-wrapper`和`display-stopped-script`配置不被Ubuntu 12.04 LTS版本支持。
**例:**
```c
[Seat:*]
display-setup-script=command
display-stopped-script=command
greeter-setup-script=command
session-setup-script=command
session-cleanup-script=command
session-wrapper=command
greeter-wrapper=command
```
**解析:**
## 3.1 display-setup-script
`display-setup-script`在X服务器启动后、用户会话/greeter程序运行之前运行。如果需要在X服务器中配置任何特殊内容,请设置此选项。它作为root运行。如果该命令返回错误代码,则X服务器将停止。
## 3.2 display-stopped-script
`display-stopped-script`在X服务器退出后以root身份运行。
## 3.3 greeter-setup-script
`greeter-setup-script`是在greeter开始前运行的。它作为root运行。如果该命令返回一个错误代码,引导程序将无法启动(这将导致LightDM停止)。
## 3.4 session-setup-script
`session-setup-script`在用户会话开始之前运行。如果这个命令返回一个错误,会话将不会启动(用户返回到一个greeter界面)。
## 3.5 session-cleanup-script
`session-cleanup-script`在greeter或者用户会话停止时运行,以root身份运行。
## 3.6 session-wrapper
`session-wrapper`是为会话运行的命令。此命令作为用户运行,需要执行参数中传递的命令以完成会话的运行。如果需要为用户会话进行特殊设置,请使用此选项。注意,默认值是`lightdm-session`”`,因此如果需要覆盖该设置,应该链接到该设置。
## 3.7 greeter-wrapper
`greeter-wrapper` 是一个运行greeter的命令行。它相当于greeter的`session-wrapper`。
## 4.其他问题
### **桌面不显示**
1. 你可以按`ctrl+alt+f1`得到文本终端
2. 检查LightDM的日志,位于`/var/log/lightdm`
3. 停止LightDM,运行`sudo systemctl stop lightdm`
4. 尝试再次启动LightDM:`sudo systemctl start lightdm`
5. 如果你有另外一个显示管理器,你可以去启动它,比如运行:`sudo systemctl start gdm`
6. 你可以设置默认的显示管理器,运行`sudo dpkg-reconfigure lightdm`
7. 检查系统的最新更新日期,特别是视频驱动。
8. 文件记录这个BUG。如果您不确定原因在哪里(`lightdm`/`unity-greeter`/`unity`/`X`/`kernel`),那么针对lightdm的文件和错误将被筛选和重新分配(译者注:意思是多试几次,缩小问题范围)。
### 控制面板无屏保设置
- 命令行mate-screensaver-preference可调出屏保设置窗口
### 任务栏消失
- 删除主目录下.config/,重启机器后任务栏恢复正常
### 挂载的硬盘需隐藏在桌面的挂载图标
- 通过gsetting解决:gsetting set org.mate.caja.desktop volumes-visible false
### Ctrl+alt+T无法打开终端
- 删除当前用户主目录的.config文件,再重启系统
### Sogou五笔输入法乱码
- 重启输入法,杀死fcitx和sogou-qimpanel进程,执行killall fcitx和killall sogou-qimpanel,再后台fcitx-autostart &和sogou-qimpanel &.
### 图形界面配置双屏镜像屏幕,重启系统后未生效
- 使用用户的显示配置文件覆盖lightdm的,然后重启lightdm服务
`sudo cp ~/.config/monitors.xml /var/lib/lightdm/.config/`
`sudo service lightdm restart`
### 登录系统后无法载入图标,且弹出"正在启动caja"
- 重命名或删除用户主目录下.config目录
### 开始菜单无法打开
- 删除./face文件
### 切换用户提示无法解析主机
- 修改hostname,但未同步修改/etc/hosts导致,更改/etc/hosts中的主机名为hostname命令得到的主机名
### 获知系统安装时间
- 建议用tune2fs -l /dev/sda1| grep Filesystem命令来获知文件系统创建时间,作为装机时间的参考,其中/dev/sda1为需要查看的分区
### U盘手动挂载,U盘中中文字符显示为乱码
- 字符集的原因,需要在mount后加参数:
sudo mount –o iocharset=utf8 /dev/sdb1 /mnt