目录

deepin-cardsdock — 卡片式 Dock(dde-shell 插件,Deepin 25 适配)

基于 deepin_ui_html 设计稿(Next-Deepin-Dock 风格)复刻的 Deepin 桌面卡片 Dock。 去掉了演示用的标签/Tab 卡片切换,全部改为真实使用场景的事件驱动触发。 应用坞复用系统 Dock,本插件专注「系统剪贴板」与「文件中转站」两张事件卡片 + 系统状态/日历卡片。

卡片与真实触发

卡片 触发方式
系统剪贴板 复制文本自动弹出(事件+轮询双通道),点击条目复制回剪贴板
文件中转站 拖拽文件到屏幕底部区域自动入站并弹出,可还原/删除
系统状态 托盘图标点击 + 插拔电源自动弹出(UPower/NetworkManager/pactl 真实数据)
日历 点击宿主条时钟,真实月历

宿主条(底部中央浮条):📋 剪贴板 / 📦 中转站 / 托盘(WiFi·音量·电池·电源)/ 时钟 / 回收站 / 主题切换。应用坞复用系统 Dock,不重复实现应用图标区。

工程结构(Deepin 25 重构后)

xmake.lua                  xmake 构建(Qt6 + dde-shell 2.x,兼容 xmake 2.8/3.x)
src/                       C++ 后端(DPanel 插件)
  cardspanel.h/.cpp        DPanel 子类 + D_APPLET_CLASS 工厂注册
  appmodel.h/.cpp          .desktop 扫描与启动
  clipboardmodel.h/.cpp    剪贴板历史(dataChanged 事件 + 1s 轮询双通道)
  filetransfer.h/.cpp      文件中转站(拖拽入站)
  systemstatus.h/.cpp      UPower 电池 / NetworkManager WiFi / pactl 音量 / 电源动作
  monitor.h/.cpp           /proc CPU/内存监控
  windowwatcher.h/.cpp     KWin D-Bus 窗口跟踪
package/                   QML 插件包(metadata.json + main.qml + 卡片 + 组件 + 主题)
  Theme.qml                gen_tokens.lua 从 docs/design/DESIGN.md 生成(深/浅双主题)
  DockBar.qml              底部宿主条
  cards/                   剪贴板 / 中转站 / 状态 / 日历
  components/              GlassPanel / IconImage / TrayGlyph / TrayText / TrayBattery
  icons/                   sync_icons.lua 同步的 deepin 图标
tools/                     Lua 工具脚本(替代 Python)
  gen_tokens.lua           设计令牌 → Theme.qml
  sync_icons.lua           图标同步(源: docs/design/assets/icons)
  pack_deb.lua             .deb 打包
  run_tests.lua            工程自检
  install.sh               真机一键构建+安装(自动探测插件目录 / 只读 /usr 降级用户级)
  install-toolchain.sh     一键安装工具链
docs/
  design/                  设计稿归档(index.html / DESIGN.md / 素材图 / 图标源)
  DEPLOY-DEEPIN25.md       Deepin 25 真机部署手册

Deepin 25 真机验证(2026-08-15 实测)

  1. 环境: Deepin 25 桌面版(6.6.143-hwe)+ dde-shell 2.0.52 + xmake 2.8.7 + Qt 6.8 + VirtualBox(NAT + SSH 端口转发)
  2. 构建/安装/加载全部通过,Dock 窗口真实显示,QML 零错误
  3. 已修复的真机专属问题:
    • /usr 只读 → 用户级安装(~/.local/lib/dde-shell/plugins + ~/.local/share/dde-shell/
    • X11 软件渲染半透明黑块 → GlassPanel solidFill 实色降级 + 关阴影
    • dxcb 平台进程收不到 X11 selection 事件 → 剪贴板轮询双通道
    • dde-shell 2.x 子目录不可见 pragma Singleton → cards/components 显式 import ".."
    • 宿主条与系统 Dock 重叠 → 收缩为中央浮条

详见 docs/DEPLOY-DEEPIN25.md(部署步骤)与 tools/install.sh

快速开始

bash tools/install-toolchain.sh                 # 装工具链(真机)
xmake f -p linux && xmake                        # 构建
bash tools/install.sh                            # 安装(自动适配只读 /usr)
DDE_SHELL_PLUGIN_PATH=$HOME/.local/lib/dde-shell/plugins dde-shell -p org.deepin.ds.cardsdock

开发机(Windows): xmake lua tools/run_tests.lua 自检;Lua 工具链全部跨平台可跑。

License

代码 MIT;图标来自 deepin-icon-theme(GPL-3.0,源在 docs/design/assets)。

关于

卡片式 Dock(dde-shell Panel 插件):复刻 deepin_ui_html 设计稿,xmake 构建 + Lua 工具链,真实事件驱动卡片

1.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号