大家好,欢迎来到IT知识分享网。
LightDM
简介
LightDM(Light Display Manager)是一个全新的轻量级 Linux 桌面显示管理器,而传统的 Ubuntu 是使用 GNOME 桌面标准的 GDM。
LightDM 是一个跨桌面显示管理器,其目的是成为 X org 的 X Server 的标准显示管理器。
LightDM 是 2010 年开始的新项目,且被设计为轻量、小巧、快速。相较于 GDM-GTK, KDM-Qt,LightDM 实际上与界面无关,它仅支持本地图形界面获得最好兼容性。
Ubuntu 中运行的 LightDM 负责启动 X servers,用户会话和欢迎界面。Ubuntu 默认的欢迎界面是 Unity Greeter。
主要特点:
- 轻量:LightDM是2010年开始的新项目,一开始就设计为轻量、小巧,没有GDM那样的历史代码负担,因此不仅完整支持标准,而且轻量、快速。
- 支持各种界面:相较于GDM-GTK,KDM-Qt,LightDM实际上是界面无关性的,因为它设计上就是支持本地图形界面以获得最好的兼容性。因此LightDM已经具备了GTK、Qt甚至WebKit的界面,也就是用HTML来做登陆界面。
- 可配置性:Linux最大的优势就是定制性强了,LightDM也继承了这一优点,除了可以定制上面提到的界面以外,LightDM还可以定制其他丰富的选项,如自动登录、禁止特定用户登录等等
- 一个支持多个图形用户界面的良好的 API
- 代码复杂度低
- 性能
目前LightDM已经从freedesktop转移至canonical(ubutnu公司)维护的github仓库:https://github.com/canonical/lightdm
从仓库的信息来看,以C 语言为主。
但是随着Ubuntu桌面从Unity转向Gnome,DM也从lightdm转向了GDM。Ubuntu17之后DM默认转成GDM了。
目前UOS上的lightdm版本为:1.26.0,是2018年发布的版本(但uos改了代码应该);kylin2101:1.18.3,是2016年发布的版本;kylin2107:1.30.0,是2019年发布的版本
编译
编译准备
sudo apt install gtk-doc-tools yelp-tools libglib2.0-dev intltool libpam0g-dev libxklavier-dev
-
./autogen.sh
-
./configure
-
make
-
make install
实测UOS上编译完安装黑屏进不去图形界面
LightDM 相关操作
- 切换命令行:
alt-ctrl-F1
。 - LightDM 日志:
/var/log/lightdm
。 - 关停 LightDM:
sudo systemctl stop lightdm
。 - 启动 LightDM:
sudo systemctl start lightdm
。 - 设置 LightDM 为默认显示管理器:
sudo dpkg-recofigure lightdm
。
配置文件
LightDM的配置文件包括:
# ubuntu
/usr/share/lightdm/lightdm.conf.d/*.conf
# /etc/lightdm/lightdm.conf.d/*.conf
/etc/xdg/lightdm/lightdm.conf.d/*.conf
/usr/local/share/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf
UOS
/usr/share/lightdm/lightdm.conf.d
/usr/local/share/lightdm/lightdm.conf.d # 这个路径一般默认没有
/etc/xdg/lightdm/lightdm.conf.d # 这个路径一般默认没有
/etc/lightdm/lightdm.conf
# ls /etc/lightdm/ -lh
总用量 20K
-rw-r--r-- 1 root root 40 3月 9 2021 keys.conf
-rw-r--r-- 1 root root 6.9K 11月 9 18:36 lightdm.conf
-rw-r--r-- 1 root root 3.0K 3月 9 2021 lightdm-gtk-greeter.conf
-rw-r--r-- 1 root root 466 3月 9 2021 users.conf
# tree /usr/share/lightdm/
/usr/share/lightdm/
├── lightdm.conf.d
│ ├── 01_debian.conf
│ ├── 50-est-raserverscreenagrentsvr.conf
│ └── 60-deepin.conf
└── lightdm-gtk-greeter.conf.d
└── 01_debian.conf
kylin2101
/usr/share/lightdm/lightdm.conf.d
/usr/local/share/lightdm/lightdm.conf.d
/etc/xdg/lightdm/lightdm.conf.d
/etc/lightdm/lightdm.conf
# tree /usr/share/lightdm
/usr/share/lightdm
├── guest-session
│ ├── setup.sh
│ └── skel
└── lightdm.conf.d
├── 50-disable-log-backup.conf
├── 50-est-raserverscreenagrentsvr.conf
├── 50-greeter-wrapper.conf
├── 50-guest-wrapper.conf
├── 50-xserver-command.conf
├── 60-kylin.conf
└── 95-ukui-greeter.conf
ubuntu
系统使用的配置参数保存在 /usr/share/lightdm/lightdm.conf.d/*.conf
,用户不能编辑。系统管理员可以在 /etc/lightdm/lightdm.conf.d/*.conf
和 /etc/lightdm/lightdm.conf
重载系统配置参数。系统会依次读取前述的三个文件最后得到 LightDM 的有效配置信息。
例如,如果你想要自动登录的话(默认配置保存在 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
),你可以新建文件 /etc/lightdm/lightdm.conf.d/90-czw.conf
,内容如下:
[SeatDefaults]
autologin-user=czw
重启后,查看lightdm日志可以看出已经加载了自定义配置文件:
在 /usr/share/doc/lightdm/lightdm.conf.gz
文件中保存着所有可能的配置情况示例。
另一个配置文件:/etc/lightdm/users.conf
,但是如果accountsservice
服务运行了,系统会忽略该配置文件。
配置应用
禁止访客登录
LightDM 默认允许你以临时访客登录,禁止该功能:
[SeatDefaults]
allow-guest=false
隐藏用户列表
Unity Greeter(其他类似欢迎界面也一样)默认显示一个用户列表。如果你想禁用该功能,可以使用以下配置,以下配置也可以用以启动手动登录。
[SeatDefaults]
greeter-hide-users=true
允许手动登录
Unity Greeter 默认不允许你输入用户名来登录。你可以使用以下配置启用该特性。
[SeatDefaults]
greeter-show-manual-login=true
设置自动登录
设置 autologin-user 来设置系统启动时自动登录某个帐户。设置 autologin-user-timeout 限制用户在设定秒内如果没有自动登录则不能自动登录
[SeatDefaults]
autologin-user=username
autologin-user-timeout=delay
设置自动登录访客账号。
autologin-guest=true
修改默认会话
默认会话设置保存在 /usr/share/lightdm/lightdm.conf.d/
会话包中,可以通过以下配置来覆盖:
[SeatDefaults]
user-session=name
其中 name 代表 /usr/share/xsessions/*.desktop
中 <name>.desktop
。
修改欢迎界面
欢迎界面由 /usr/share/lightdm/lightdm.conf.d/ 中欢迎界面包提供。你可以重载该设置
[SeatDefaults]
greeter-session=name
其中 name 代表 /usr/share/xgreeters/*.desktop
中的 <name>.desktop
文件。
添加系统钩子
如果你想在 X servers 和用户会话启动/关停时自动做些事情,那么可以按照以下方式设置自动执行命令
[SeatDefaults]
display-setup-script=command
display-stopped-script=command (Not in Ubuntu 12.04 LTS)
greeter-setup-script=command
session-setup-script=command
session-cleanup-script=command
session-wrapper=command
greeter-wrapper=command (Not in Ubuntu 12.04 LTS)
display-setup-script
在X服务器启动后、用户会话/greeter程序运行之前运行。如果需要在X服务器中配置任何特殊内容,请设置此选项。它作为root运行。如果该命令返回错误代码,则X服务器将停止。
display-stopped-script
在X服务器退出后以root身份运行。
greeter-setup-script
是在greeter开始前运行的。它作为root运行。如果该命令返回一个错误代码,引导程序将无法启动(这将导致LightDM停止)。
session-setup-script
在用户会话开始之前运行。如果这个命令返回一个错误,会话将不会启动(用户返回到一个greeter界面)。
session-cleanup-script
在greeter或者用户会话停止时运行,以root身份运行。
session-wrapper
是为会话运行的命令。此命令作为用户运行,需要执行参数中传递的命令以完成会话的运行。如果需要为用户会话进行特殊设置,请使用此选项。注意,默认值是lightdm-session
,因此如果需要覆盖该设置,应该链接到该设置。
greeter-wrapper
是一个运行greeter的命令行。它相当于greeter的session-wrapper
。
修改壁纸
LightDM 并不会修改greeter的外观,如果需要配置可以修改对应的greeter属性。
Unity Greeter 默认显示当前选中的用户的背景图案。设置默认背景,并停止背景切换,编辑 /usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override
。
[com.canonical.unity-greeter]
draw-user-backgrounds=false
background='/foo/wallpaper.png'
然后运行 sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
使配置生效。
如果使用的是 LightDM GTK+ 欢迎界面,编辑 /etc/lightdm/lightdm-gtk-greeter.conf
:
background=/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.png
该方法在ubuntu中可以生效,但是在其他系统比如UOS中,需要找到schema的具体配置文件,之后进行覆盖配置。
怎么调试
安装调试工具
sudo apt-get install xserver-xephyr
- 通过lightdm –test-mode –debug 启动lightdm的调试模式
- 使用dm-tool进行调试。(dm-tool是lightdm提供了命令行控制工具,可以控制lightdm进行用户切换、锁定等。)
dm-tool的OPTIONS中的–session-bus是控制dm-tool发出的命令 控制的是系统会话还是调试模式的会话。
报告问题
存档一个BUG可以从终端运行下面的命令行:
ubuntu-bug lightdm
所有合适、合法的信息、日志都会添加到错误报告中。
在graphics stack
(图形堆栈)中很多事情都可能出错。如果你看不到任何图形或者损坏的图片,下列尝试也许可以帮助你:
- 你可以按
ctrl+alt+f1
得到文本终端 - 检查LightDM的日志,位于
/var/log/lightdm
- 停止LightDM,运行
sudo systemctl stop lightdm
- 尝试再次启动LightDM:
sudo systemctl start lightdm
- 如果你有另外一个显示管理器,你可以去启动它,比如运行:
sudo systemctl start gdm
- 你可以设置默认的显示管理器,运行
sudo dpkg-reconfigure lightdm
- 检查系统的最新更新日期,特别是视频驱动。
- 文件记录这个BUG。如果您不确定原因在哪里(
lightdm
/unity-greeter
/unity
/X
/kernel
),那么针对lightdm的文件和错误将被筛选和重新分配(译者注:意思是多试几次,缩小问题范围)。
附录
什么是显示管理器
简单来说, 显示管理器(display manager)(DM)是一个为你的 Linux 发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。
显示管理器通常是登录界面的代名词。毕竟它是可见的部分。然而,可见的登录屏幕,也叫 欢迎页(greeter),只是显示管理器的一部分。
像各种桌面环境和显示服务器一样,也有各种显示管理器。
不同的显示管理器
有些人认为显示管理器是桌面环境的一部分,但事实并非如此。它是一个独立的程序。
桌面环境可能会推荐某个显示管理器,但这并不意味着它不能与其它一些显示管理器一起工作。如果你曾经在同一个系统中安装过不止一个桌面环境,你会记得,登录界面(即显示管理器)允许你切换桌面环境。、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkYaV5Rz-1661084129799)(pic/
虽然显示管理器不是桌面环境本身的一部分,但它往往与桌面环境由同一个开发团队开发。它也成为桌面环境的代表。
例如,GNOME 桌面环境开发了 GDM(GNOME Display Manager),光看登录界面就会想到 GNOME 桌面环境。
一些流行的显示管理器有:
- GDM( GNOME 显示管理器(GNOME Display Manager)):GNOME 的首选。
- SDDM( 简单桌面显示管理器(Simple Desktop Display Manager)):KDE 首选。
- LightDM:由 Ubuntu 为 Unity 桌面开发。
显示管理器可以定制
有这么多的桌面环境可供选择,它们都有自己的显示管理器吗?不,不是这样的。
正如我之前提到的,可见的登录屏幕被称为欢迎页。这个欢迎页可以进行自定义来改变登录屏幕的外观。
事实上,许多发行版和/或桌面环境都制作了自己的欢迎页,以给用户提供一个类似于他们品牌的登录屏幕。
例如,Mint 的 Cinnamon 桌面使用了 LightDM,但有自己的欢迎页来给它更多的 Mint 式(或者我应该说是 Cinnamon)的外观。
如果你喜欢编码和调整,你可以根据自己的喜好修改或编码自己的欢迎页。
改变显示管理器
如果你愿意,可以更改显示管理器。你需要先安装显示管理器。安装时你会看到切换显示管理器的选项。
sudo dpkg-reconfigure lightdm
如果当时没有做切换,那么以后可以通过手动配置来改变显示管理器。不同的发行版重新配置显示管理器的方法略有不同。
例如我可以更换UOS的lightdm,因为UOS默认只安装了lightdm,可以再安装一个xdm和sddm(sudo apt install xdm sddm
),之后运行sudo dpkg-reconfigure lightdm
修改成xdm,重启
修改成sddm,重启
修改有风险,容易进不去系统
参考
https://wiki.ubuntu.com/LightDM
https://github.com/canonical/lightdm
https://wiki.archlinux.org/title/LightDM
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30684.html