一个嵌入 deepin v25 Dock 的番茄钟 / 专注计时 Applet。 纯 QML、零原生编译依赖,轻量常驻,帮你在一呼一吸间进入深度工作状态。
git clone https://atomgit.com/feidaojun/ds-focusflow.git
mm:ss
25min
45min
5min
# 1. 安装依赖(deepin v25) sudo apt update sudo apt install -y libdde-shell-dev cmake qt6-base-dev # 2. 构建 cd ds-focusflow cmake -B build -DCMAKE_INSTALL_PREFIX=/usr cmake --build build -j$(nproc) # 3. 安装 sudo cmake --install build # 4. 重启 dde-shell systemctl --user restart dde-shell@DDE
安装后插件会被 DPluginLoader 扫描到,并作为 org.deepin.ds.dock 的子项出现在 Dock 上。
DPluginLoader
org.deepin.ds.dock
本项目基于 AtomGit linuxdeepin/deepin-skills 仓库的 dde-shell-development Skill 完成。
linuxdeepin/deepin-skills
AI 编程工具(WorkBuddy)加载该 Skill 后,按以下路径辅助开发:
ds_install_package
AppletItem
PanelPopup
Plugin.Id
Parent
CMakeLists.txt
AI 编程工具中调用 deepin Skills 的对话记录截图:
详细模块对照与代码落点见仓库 DEV.md。
DEV.md
这几处官方文档没有明说,是deepin v25 / dde-shell 2.0.52实测出来的,供后来者参考:
.so
DApplet
visible
shouldVisible: Applet.visible
undefined
DockPartAppletModel
shouldVisible
true
DockPanel::ReloadPlugins()
// TODO
dde-shell
package/
build/
D.Palette
normal { common: ... }
SystemPalette
QtQuick.LocalStorage
Qt.labs.settings
排查工具一并开源在仓库里:tools/diagnose.sh(一键取证:产物完整性、致命写法、进程时间戳、journal 线索)。
tools/diagnose.sh
GPL-3.0-or-later
专注当下,效率自然来。
不是吧,大家都这么强么
Featured Collection
Popular Ranking
Popular Events
【deepin插件开发活动】专注一刻 FocusFlow — Dock 番茄钟插件
源码仓库
git clone https://atomgit.com/feidaojun/ds-focusflow.git功能介绍
mm:ss常驻 Dock,一眼掌握剩余专注时间。25min/ 深度45min/ 小憩5min,一键切换。安装方式
安装后插件会被
DPluginLoader扫描到,并作为org.deepin.ds.dock的子项出现在 Dock 上。使用说明
效果截图
开发过程说明
本项目基于 AtomGit
linuxdeepin/deepin-skills仓库的 dde-shell-development Skill 完成。AI 编程工具(WorkBuddy)加载该 Skill 后,按以下路径辅助开发:
org.deepin.ds.dock父插件与安装路径。ds_install_package用法和测试命令。AppletItem作根、PanelPopup作弹窗。Plugin.Id/Parent一致、弹窗不滥用排除区。CMakeLists.txt模板生成实际文件。AI 编程工具中调用 deepin Skills 的对话记录截图:
详细模块对照与代码落点见仓库
DEV.md。实践踩坑与解法
这几处官方文档没有明说,是deepin v25 / dde-shell 2.0.52实测出来的,供后来者参考:
.so,落到基类DApplet,没有visible属性;shouldVisible: Applet.visible得到undefined当作 false,被DockPartAppletModel过滤shouldVisible直接给true(模型规则是「未定义或 true 即显示」)DockPanel::ReloadPlugins()在当前版本是空实现(源码里只有// TODO)dde-shell,不要依赖平滑重载ds_install_package在 cmake 配置阶段就复制package/,沿用旧build/目录会重装旧版本D.Palette后图标消失normal { common: ... })来自上游 master,本机 dtkdeclarative 只支持扁平写法;纯 QML Applet 上也无成功先例SystemPalette,零 DTK 依赖地跟随深浅色主题QtQuick.LocalStorage/Qt.labs.settings,dde-shell 插件层也无存储 API排查工具一并开源在仓库里:
tools/diagnose.sh(一键取证:产物完整性、致命写法、进程时间戳、journal 线索)。开源协议
GPL-3.0-or-later
专注当下,效率自然来。