Tuesday, April 22, 2025
最近遇到了两起 X11 下客户端报 Maximum number of clients reached
的错误,并且无法连接到 Xorg。
搜到了一个排查方法,执行
Wednesday, April 16, 2025
编辑的话请把自己的名字加到作者名单里
deepin 23.1 现已发布。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。
下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}
概览
对于 DDE 本次更新并未包含大规模的结构调整,而是比较存催的缺陷修复为主的更新,对于比较值得注意的事项将会列在下方。对于 deepin 23 的注意事项,可参见 deepin 23 正式版发布时的移植指南文章所给出的说明。
由于 DDE 涉及到的各个组件项目的版本间互相影响,我们强烈建议移植人员参照 deepin 23.1 正式版所使用的包版本进行打包(也务必遵循依赖顺序打包)。下面会对主要的部分进行详细说明。
下面给出的版本号信息供打包移植时参考。若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYSTEM.MANIFEST
(也可能是 LIVE/FILESYS0.MAN
)路径对应的文件的内容。
主要组件
DTK 与 DTK6
DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:
package | version |
---|---|
dtkcommon | 5.7.5 |
dtklog | 0.0.2 |
dtkcore | 5.7.5 |
dtkgui | 5.7.5 |
dtkwidget | 5.7.5 |
dtkdeclarative | 5.7.5 |
qt5integration | 5.7.5 |
qt5platform-plugins | 5.7.5 |
dtk6log | 0.0.2 |
dtk6core | 6.0.25 |
dtk6gui | 6.0.25 |
dtk6widget | 6.0.25 |
dtk6declarative | 6.0.25 |
qt6integration | 6.0.25 |
qt6platform-plugins | 6.0.25 |
除新增的 dtklog 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。
deepin-kwin wayland 功能已经废弃,未来将由 treeland 替代。目前 dwayland 包已经不再使用,依赖此包的应用比如 qt5platform-plugins,不应该继续编译依赖 dwayland 的功能,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避。
目前,使用 dtk6 的正式组件有 dde-application-manager,dde-launchpad 与 dde-shell。需要注意,deepin 23 环境中 dde-shell 的托盘组件 dde-tray-loader 仍然需要使用 qt5。
DDE 主要组件
下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。
下面涉及到的组件的版本参照如下:
package | version |
---|---|
deepin-osconfig | 2024.08.06 |
dde-app-services | 1.0.27 |
dde-session | 1.2.13 |
dde-application-manager | 1.2.27 |
dde-tray-loader | 1.0.10 |
dde-shell | 1.0.10 |
dde-launchpad | 1.0.11 |
dde-application-wizard | 0.1.10 |
deepin-wayland-protocols | 1.10.0.28 |
deepin-kwin | 5.27.2.213 |
dde-launcher | 被 dde-launchpad 取代,不再使用 |
dde-dock | 被 dde-shell 取代,不再使用 |
dde-application-manager
此组件现已使用主干分支最新版本(当前为 1.2.27
)。请注意,较早的主干版本(例如 1.2.26
)在 deepin 23 环境存在一些已知行为问题,故移植最新的 deepin 23 DDE 时,请至少使用 1.2.27
版本。
dde-session-shell
尽管此组件不存在架构性质层面的较大调整,但涉及到打包移植相关的注意事项。此组件由于主干分支的研发需求,对仓库进行过迁移到。当前 GitHub 上的 linuxdeepin/dde-session-shell 仓库历史已与之前不同。故如果你需要适用于 deepin 23 的此仓库的完整历史,请转到 dde-session-shell-snipe。所有原始仓库的提交历史以及 tag 均可在这个仓库中找到(实质是仓库重命名后新建了与原名的同名仓库)。
(注:相关请参见此邮件列表存档)
Qt 6.9 编译问题
- dtk:23 版本 dtk 没有适配 qt 6.9,可尝试使用最新 tag,或者参考 Arch linux 打包提供的 patch
- dde-shell:需要 https://github.com/linuxdeepin/dde-shell/pull/1091
如果遇到 qmlsc 崩溃问题,见 QTBUG-135885 和 QTBUG-135885,需要为 qtdeclarative 增加以下 patch:
技术预览组件
原本涉及的技术预览组件在 23 至 23.1 的这个阶段均无较大进展,故不再于此罗列。
获取移植帮助
如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:
- Matrix 群:
#dde-port:deepin.org
- Telegram 群:https://t.me/ddeport
Friday, March 21, 2025
编辑的话请把自己的名字加到作者名单里
即将发布(你阅读到这个文章的时候可能已经发布了)的 deepin 25 alpha 将会包含对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。
下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}
概览
相对于 deepin 25 preview,在 deepin 25 alpha 中并不存在较大幅的架构调整,而是以缺陷修复以及完善之前尚未完善但计划涵盖在最终版本的组件(例如 QML 版控制中心)作为研发的重心。同时,我们也对 Qt、DTK 进行了更多完善,以供 DDE 组件以及 Treeland 能够更好的运行。
由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 alpha 所使用的包版本进行打包,下面会对主要的部分进行详细说明。
需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{T,0,1}.MAN
/live/filesystem.manifest
路径对应的文件的内容。
主要组件
DTK 与 DTK6
DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:
package | version |
---|---|
dtkcommon | 5.7.12 |
dtklog | 0.0.2 |
dtkcore | 5.7.12 |
dtkgui | 5.7.12 |
dtkwidget | 5.7.12 |
dtkdeclarative | 5.7.12 |
qt5integration | 5.7.12 |
qt5platform-plugins | 5.7.7 |
dtk6core | 6.0.32.1 |
dtk6gui | 6.0.32 |
dtk6widget | 6.0.32 |
dtk6declarative | 6.0.32.1 |
qt6integration | 6.0.32 |
qt6platform-plugins | 6.0.32 |
除 dtklog 以及 dtk6 的 core 于 declarative 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。
关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。
DDE 主要组件
下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。
由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog
文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。
下面涉及到的组件的版本参照如下:
package | version |
---|---|
dde-session | 1.99.11 |
dde-application-manager | 1.2.26 |
dde-shell | 1.99.28 |
dde-launchpad | 1.99.9 |
dde-tray-loader | 1.99.19 |
dde-application-wizard | 0.1.13 |
dde-clipboard | 6.1.6 |
dde-launcher | 被 dde-launchpad 取代,不再使用 |
dde-dock | 被 dde-shell 取代,不再使用 |
dde-application-manager
由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。
dde-shell
dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。alpha 阶段相比 preview 阶段集中在缺陷的修复上,并未涵盖太多的结构调整和新特性。对于 alpha 以及更早版本的变化,请阅读之前的博客文章。
为保障 dde-shell 在 Qt 6.8.0 或 6.8.1 的环境可以正常运行(即使是X11环境下),若 ,则 必须 给 qtwayland 打下面的 patch:
- https://codereview.qt-project.org/c/qt/qtwayland/+/603556 (此 patch 已合入 Qt 上游,涵盖在
Qt Wayland >= 6.8.2
版本中)
另外,dde-shell 在 alpha 中为修正一个特定问题所包含的一个变更依赖另一个 Qt Wayland 的 patch:
若你所移植的目标发行版不接受此补丁,则可考虑对 dde-shell 项目 revert 于此相关的对应 commit:
dde-launchpad
dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。
dde-session
需要注意的是,我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。
下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:
package | version |
---|---|
vioken/waylib | 0.6.13 |
vioken/qwlroots | 0.5.3 |
treeland | 0.5.20 |
ddm | 0.1.10 |
Treeland 环境
Treeland 环境相较于 deepin 23 阶段有了较多的提升,不过由于 Treeland 迭代开发过程中我们对 Qt 以及 wlroots 进行了诸多完善,故 Treeland 对 Qt 以及 wlroots 等组件有较高的版本要求,以及可能需要应用一些额外的 patch。
DDM
尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。
对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop
即可。
Qt 补丁
下述假定您的发行版使用的 Qt 版本为 Qt 6.8.2。
如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。
https://codereview.qt-project.org/c/qt/qtbase/+/611940
另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.2,则可能需要打三个额外的补丁,可参见 DDE Qt 6.8 适配说明(针对 Qt 6.8.0) 以及 deepin 25 preview DDE 移植简要指南(针对 Qt 6.8.1)。
获取移植帮助
如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:
- Matrix 群:
#dde-port:deepin.org
- Telegram 群:https://t.me/ddeport
Wednesday, March 5, 2025
由于 deepin-ports SIG 维护的 deepin (23/25) RISC-V 版本的版本发布周期和软件包维护状况与主线 deepin 有所不同,本文将为用户和开发者提供一些常见问题的解答。
1. deepin RISC-V 版本的发布周期是多久?
与主线发布的 iso 镜像不同,RISC-V 版本需要针对不同的硬件平台进行适配,其中不仅涉及到 deepin 主线软件仓库的更新,来自硬件厂商的驱动和内核也会有各自的更新周期,且适配过程中可能存在一些 bug,这也需要通过发布新版本的方式来修复。
因此,我们有如下发布计划:
- 对于主线 deepin 的 大版本发布(不同仓库) ,我们会在不晚于 1 个月的时间内发布对应的 RISC-V 镜像。
- 对于主线 deepin 的 小版本发布或日常更新(同一仓库) ,我们不保证会同步发布对应的 RISC-V 镜像,但用户可以通过更新软件包的方式获得最新的软件。
- 对于硬件厂商的 SDK 和驱动更新,我们会在收到更新后尽快发布对应的 RISC-V 镜像。
- 对于 已知的 bug,我们不保证会在短时间内发布新镜像,但是我们每次发布新镜像时都会尽量修复所有已知的 bug。
- 对于 内核的大更新(改变版本号),我们会在收到更新后尽快构建并推送至仓库。
- 对于 内核的小更新(不改变版本号),我们会在有大量更新或者有重大 bug 修复时构建并推送至仓库。
2. deepin RISC-V 版本的软件包是如何维护的?
deepin-ports 发布的镜像通常包含以下全部或部分仓库的组合:
- deepin 主线仓库 (23 或 25),由 deepin CI 统一构建
- deepin-ports 仓库, 包含了一些 deepin 主线仓库中未包含的软件包
ports-apps
仓库, 包含一些针对 RISC-V 平台适配的应用软件包ports-kernel
仓库, 包含了所有版本的非主线的 RISC-V 内核ports-profiles
仓库,包含了针对 RISC-V 各种设备适配的配置文件和包组ports-imggpu
仓库,包含了各版本的 Imagination GPU 驱动,通常由固件和特定版本的 glvnd 化 mesa 组成ports-board-*
仓库,包含了特定硬件平台的驱动,这些驱动通常由硬件厂商提供,尚未上游化
例如,JH7110 镜像(适用于 VisionFive 2、MilkV Mars 等设备)的 /etc/apt/sources.list
将包括以下内容:
# deepin 25 stable + testing
deb https://ci.deepin.com/repo/deepin/deepin-community/stable/ crimson main community commercial
deb https://ci.deepin.com/repo/deepin/deepin-community/testing/ unstable/25 main community commercial
# deepin-ports apps + kernel + imggpu + profiles + boards-jh7110
deb [ trusted=yes ] https://ci.deepin.com/repo/deepin/deepin-ports/repo/ crimson ports-apps ports-kernel ports-imggpu ports-profiles ports-board-jh7110
以上仓库均在 Open Build Service (OBS) 上构建,构建结果会被发布到对应仓库中。自 2024 年以来,我们已经通过此方式适配了十余款设备,该维护方式经验证有效。
3. deepin RISC-V 版本的内核是如何维护的?
对于一些厂商提供的内核,deepin-ports 提供了一套工作流实现自动化构建,产物将遵循 deepin-ports 的 RISC-V 发布周期推送至仓库,该工作流同样构建 u-boot。具体包含以下流程:
- git clone 远程分支,安装内核构建依赖
- 应用特定一组 deepin 下游 patch
- 执行 defconfig,应用特定一组 deepin 下游 config
- 构建内核并打包 deb
该工作流在 GitHub Action 上使用交叉编译,在 deepin OBS (Open Build Service) 上使用 riscv64 构建机编译。(注意:仅后者打出的 linux-headers 可用于 DKMS)
Thursday, January 16, 2025
编辑的话请把自己的名字加到作者名单里
即将发布(你阅读到这个文章的时候可能已经发布了)的 deepin 25 preview 将会包含对应的新版 DDE。为了方便各个其它发行版的包维护者可以更方便的移植 DDE 到对应的发行版,这里提供一篇简要的移植指南,用以描述常见的移植问题和解决方案。
下面对项目名称的称呼均以 GitHub 对应的原始仓库名为准。 {.note}
概览
相对于 deepin 23,在 deepin 25 中,包括桌面、通知中心在内的大部分旧的 DDE 桌面组件已转化为 dde-shell 插件形式,以供更好的跨显示环境兼容性。包括控制中心在内的组件也已开始提供全新设计以及基于 QML 的全新界面。同时,我们也对 Qt、DTK 进行了更多完善,以供 DDE 组件以及 Treeland 能够更好的运行。
由于这些项目的版本间互相影响,我们建议移植人员参照 deepin 25 preview 所使用的包版本进行打包,下面会对主要的部分进行详细说明。
需要注意的是,由于此文章编写时间早于版本发布时间,故最终版本镜像中使用的版本可能高于下面列出的版本。我们尽可能确保此文章的准确性,但若您需要获取 ISO 镜像中使用的确切软件版本列表,请挂载 ISO 后参阅 LIVE/FILESYS{0,1}.MAN
/live/filesystem.manifest
路径对应的文件的内容。
主要组件
DTK 与 DTK6
DTK 是 DDE 组件与应用的基础依赖,适用于 RC 的版本参照如下:
package | version |
---|---|
dtkcommon | 5.7.7 |
dtklog | 0.0.2 |
dtkcore | 5.7.7 |
dtkgui | 5.7.7 |
dtkwidget | 5.7.7 |
dtkdeclarative | 5.7.7 |
qt5integration | 5.7.7 |
qt5platform-plugins | 5.7.7 |
dtk6core | 6.0.27 |
dtk6gui | 6.0.27 |
dtk6widget | 6.0.27 |
dtk6declarative | 6.0.27 |
qt6integration | 6.0.27 |
qt6platform-plugins | 6.0.27 |
除 dtklog 外,本次 DTK 版本号以及相对应的平台插件等版本号均已对齐,可直接参照打包。
关于 qt5platform-plugins,现有的 dwayland 插件可能对非 DDE 环境(例如 KDE)的 wayland 用户存在影响,可参照 linuxdeepin/developer-center#7217 打对应的 patch 规避影响。
DDE 主要组件
下面仅涉及变化较大或影响较广的组件。其余未涉及的组件可正常参照最新 tag 进行打包与移植。
由于 deepin 25 preview 仍在持续开发过程中,故较多组件采取了 x.99.z 的版本号策略。此外,一般情况下,此类 tag 并不会实际以 git tag 的形式存在,而只会体现在 debian/changlog
文件中。下面涉及到的此类版本号将会在版本发布前后补充对应的 git tag。
下面涉及到的组件的版本参照如下:
package | version |
---|---|
dde-session | 1.99.7 |
dde-application-manager | 1.2.23 |
dde-shell | 1.99.19 |
dde-launchpad | 1.99.5 |
dde-tray-loader | 1.99.12 |
dde-application-wizard | 0.1.11 |
dde-clipboard | 6.1.4 |
dde-launcher | 被 dde-launchpad 取代,不再使用 |
dde-dock | 被 dde-shell 取代,不再使用 |
dde-application-manager
由于涉及到诸多关于应用识别的改善,故建议总是使用最新版本。
dde-shell
dde-shell 旨在将 DDE 桌面环境插件化与模块化,降低开发难度,使各个组件的替换变得更加容易,并且提供更好的桌面环境集成支持。preview 阶段,dde-shell 已经可以满足原计划的部分目标。现 DDE 环境下,dde-shell 已取代 dde-dock 来负责管理整个 dock 区域、 dde-launchpad 提供了对应的 dde-shell 插件用以展示启动器相关的界面、原 dde-session-ui 中的通知中心部分也转到了 dde-shell 中,且转用了新的界面设计。
关于 shell 的服务启动方面,为了方便故障排查,dde-shell 从原本的单进程转为了两个进程(分别提供桌面和任务栏两个部分)。另外,shell项目的任务栏部分在此阶段也配合 dde-application-manager 对应用识别的准确度进行了诸多完善。若仍有发现应用错误识别和错误分组的问题,欢迎及时反馈。
为保障dde-shell在Qt6.8之后的环境可以正常运行(即使是X11环境下),必须给qtwayland打下面的patch:
https://codereview.qt-project.org/c/qt/qtwayland/+/603556
dde-launchpad
dde-launchpad 现仅支持以 dde-shell 插件的形式被最终用户使用。因而,打包 dde-launchpad 现需要先打包 dde-shell,并确保用户最终使用的是 dde-shell。
dde-session
需要注意的是,我们已在 deepin 23 beta3 起放弃了对 deepin-kwin wayland 的支持,DDE 后续所有 wayland 相关的支持均由 treeland 提供。请参见后续的 Treeland 段落。
下面涉及到的组件的版本参照如下。对于位于非 linuxdeepin 组织的软件包,此处一并给出了组织名:
package | version |
---|---|
vioken/waylib | 0.6.10 |
vioken/qwlroots | 0.5.2 |
treeland | 0.5.17 |
ddm | 0.1.9 |
Treeland 环境
Treeland 环境相较于 deepin 23 阶段有了较多的提升,不过由于 Treeland 迭代开发过程中我们对 Qt 以及 wlroots 进行了诸多完善,故 Treeland 对 Qt 以及 wlroots 等组件有较高的版本要求,以及可能需要应用一些额外的 patch。
DDM
尽管 DDM 目前是基本功能可用状态,DDM 目前仍相对而言不够稳定。对于打包移植而言,建议采用其他DM来启动用户级的treeland。
对于其它 DM,只需要打包时安装 usr/share/wayland-sessions/treeland-user.desktop
即可。
Qt 补丁
下述假定您的发行版使用的 Qt 版本为 Qt 6.8.1。
为保障 dde-shell 在 Treeland 上可以正常运行,需要打下面的 patch,否则可能会出现 dde-shell 崩溃的情况。
https://codereview.qt-project.org/c/qt/qtbase/+/607654
如果你在 Treeland 下遇到小 launchpad 无法输入中文的问题,可以打下面的 patch,但是该 patch 目前尚未进行完整测试,可能存在一些问题。
https://codereview.qt-project.org/c/qt/qtbase/+/611940
另外,如果你的发行版所附的 Qt 6.8 版本并未更新至 Qt 6.8.1,则可能需要打两个额外的补丁,可参见 DDE Qt 6.8 适配说明。
获取移植帮助
如果您希望得到移植相关的帮助,请考虑加入我们 DDE 移植小组的在线交流群(下列房间有桥接,任选其一即可),一起展开相关的交流:
- Matrix 群:
#dde-port:deepin.org
- Telegram 群:https://t.me/ddeport
Saturday, November 9, 2024
Friday, November 1, 2024
Friday, October 25, 2024
DDE Qt 6.8 适配说明
Qt 6.8 发布已经有一段时间了,各个发行版尝试移植 DDE 时发现包括 dde-shell 在内的几个组件存在比较明显的问题,DDE 小组进行了相关的紧急修复。由于 DDE 部分项目也在分叉维护的状态,为了方便各位移植人员有效进行移植,故在此罗列相关注意事项。
注:笔者所测试的环境为 Arch Linux,下述为 2024/10/25 testing 仓库状态下的测试结论。若未另行说明,则下述涉及到的项目名称仍然使用了与 DDE 对应项目原始仓库的名称,而非各个发行版下的包名。
[!NOTE] 2024/11/06更新:对于 dde-launchpad、dde-tray-loader、dde-shell 目前均有新的维护分支版本,部分版本中已包含了下述中涉及到的一些 patch 的修复。本博客目前只更新了实机验证可用的新 tag 版本,但你也可以尝试未验证但位于维护分支的新 tag。
分支与 tag 说明
因维护需要,对于部分 DDE 组件(dde-shell、dde-launchpad、dde-tray-loader),我们对 deepin 23 所使用的分支创建了名为 release/beige
的维护分支。也会在维护分支上打对应的维护更新用的 tag。
由于 deepin 现阶段的提测流程需要对提测版本打 tag,故我们对主干(master)分支也会打 tag。为了在不与现行规范冲突的情况下尽可能表示区分,我们使用格式为 x.99.z
的 tag 标记此版本是尚在开发中的版本。开发中的 tag 版本事实上在满足一定条件下也可供外部使用,但我们不保证 x.99.z
中 z 位更新时的兼容性,故仍然建议优先使用 release/beige 上的
tag 版本。
Qt 6 Wayland
由于 dde-shell 的托盘加载部分(dde-tray-loader)使用了 Wayland(即便是 x11 环境也如此)实现应用的嵌入,故对 Qt 6 的 wayland 组件存在依赖。有下述两个 Patch 需要应用到 Qt 6 Wayland 组件之上:
- https://codereview.qt-project.org/c/qt/qtwayland/+/598596
- https://codereview.qt-project.org/c/qt/qtwayland/+/599732
dde-shell
Patch 说明
升级至 Qt 6.8 后,dde-shell 可能存在面板无任何内容的情况,就于此问题,需要应用这个 patch:
https://github.com/linuxdeepin/dde-shell/commit/46871c83cf8ecfcf83bf2fb49e1f09af997eca96
版本建议
- 若目标发行版原本在使用
1.0.0
版本,则建议至少更新到1.0.2
1.0.3
以上版本依赖treeland-protocols
项目,进行打包即可,建议对齐打包后至少更新 dde-shell 至1.0.4
- 由于
treeland-protocols
更新了其 CMake 支持中目标名称的大小写,故你需要打这个小 patch (或者手动进行相应调整): https://github.com/linuxdeepin/dde-shell/commit/b3f342c094354e4ba87ac1da4cf1a380556b2a3b
- 由于
dde-shell
主干分支存在1.99.1
,但包括此版本在内的主干分支已不再在任务栏提供启动器图标,故需要配合启动器主干分支使用(启动器暂无1.99.z
版本)
tl;dr:建议打包 treeland-protocols
后更新至至少 1.0.4
。
treeland-protocols
被 dde-shell 1.0.3
以上版本所依赖。
版本建议
建议打包/更新至 0.4.1
。
dde-tray-loader
Patch 说明
任务栏托盘区域的弹出面板(例如点击时间组件后的面板)早期版本有位置不正确的问题,需要应用这个 patch: https://github.com/linuxdeepin/dde-tray-loader/commit/664b093b6a913764fedbac9110927f26978aa8c9 。最新版本(1.0.5
起)中已经修正相关问题。
版本建议
建议更新至 1.0.5
。
dde-launchpad
Patch 说明
启动器的维护分支版本应该可以在无任何修改的情况下正常工作,尽管启动器小窗口模式的面板位置可能不对,但位置问题暂不计划在维护分支解决。
启动器主干分支不存在上述问题,但主干分支暂无 1.99.z
tag。
版本建议
在之前的移植过程中发现小窗口搜索结果界面可能存在显示错位问题,此问题已在 1.0.6
修复,故建议更新至 1.0.6
。
dde-application-manager
Patch 说明
不需要 patch。
版本建议
一个 deepin 23 的所谓“特性”即,父进程启动的子进程一般会被识别归属为父进程,会导致例如在终端启动 vscode,打开的 vscode 窗口会和终端共用相同图标的问题。此问题已经在最新维护版本得到解决。直接更新dde-shell (>= 1.0.4) dde-application-manager(>=1.2.16)版本即刻解决。
建议更新至 1.2.16
。
Wednesday, August 14, 2024
deepin v23 将于 2024 年 8 月 15 日发布,这里为大家简要描述本次更新中,DDE 所涉及的变更,以及我们的进一步计划。
需注意,本文章是站在 DDE SIG 角度的,倾向于对 DDE 项目整体的技术内容进行描述,面向 DDE 开发者和对 DDE 开发感兴趣的读者,并非面向最终用户的特性概览文章。若您需要大众化的发布概览,请参阅 deepin 公众号、官方网站等提供的介绍文章。另外,如果你对 DDE 的移植感兴趣,请参阅另一篇侧重于移植相关事项的文章。
不同于 beta3 与 RC 所提供的发布说明,此次将整体介绍 DDE v23 相对 v20 的变化内容。
变化较大的默认组件
dde-dock
→ dde-shell
虽然观感上对用户的差异是任务栏整体的变化,但 dde-shell
项目所要承载的责任要远超于 dde-dock
。dde-shell
旨在提供一个桌面环境级的外壳程序,使编写 DDE 桌面组件变得更轻松。例如它提供了允许你指定组件的层级关系、确定放置的屏幕位置等功能,并确保相应功能在 x11 与 Wayland 环境的表象均一致。这将使得桌面组件不必针对应用编写重复的代码来实现与桌面环境强相关的功能,并使得后续 x11 向 Wayland 切换变得更方便。当前,dde-shell
面向用户呈现的唯一主要组件即任务栏,而预计在后续,OSD、通知中心、剪切板等组件也都会逐渐进行迁移,由 dde-shell
统一管理。
另外,dde-shell
整体也从传统的 QtWidgets 项目变成了 QML 项目,这使得 GPU 加速可以被有效的利用,使得相应的界面交互、动效等更加流畅。关于“任务栏”这个 dde-shell
组件,也存在了较大变化。为了避免插件崩溃时连带整个任务栏组件一起崩溃的问题发生,任务栏区域采用了内嵌 Wayland 合成器的解决方案实现了相关逻辑。
dde-launcher
→ dde-launchpad
dde-launchpad
事实上是第一个试水 QML 的 DDE 桌面组件,由于 dde-launcher
存在大量的内部 model 状态维护不正确的问题以及界面问题,dde-launchpad
则对其进行了整体重构并将整个界面改用 QML 技术进行构建。如 dde-shell
一节中所述,这将使得整体的流畅度得以提升。
此外,由于 DDE 计划对应用程序进行相关的权限管控,dde-launchpad
也将应用程序列表的获取和管理从原本的 GIO 切换到了新的 dde-application-manager
。
dde-application-manager
dde-application-manager
是一个后台服务,为需要获取应用列表以及启动应用程序的组件(文管、启动器、任务栏等)提供与管理相关数据,为启动的应用与组件设置恰当的 cgroup、环境变量等信息。尽管当下而言 dde-application-manager
并无特殊之处,但其为后续实现应用程序权限管控的计划提供了空间。
技术预览组件
我们在 v23 的开发过程中引入了技术预览组件的概念,而原本位于技术预览组件的两个主要项目(启动器与 shell)均已离开了技术预览阶段,现以正式版的形式面向社区发布。而目前仍然位于技术预览阶段的项目即 TreeLand 与 deepin-im 了。
为了使得 v23 顺利发布、尽早发布,我们在 RC 阶段即将精力完全投入在了现有组件的缺陷修复上,TreeLand 与 deepin-im 项目均暂无显著成果可供分享,后续我们会在恰当的时候为大家详细介绍这两个项目。
后续计划
如之前计划所安排,dde-shell 现已走出技术预览并承载了任务栏的显示职责。dde-shell 的初衷之一是使桌面环境更加模块化,在后续,会有更多桌面组件成为 dde-shell 的一部分。我们也欢迎社区开发者开始尝试使用 dde-shell 编写一些自己觉得有趣的东西,并与我们讨论对 shell 相关设计与接口的体验,一同完善 dde-shell。如果你对这相关的话题感兴趣,欢迎加入 DDE SIG 的 Matrix 群聊 (#dde:matrix.org
) 之中来。
接下来,wayland 会话支持也会变成主要目标,treeland 将会逐步继续完善,并在恰当的时机提供给大家。
此外,为了方便非 deepin 发行版的用户和开发者使用 DDE,我们也仍然和上次一样提供了一篇移植注意事项博客。笔者也是 DDE 移植 SIG 的成员,对应的文章现已发布到 DDE 移植小组。如果您感兴趣,可在此阅读。如果你本身在参与 DDE 的移植工作,那么也欢迎你加入 DDE 移植小组(#dde-port:deepin.org
或 https://t.me/ddeport
)。
最后,感谢你读到这里。如有任何问题,欢迎在我们的开发者群(#deepin-community:deepin.org
)进行讨论。
Wednesday, May 15, 2024
deepin v23 RC 将于 2024 年 5 月 15 日发布,这里为大家简要描述本次更新中,DDE 所涉及的变更,以及我们的进一步计划。
需注意,本文章倾向于对 DDE 项目整体的技术内容进行描述,面向 DDE 开发者和对 DDE 开发感兴趣的读者,并非面向最终用户的特性概览文章。另外,如果你对 DDE 的移植感兴趣,请参阅另一篇侧重于移植相关事项的文章。
变化较大的默认组件
相比 deepin v23 beta3 而言,在于 deepin v23 RC 发布的 DDE 中,有一个项目得到了较大规模的重构,并随 RC 默认提供给各位用户。即:
- dde-shell
dde-shell 旨在提供一个桌面环境级的外壳程序,使编写 DDE 桌面组件变得更轻松。这个项目在 beta3 阶段为技术预览状态,而现阶段,dde-shell 则走出了技术预览,并取代了原本的 dde-dock 项目来展示任务栏组件。
此外,需要注意的是,dde-launchpad 项目也转而默认提供 dde-shell 插件的形式来提供启动器组件。
技术预览组件
非技术用户请慎重启用技术预览功能
deepin v23 beta2 时,我们提供了一个需要用户手动安装的 dcc-insider-plugin 插件,称为技术预览插件。这个组件旨在帮助用户方便的测试 deepin 未来版本中计划提供但仍不稳定的系统组件。需要注意的是,为了加快版本迭代速度,使 v23 首个稳定版可以更快面向用户发布,故这个组件在 RC 阶段并未进行过较多测试,因而可能不会按预期行为工作,故我们目前不建议您使用此插件。
- treeland / ddm
- deepin-im
treeland 与 deepin-im 这两个组件在 beta3 到 RC 的阶段中并无太大显著变化。其中,treeland 项目原本提供了合成器与 DM 两个功能,而现在,treeland 与 DM 也进行了拆分,后者被拆分到了 ddm 仓库之中。
后续计划
如之前计划所安排,dde-shell 现已走出技术预览,但 dde-shell 仍有很多需要进一步完善的地方。一些用户会注意到 dde-shell 版的任务栏缺失了一些原本 dde-dock 项目所提供的功能,此类特性会后续逐步补充上来。另外 dde-shell 也会继续向原本的目标迈进,我们会进一步将其他桌面组件转换为 dde-shell 插件的形式进行维护。使得桌面环境模块化之余,也为 wayland 支持作出更好的准备。
另外,由于 dde-shell 的初衷之一是使桌面环境更加模块化,我们也欢迎社区开发者开始尝试使用 dde-shell 编写一些自己觉得有趣的东西,并与我们讨论对 shell 相关设计与接口的体验,一同完善 dde-shell。如果你对这相关的话题感兴趣,欢迎加入 DDE SIG 的 Matrix 群聊 (#dde:matrix.org
) 之中来。
接下来,wayland 会话支持也会变成主要目标(尽管 v23 首个正式版仍然可能不会提供 wayland 会话支持),treeland 与 ddm 将会逐步继续完善,并在恰当的时机提供给大家。
此外,由于 DDE 在 beta3 与 RC 的变化仍然较大,我们也仍然和上次一样提供了一篇移植注意事项博客。笔者也是 DDE 移植 SIG 的成员,对应的文章现已发布到 DDE 移植小组。如果您感兴趣,可在此阅读。如果你本身在参与 DDE 的移植工作,那么也欢迎你加入 DDE 移植小组(#dde-port:deepin.org
或 https://t.me/ddeport
)。
最后,感谢你读到这里。如有任何问题,欢迎在我们的开发者群(#deepin-community:deepin.org
)进行讨论。