玖玖资源站亚洲av_日本乱偷中文字幕一二三区_久久这里只有精品98_亚洲特级黄片视频_男女很舒服爽视频免费_国产一二三四2021精字窝_国产高潮白浆一区_自拍日本高清三级_秘书高跟黑色丝袜国产在线_亚洲A v永久无码精品网站色欲

NEWS

新聞

了解優(yōu)麒麟最新資訊,關(guān)注社區(qū)和產(chǎn)品動(dòng)態(tài)。

NEWS

Learn about the latest news.

不再單調(diào)!快來(lái)自定義你的專屬背景~

2022-04-15 09:09:34

目前優(yōu)麒麟操作系統(tǒng)的登錄界面風(fēng)格比較統(tǒng)一,我們個(gè)人用戶可不可以開(kāi)發(fā)一款獨(dú)具一格的,具有特殊意義的登錄程序呢?例如開(kāi)機(jī)登錄時(shí)幻燈片播放自己喜歡的照片、展示自己喜歡的人生格言等,這當(dāng)然是可以的!

接下來(lái)就為大家簡(jiǎn)要介紹下開(kāi)發(fā)人員如何在優(yōu)麒麟上定制自己的登錄界面。

壁紙素材來(lái)自網(wǎng)絡(luò),僅用作視頻演示,如若侵權(quán)可聯(lián)系刪除。


一、DIY 優(yōu)麒麟登錄界面開(kāi)發(fā)基礎(chǔ)與開(kāi)發(fā)環(huán)境介紹

1.開(kāi)發(fā)基礎(chǔ)(需要但不限于)

熟悉 C/C++ 計(jì)算機(jī)編程語(yǔ)言、了解 Qt 跨平臺(tái)的 C++ 圖形用戶界面應(yīng)用程序框架以及 QtCreator 開(kāi)發(fā)工具包。

2.開(kāi)發(fā)環(huán)境

20.04 版本系統(tǒng)上登錄界面的啟動(dòng)、展示以及登錄認(rèn)證是在 LightDM 基礎(chǔ)上搭配 liblightdm-qt5-3-dev 庫(kù)(QT 應(yīng)用程序與 LightDM 交互的橋梁)實(shí)現(xiàn)的,今天我們就在此開(kāi)發(fā)環(huán)境基礎(chǔ)上自定義登錄界面。


二、了解 LightDM--桌面顯示管理器

1.什么是 LightDM ?

LightDM 是運(yùn)行在 Debian 系列操作系統(tǒng)上的桌面顯示管理器,它的全名是 LightDisplay Manager ,表面含義是輕量級(jí)桌面顯示管理器。它是 FreeDesktop 工程的一部分。FreeDesktop 是一個(gè)致力于 Linux 和其他類 Unix 上的 X 窗口系統(tǒng)的桌面環(huán)境之間的互操作性和基礎(chǔ)技術(shù)共享的項(xiàng)目,由 Red Hat 公司 的 HavocPennington 于 2000 年 3 月創(chuàng)立。官方網(wǎng)站是:https://www.freedesktop.org  。優(yōu)麒麟社區(qū) 20.04 版本就是使用 LightDM 作為默認(rèn)的窗口管理器。


2.LightDM 與登錄界面程序的關(guān)系及配置修改

操作系統(tǒng)初始化時(shí)會(huì)拉起 LightDM 服務(wù),LightDM 服務(wù)初始化時(shí)會(huì)啟動(dòng) Xserver 圖形桌面服務(wù),再根據(jù) LightDM 的一系列配置拉起一些自定義腳本、服務(wù)、或程序,登錄界面程序就在其中,涉及到如下幾個(gè)配置文件夾,配置詳細(xì)定義見(jiàn)參考文檔:

●  /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.配置自定義登錄程序

編輯文件(不存在則需創(chuàng)建)/usr/share/lightdm/lightdm.conf.d/96-mydiygreeter.conf如下:

[Seat:*]
#greeter-session=ukui-greeter
greeter-session=mydiygreeter
user-session=ukui


三、登錄界面程序?qū)崿F(xiàn)

1.在 QtCreator 工具中創(chuàng)建工程 mydiygreeter 工程并利用 QT 應(yīng)用程序框架初始化登錄主窗口

優(yōu)麒麟

2.實(shí)現(xiàn)與 LightDM 交互類得到交互接口

優(yōu)麒麟

●  獲取當(dāng)前選中即將登錄的用戶名:userName

●  設(shè)置即將登錄的用戶名:setUserName

●  通知 LightDM 異步啟動(dòng) user-session(用戶會(huì)話):startSession

優(yōu)麒麟

●  獲取用戶與 LightDM 共享目錄:getEnsureShareDir

3.獲取系統(tǒng)用戶列表并初始化用戶列表菜單控件

●  實(shí)例化 QLightDM::UsersModel 用戶數(shù)據(jù)模型獲取系統(tǒng)用戶列表

●  根據(jù)用戶列表信息初始化菜單控件供選擇登錄用戶

4.用戶登錄交互實(shí)現(xiàn)

●  實(shí)例化 MyGreeterWrapper:m_greeter,并監(jiān)聽(tīng)認(rèn)證交互狀態(tài)信號(hào)(認(rèn)證過(guò)程中消息提示、認(rèn)證狀態(tài)機(jī)狀態(tài)變更、認(rèn)證結(jié)果)

優(yōu)麒麟

●  通過(guò) MyGreeterWrappe r實(shí)例調(diào)用 LightDM 開(kāi)始認(rèn)證接口:

m_greeter->authenticate(username);

●  通過(guò) MyGreeterWrapper 實(shí)例調(diào)用LightDM密碼認(rèn)證:

m_greeter->respond(pwd);

●  認(rèn)證完成后啟動(dòng)用戶會(huì)話:

m_greeter->startSession();

5.自定義主窗口背景圖

●  遍歷自定義背景照片路徑中圖片路徑

優(yōu)麒麟

●  定時(shí)器變更即將更新的背景圖路徑

優(yōu)麒麟

●  主窗口背景刷新圖片--重寫(xiě) QMainWindow 類的 paintEvent 方法

優(yōu)麒麟

6.編譯 mydiygreeter 工程得到二進(jìn)制程序 mydiygreeter

7.將自定義登錄程序拷貝到系統(tǒng)默認(rèn)可執(zhí)行程序目錄:

cpmydiygreeter /usr/sbin/ (需sudo提權(quán))

8.配置 mydiygreeter.desktop 文件,并拷貝到 /usr/share/xgreeters/ 目錄下

優(yōu)麒麟

9.終端重啟 LightDM 服務(wù)即可見(jiàn)自定義登錄界面


注意

1、上述流程中代碼邏輯僅供參考,詳細(xì)demo源碼及打deb包可登錄優(yōu)麒麟論壇(或點(diǎn)擊“閱讀原文”)領(lǐng)?。?/p>

2、使用 QLightDM 需在 Qt 工程中增加配置:

PKGCONFIG+= liblightdm-qt5-3)


參考文檔

●  LightDM 文檔:

http://people.ubuntu.com/~robert-ancell/lightdm/reference/

●  他山之石:

https://blog.csdn.net/caoshiying/article/details/107242980

●  Qt 官方文檔:

https://doc.qt.io/qt.html#qt5


感興趣的小伙伴,趕緊學(xué)起來(lái)吧!如有更多疑問(wèn),可至優(yōu)麒麟論壇留言告訴我們哦~