什么是Lightdm
LightDM,即:Light Display Manager,是一个全新的、轻量的Linux桌面的桌面显示管理器,而传统的Ubuntu用的是GNOME桌面标准的GDM。Ubuntu 中运行的 LightDM 负责启动 X servers ,用户会话和欢迎界面。Ubuntu 默认的欢迎界面是 Unity Greeter。
Lightdm wiki文档
怎么调试
- 安装调试工具
sudo apt-get install xserver-xephyr - 通过lightdm --test-mode --debug 启动lightdm的调试模式
- 使用dm-tool进行调试。(dm-tool是lightdm提供了命令行控制工具,可以控制lightdm进行用户切换、锁定等。)
dm-tool的OPTIONS中的–session-bus是控制dm-tool发出的命令 控制的是系统会话还是调试模式的会话。
Lightdm的命令解释
- -c, --config=FILE
自定义运行使用的配置文件。 - -d, --debug
启用Debug模式,输出lightdm运行时的提示信息。 - –test-mode
测试模式。作为非特权用户运行,跳过带有root权限的操作。
dm-tool工具
- –session-bus
带有该选项表示dm-tool与测试会话进行连接。否则dm-tool将与系统会话进行连接。 - dm-tool switch-to-greeter
选择可以登录的另一个会话。 - dm-tool switch-to-guest
进入访客会话。 - dm-tool lock
锁定当前会话。 - dm-tool list-seats
列出当前正在运行的 seats 和 session(会话)
配置选项说明
-
lightdm的配置文件一共有四个,默认加载顺序由(1)至(4):
(1)./usr/share/lightdm/lightdm.conf.d/.conf
(2)./etc/lightdm/lightdm.conf.d/.conf
(3)./etc/lightdm/lightdm.conf
(4).自定义的配置文件 -
[Seat:*]常用配置选项说明
(1)Greeter的选择
a.格式:
greeter-session=[greeter name]
b.解释
可以选择不同的greeter进行使用,[greeter name] 应该与 /usr/share/xgreeters/ 下的 .desktop 相匹配。(例如:greeter-name.desktop 对应 greeter-session = greeter-name)
(.desktop 文件记录了可执行文件的地址)(2)禁止访客登录
a.格式
allow-guest=false
b.解释
是否允许用户以临时访客的身份进行登录。(3)隐藏用户列表
a.格式
greeter-hide-users=true
b.解释
是否显示用户列表。(4)设置自动登录
a.格式
autologin-user=username
autologin-user-timeout=delay
b.解释
设置系统启动时是否自动登录某个帐户。
delay表示用户在设定的时间内如果没有自动登录则不能自动登录。(5)添加系统钩子
a.格式
1).display-setup-script=[command] {在 X server 启动后,欢迎界面启动之前运行。该命令由 root 运行,如果命令执行出现错误,X server 会停止运行。}
2).display-stopped-script=[command] {在 X server 退出后运行。该命令由 root 运行。}
3).greeter-setup-script=[command] {在欢迎界面启动前运行。该命令由 root 运行。如果命令执行出现错误,欢迎界面将无法启动并导致 LightDM 退出。}
4).session-setup-script=[command] {用户会话启动之前运行,如果失败,用户会话将不启动。}
5).session-cleanup-script=[command] {在欢迎界面或用户会话退出之后运行。由 root 运行。}
6).session-wrapper=[command] {该命令用于运行会话。该命令使用用户身份运行。默认值为 lightdm-session。}
7).greeter-wrapper=[command] {该命令用于运行欢迎界面。等同于 session-wrapper。}
b.解释
如果你想在 X servers 和用户会话启动/关停时自动做些事情,
那么可以按照以上方式设置自动执行命令。 -
[Greeter]常用配置选项说明
(1) draw-user-background=true {是否使用用户的背景}
(2) background=[FILE] {用户自定义背景图片}
(3) draw-user-background=true
(4) logo=[FILE]
(5) cof=[FILE]
(6) display-mode=3 {双屏时的显示模式}
# DISPLAY_MODE_ORI 1 仅第一屏幕
# DISPLAY_MODE_CLONE 2 屏幕复制
# DISPLAY_MODE_EXTEND 3 屏幕扩展
# DISPLAY_MODE_ONLY_OUT 4 仅第二屏幕