UOS/DEEPIN修改原生DDE-LOCK

本文部分内容来源于deepin官方github,地址:https://github.com/linuxdeepin

10/14/2021 4:35:01 PM

资源列表:

  • DTK API 文档:DTKAPI 接口中文说明,自动同步更新
  • Deepin 社区文档:核心为 DTK 团队的文档积累,社区爱好者的作品展示、技术交流
  • QtExamples:个人积累,为 DTK 的源码架构一些理解和实战
  • Deepin Wiki: DeepinGitHub 上某些仓库都有写 Wiki。虽零碎,但有惊喜
  • DTK 相关 PPT :《DTK 框架分享.pptx》 《DTK 框架介绍、优势对比.pptx》

1 DTK介绍

DTK(deepin tool kit)全称是 深度工具套件;是基于 Qt5 开发一整套界面美观且实用的 UI 图形库。
DTK包括以下内容:

  • dtk 仓库的集合(集合 = dtkwidget + dtkgui + dtkcore + qt5integration)
  • 偶也指 dtkwidget 这个仓库项目(仓库的名就叫 dtkwidget)
  • deepin tool kit 是一个深度工具构建集合。
  • 是 deepin/uos 系统开发应用软件,使用非 Qt 原生的样式控件的集合的开发环境
  • dtk 也是构建 deepin/uos 全家桶的基石

###1.1 DTK历史:

  • 2015 年 ,开发 v15 ,因开发控制中心(基于 Qt Widgets),开发的过程中抽象出了 dui 控件库(约三个月),仅有部分通用性的控件,仓库名称为 dui 。
  • 2016 年初,随后开发其他项目,dui 中加的东西越来越多,也不仅限于 ui 方面的控件,之后就改名为了 deepin-tool-kit 项目。
  • 2017 年底,随后成为了 DDE 桌面环境的底层开发库,封装了桌面组件和上层应用的通用型窗口、控件、工具类,随着项目过大,编译过慢,拆分为 dtkcore、dtkwidget、dtkwm,旧的 deepin-tool-kit 仓库地址处于废弃状态。
  • 2019 年,新增 dtkgui 模块,废弃了 dtkwm(不可跨平台,强依赖 X11,因此废弃),此后分为 dtkcore、 dtkgui、dtkwidget,角色分别对应 Qt core、gui、widgets 模块。
  • 2020 年,按照如今的理解为,dtk = dtkwidget + dtkgui + dtkcore + qt5integration

###1.2 DTK架构:
DTK 目前分为三个模块,dtkcore、dtkgui,dtkwidget,主要功能如下:

2 DDE介绍

DDE(deepin desktop environment) 简称 深度桌面环境;是采用 qt 作为前端,go 为后端,gala 作为 wm,lightdm 作为 dm 的独立开发的桌面环境。

2.1 架构总览

官方提供的DDE UI包括dde ui component + ddepin-policykit-agent + deepin-gtk-theme
其中dde ui component 主要是指dde-session-shell这个项目,该项目为QT项目,github开源。

2.2 dde-session-shell

dde-session-shell 项目为dde-ui-component组件,该开源项目提供deepin/uos的锁屏界面、登录界面、关机界面、桌面低栏、控制中心等界面程序,界面为QT语言开发,详细编译出的程序如下:

  1. dde-dock
  2. dde-launcher
  3. dde-control-center
  4. dde-osd
  5. dde-lock

最新代码只输出:

  1. dde-lock
  2. lightdm-deepin-greeter

主要界面被合并到dde-lock程序中,通过dbus或者消息通知界面完成显示切换。

2.3 deepin-policykit-agent

该项目为deepin系统授权弹窗程序,该程序功能为读取配置文件,显示授权输入窗体,完成程序授权操作。

2.4 deepin-gtk-theme

该项目为deepin提供系统主题。

3 dde-session-shell 实践

3.1准备

源码地址:

  • https://github.com/linuxdeepin/dtkcore
  • https://github.com/linuxdeepin/dde-session-shell

首先下载源码,尽量保证所下源码版本和系统已装deb版本一致,避免不兼容问题。
源码下载方法可以使用github地址下载,手动选择匹配tab;或者使用apt source dtkcore 来自动下载与系统匹配的源码。
编译顺序为 dtkcore -> dde-session-shell,因为dtkcore为dde桌面组件提供基础库。

其次安装依赖库:

  • 使能/etc/apt/source.list第二行的注释,该源地址提供更多库
  • sudo apt-get udpate
  • sudo apt install qt5-default qtcreator cmake g++ git
  • sudo apt install libdtkwidget-dev libdtkgui-dev libdtkcore-dev

3.2 编译dtkcore

源码编译:

  • cd dtkcore
  • sudo apt build-dep dtkcore; 生成相应依赖库
  • mkdir build;cd build
  • qmake ..
  • make
  • sudo make install

命令行安装:

官方说也可以直接apt安装dtkcore,但是我安装后没有起作用;
sudo apt install deepin-sdk qtcreator-template-dtk

3.3 编译dde-session-shell

在dtkcore安装的基础上,源码编译dde-session-shell;

  • cd dde-session-shell
  • mkdir build
  • cmake ..
  • make

