deepin系统修改原生锁屏界面

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 WikiDeepinGitHub 上某些仓库都有写 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程序,即完成锁屏界面替换。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值