关注优麒麟,更多干货等着你!
目前优麒麟操作系统的登录界面风格比拟对立,咱们个人用户可不可以开发一款独具一格的,具备非凡意义的登录程序呢?例如开机登录时幻灯片播放本人喜爱的照片、展现本人喜爱的人生格言等,这当然是能够的!
接下来就凭借我集体的一点肤浅常识,来给大家做个抛砖引玉,简要介绍下开发人员如何在优麒麟上定制本人的登录界面。
壁纸素材来自网络,仅用作视频演示,如若侵权可分割删除。
一、DIY 优麒麟登录界面开发根底与开发环境介绍
1. 开发根底(须要但不限于)
相熟 C/C++ 计算机编程语言、理解 Qt 跨平台的 C++ 图形用户界面应用程序框架以及 QtCreator 开发工具包。
2. 开发环境
20.04 版本零碎上登录界面的启动、展现以及登录认证是在 LightDM 根底上搭配 liblightdm-qt5-3-dev 库(QT 应用程序与 LightDM 交互的桥梁)实现的,明天咱们就在此开发环境根底上自定义登录界面。
二、理解 LightDM– 桌面显示管理器
1. 什么是 LightDM?
LightDM 是运行在 Debian 系列操作系统上的桌面显示管理器,它的全名是 LightDisplay Manager,外表含意是轻量级桌面显示管理器。它是 FreeDesktop 工程的一部分。FreeDesktop 是一个致力于 Linux 和其余类 Unix 上的 X 窗口零碎的桌面环境之间的互操作性和根底技术共享的我的项目,由 Red Hat 公司 的 HavocPennington 于 2000 年 3 月创建。官方网站是:https://www.freedesktop.org。优麒麟社区 20.04 版本就是应用 LightDM 作为默认的窗口管理器。
2.LightDM 与登录界面程序的关系及配置批改
操作系统初始化时会拉起 LightDM 服务,LightDM 服务初始化时会启动 Xserver 图形桌面服务,再依据 LightDM 的一系列配置拉起一些自定义脚本、服务、或程序,登录界面程序就在其中,波及到如下几个配置文件夹,配置具体定义见参考文档:
- /usr/share/lightdm/lightdm.conf.d/
- /etc/lightdm/
- /etc/lightdm/lightdm.conf.d/
- 全局通用配置批改文件:/etc/lightdm/lightdm.conf
- 自定义配置批改文件:/usr/share/lightdm/lightdm.conf.d/96-mydiygreeter.conf
3. 配置自定义登录程序
编辑文件(不存在则需创立)/usr/share/lightdm/lightdm.conf.d/96-mydiygreeter.conf 如下:
[Seat:*]
#greeter-session=ukui-greeter
greeter-session=mydiygreeter
user-session=ukui
三、登录界面程序实现
1. 在 QtCreator 工具中创立工程 mydiygreeter 工程并利用 QT 应用程序框架初始化登录主窗口
2. 实现与 LightDM 交互类失去交互接口
- 获取以后选中行将登录的用户名:userName
- 设置行将登录的用户名:setUserName
- 告诉 LightDM 异步启动 user-session(用户会话):startSession
-
获取用户与 LightDM 共享目录:getEnsureShareDir
3. 获取零碎用户列表并初始化用户列表菜单控件
- 实例化 QLightDM::UsersModel 用户数据模型获取零碎用户列表
- 依据用户列表信息初始化菜单控件供选择登录用户
4. 用户登录交互实现
- 实例化 MyGreeterWrapper:m\_greeter,并监听认证交互状态信号(认证过程中音讯提醒、认证状态机状态变更、认证后果)
- 通过 MyGreeterWrappe r 实例调用 LightDM 开始认证接口:
m_greeter->authenticate(username);
- 通过 MyGreeterWrapper 实例调用 LightDM 明码认证:
m_greeter->respond(pwd);
- 认证实现后启动用户会话:
m_greeter->startSession();
5. 自定义主窗口背景图
- 遍历自定义背景照片门路中图片门路
- 定时器变更行将更新的背景图门路
- 主窗口背景刷新图片 – 重写 QMainWindow 类的 paintEvent 办法
6. 编译 mydiygreeter 工程失去二进制程序 mydiygreeter
7. 将自定义登录程序拷贝到零碎默认可执行程序目录:
cpmydiygreeter /usr/sbin/ (需 sudo 提权)
8. 配置 mydiygreeter.desktop 文件,并拷贝到 /usr/share/xgreeters/ 目录下
9. 终端重启 LightDM 服务即可见自定义登录界面
留神
1、上述流程中代码逻辑仅供参考,具体 demo 源码及打 deb 包可登录 优麒麟论坛 支付;
2、应用 QLightDM 需在 Qt 工程中减少配置:
PKGCONFIG+= liblightdm-qt5-3)
参考文档
- LightDM 文档:
http://people.ubuntu.com/~rob…
- 他山之石:
https://blog.csdn.net/caoshiy…
- Qt 官网文档:
https://doc.qt.io/qt.html#qt5
感兴趣的小伙伴,连忙学起来吧!如有更多疑难,可至优麒麟论坛留言通知咱们哦~