注意:在cmake 步骤,会不断的提示有依赖包未发现,根据提示,使用sudo apt-get install libXXX-dev命令,即可解决依赖问题。

在make完毕,build目录会生成lightdm-deepin-greeter 、dde-lock、tests

依赖包未发现,根据提示,使用sudo apt-get install libXXX-dev命令,即可解决依赖问题。

在make完毕,build目录会生成lightdm-deepin-greeter 、dde-lock、tests

替换/usr/bin/dde-lock程序,即完成锁屏界面替换。

deepin系统修改原生锁屏界面相关推荐

  1. 《SystemUI》修改SystemUI锁屏界面时间格式

    要求:修改SystemUI锁屏界面时间格式 Android P 上Sysyemui锁屏界面上的日期显示不在DateView处理了,使用KeyguardSliceProvider来处理,继承Conten ...

  2. 修改win7锁屏界面背景

    修改win7锁屏界面背景步骤: 1.打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\L ...

  3. android 系统 锁屏界面,在安卓手机系统使用Ubuntu漂亮的锁屏界面攻略

    如果你了解Ubuntu系统,那么绝对会被它那漂亮的锁屏界面所吸引.今天我们就让广大Android用户能够提前感受一下Ubuntu系统的锁屏界面,并且不会有任何功能上的影响,所有的通知与信息都可以正常显 ...

  4. 网易云音乐锁屏界面实现

    2019独角兽企业重金招聘Python工程师标准>>> ######最终效果: #完整的实现思路: App如果需要在锁屏界面上显示相关的信息和按钮, 必须先开启远程控制事件(Remo ...

  5. win8系统如何修改锁屏界面壁纸

    1,进入设置----电脑和设备 2,进入锁屏界面----浏览,选择喜欢的桌面壁纸

  6. android 原生分享界面_手机资讯:省时省力!直接在锁屏界面打开应用App

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道省时省力!直接在锁屏界面打开应用App,那么既然现 ...

  7. 【2022年】Win11修改锁屏界面、登录界面背景图片方法(亲测有效)

    最近想给自己的电脑换个壁纸,桌面壁纸自定义已经玩的很熟了,就想设置一个登录界面的壁纸.毕竟每次锁屏(win+L),或者是开机输密码的时候都是那个大蓝色背景(见图1),看久了也累了.故作此文. 起因 本 ...

  8. linux系统lockscreen,iOS 5.1.1 锁屏界面(LockScreen)仿 HTC Sense 天气插件

    以前转了一个 iOS 利用 HTC Weather Animated PerpageHTML 实现仿 HTC 天气时钟的帖子: 这天气更新了 iOS 5.1.1 的完美越狱,现在发现以前放在 Page ...

  9. 怎么更改锁定计算机背景图片,Win7系统怎么更改锁屏壁纸?注册表如何修改锁屏壁纸?...

    Win7系统怎么更改锁屏壁纸?很多第三方软件都可以做到,但我们该如何手动设置锁屏壁纸呢?本文将配合使用注册表修改Win7系统的锁屏壁纸的步骤进行一个详细的讲解,具体步骤请看下文. Win7系统更改锁屏 ...

最新文章

  1. NLP之NBGBT:基于朴素贝叶斯(count/tfidf+网格搜索+4fCrva)、梯度提升树(w2c+网格搜索+4fCrva)算法对IMDB影评数据集进行文本情感分析(情感二分类预测)
  2. anaconda中安装xgboost_Anaconda是什么?Anconda下载安装教程 - python基础入门(16)
  3. HTML+CSS+JS实现 ❤️slicebox酷炫3d图片轮播切换❤️
  4. 原力值13872,不知道排名多少
  5. linux执行命令在哪,在linux终端中执行root命令有哪些方法
  6. ae效果英文版翻译对照表_AE CS6 最全特效中英翻译
  7. 多数据源配置MyBatisPlus(十八)
  8. 阿里云 mysql 创建数据库 账户密码 外网连接等
  9. 桃花院长:怎么找对象?相亲过来人告诉你...
  10. centos部署hadoop完全分布式
  11. 4.基于Android 12 分析系统启动过程
  12. MarkDown: 为字体添加颜色
  13. 2022.7.14 花旗银行外包面试
  14. 微信支付之01------获取订单微信支付二维码的接口------Java实现
  15. ITE平台开发 chapter5之jperf测试网络吞吐量
  16. 网络客户/服务器程序
  17. 电脑无法连接micro:bit的USB
  18. 西电计算机学院名誉院长,杨孟飞院士受聘为西电计科院名誉院长及讲席教授
  19. 利用cookie和jsp写一个简单的登录判断的网页,并获取上次的登录的时间。
  20. 硬盘 不属于Rom RAM

热门文章

  1. python:Flask中request对象的简单用法
  2. VS2013配置Boost.Asio环境
  3. IP地址详解 IP地址的分类
  4. 电话号码与英文单词对应
  5. CarPlay无线连接方案详解(蓝牙部分)
  6. 简单分享一个jq知识点,值得收藏
  7. java遍历是什么意思_java里这句话是怎么起到遍历的作用的? Java循环遍历什么意思...
  8. echarts的legend设置width不生效
  9. NOKIA N70如何恢复出厂设置
  10. 祝我家小璐璐生日快乐