openKylin论坛

 找回密码

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]

登录&锁屏界面指的是需要提供帐号密码验证的界面,有控制用户权限、记录用户行为,保护操作安全的作用。今天就给大家简要介绍下openKylin操作系统登录&锁屏界面。




登录


一、LightDM简介

openKylin操作系统上登录界面的启动、展示、认证进入系统是在LightDM基础上实现的。下面我们来简单介绍一下LightDM。

LightDM全称Light Display Manager,是一款轻量级显示管理器。相较与GDM,LightDM是界面无关性的,它通过提供API给登录界面调用,来达到登录界面和LightDM完全分离的效果。因此可以通过LightDM的配置来完全实现一个登录界面。比如unity-greeter,lightdm-gtk-greeter就是基于LightDM来实现的。下面以openKylin登录为例,来介绍如何通过LightDM实现一个登录界面。

二、登录用到的接口

LightDM分别提供了GTK和QT的API接口,由于在openKylin中登录是使用QT来实现的,下面就对QT中LightDM常用的几个类进行介绍。

1. QLightDM::Greeter

QLightDM::Greeter类提供了登录界面连接LightDM必须要的一些接口,比如连接到LightDM,对用户进行认证,启动桌面环境,以及一些其他功能。

2. QLightDM::UsersModel

QLightDM::UsersModel类提供了用户信息,登录界面可以通过这个接口,拿到当前系统能够登录的用户列表以及用户信息。

3. QLightDM:owerInterface

QLightDM:owerInterFace提供了电源管理相关的功能,登录界面在进行关机,重启,睡眠,休眠等功能时,会用到该接口。

4. QLightDM::SessionsModel

QLightDM::SessionsModel提供了用户会话相关的信息,有时候桌面环境不止一个,这个时候就需要通过这个类来获取到当前有多少个桌面环境来提供给用户进行选择。

三、登录的实现原理

上面介绍了LightDM的几个类,下面重点介绍下登录从认证到进入桌面的大致流程。

1. 首先需要连接到LightDM,只有执行完这一步以后,才可以继续往下执行。


2. 实例化QLightDM::userModel来获取用户信息,用于展示用户列表。


3. 可以通过QLightDM::Greeter提供的authenticate()接口来开始进行认证,并连接相应的信号。



showMessage:表示系统pam(LightDM内部使用pam的接口进行认证,上层界面不需要接触pam)发来的消息,用于展示认证的一些消息给用户看,其中第一个参数是消息字符串,第二个参数是消息的类型。

ShowPrompt:表示系统pam发送的一些认证操作提示,显示在密码框里,比如openKylin登录密码框中的”密码”两个字,就是pam发送来的。这里第一个参数代码消息字符串,第二个参数代表消息类型,可以根据这个类型判断密码框中是否显示明文或密文,比如当发来的是”密码”两个字时,密码框应该是密文显示,发来的是”用户名”时,密码框就是明文显示。

authenticationComplete:当前认证已经完成的信号,可以通过QLightDM::Greeter的isAuthenticated()接口来获取认证的结果,如果认证成功,就代表用户可以登录,反之需要提示用户认证失败。

4. 启动桌面环境

这一步很简单,当用户认证通过以后,就可以通过调用QLightDM::Greeter 的startSession函数进行桌面环境的启动。


登录界面从启动,到认证,再到登录,大致的流程就是上面介绍的,但实际上还有更多需要做的部分,比如电源管理,桌面环境选择,用户语言的设置等,这里就不逐一介绍了。



锁屏


锁屏主要分为两个界面:一个是屏保,一个是锁屏。当锁屏监听到系统进入空闲的信号以后:


定时器开始计时,如果中途空闲没有被打断,定时器时间加上系统进入空闲的时间等于进入屏保的时间则发送一个sessionIdle()信号;


这时就会把屏保界面给显示出来了:


进入锁屏界面的逻辑也是如此。锁屏的认证机制和登录类似这里就不一一赘述了。



openKylin登录&锁屏小技巧


我们在日常使用电脑时,登录锁屏出现的场景还是比较多的,下面给大家来介绍一些openKylin登录&锁屏的小技巧。

1. 快捷键

这个大家应该用的比较多,就是Crtl+Alt+L或者Win+L

2. 免密登录

我们在日常使用电脑时,肯定有遇到这种情况:一会不用电脑就自动进入锁屏了,这时又得输一遍密码进入桌面,其实openKylin是支持免密登陆的。在控制面板的账户中将免密登录的选项打开,也可以直接在终端输入sudo gpasswd -a (用户名) nopasswdlogin,打开免密登录,终端输入sudo gpasswd -d (用户名) nopasswdlogin,关闭免密登录:


这样在确保使用环境安全的前提下,锁屏以后就不用再输入密码才能进入桌面了。(一天省去了n次输入密码)


3. 自定义屏保

openKylin操作系统的屏保是支持自定义的,我们在控制面板的屏保的屏幕保护程序中选择自定义:


就可以将自己喜欢的图片放入一个文件夹,将屏保来源选择为所在文件夹的路径,这样屏保就会轮播自己所喜欢的图片啦!然后还可以选择图片切换顺序、频率,设置气泡等,可玩性还是很高的。


4. 输入用户名登录系统

大家有没有尝试过自己输入用户名登录系统呢?openKylin登录就有这个功能哦!在当前系统有多用户的条件下,在/etc/lightdm/lightdm.conf(登录配置文件)中添加greeter-show-manual-login=true:


然后重启电脑,这时我们重新登录的时候就可以在用户列表中看到一个“登录”的选项,选择用户列表中的登录,就可以自己输入用户名登录啦!


以上就是本篇文章对于openKylin登录&锁屏界面的基本介绍啦,希望能对大家有所帮助。如有更多疑问,可前往openKylin Gitee仓库留言反馈哦~




openKylin(开放麒麟)社区旨在以“共创”为核心,在开源、自愿、平等、协作的基础上,通过开源、开放的方式与企业构建合作伙伴生态体系,共同打造桌面操作系统顶级社区,推动Linux开源技术及其软硬件生态繁荣发展。
社区首批理事成员单位包括麒麟软件、普华基础软件、中科方德、麒麟信安、凝思软件、一铭软件、中兴新支点、元心科技、中国电科32所、技德系统、北京麟卓、先进操作系统创新中心等13家产业同仁和行业机构。




审核:openKylin



楼主
发表于 2022-12-8 09:19:04
回复

使用道具 举报

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]

lockState如果是全局变量,是不是要加g_
沙发
发表于 2022-12-8 10:34:39
回复

使用道具 举报

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]

锁屏壁纸可以更换吗?
板凳
发表于 2022-12-8 19:56:36 来自手机
回复

使用道具 举报

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]

凛葵依 发表于 2022-12-8 10:34
lockState如果是全局变量,是不是要加g_

“ 下次一定注意命名规范,谢谢指导~ ”
地板
 楼主| 发表于 2022-12-9 16:37:51
回复

使用道具 举报

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]

觉醒勇敢 发表于 2022-12-8 19:56
锁屏壁纸可以更换吗?

可以呀~
5#
 楼主| 发表于 2022-12-9 17:18:48
回复

使用道具 举报

【小白课程】openKylin登录&锁屏简要介绍 [复制链接]


好哒,谢谢~晚上去旧电脑上试试
6#
发表于 2022-12-10 17:58:15
回复

使用道具 举报

openKylin

GMT+8, 2024-4-20 23:00 , Processed in 0.020345 second(s), 18 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表