[AI Development Lab] 【deepin插件开发活动】专注助手 Focus Assistan
Tofloor
poster avatar
碎碎念
deepin
Ecological co-builder
2026-09-08 15:54
Author

🌱 专注助手 Focus Assistant — 把专注,种成一朵花

项目简介:

对应注意力分散产出的一款提升注意力的辅助软件;

住在你桌面角落、随你的专注而成长的陪伴式番茄钟小助手「露」,
专为 Deepin / UOS v25 桌面设计。
基于 C++ / Qt6 / DTK6 原生开发,纯矢量自绘无外部素材。

开发方向:DTK 原生应用(dtk-development)


📦 源码仓库

GitHub 仓库:Whisper-v/focus-assistant


✨ 功能特性

特性 说明
🍅番茄钟 专注时长可配,开始/暂停/继续/放弃状态机
🌿养成驱动专注 累计专注驱动「露」成长:种子 → 幼苗 → 含苞 → 盛放,进度实时可见
😊情绪动画 呼吸、眨眼、认真脸+汗滴、困倦打盹 zZz、完成专注撒花庆祝、成长演出
🌻自选皮肤 经典粉花「露」/ 阳光向日葵(PvZ 风格双层花瓣+招牌表情),右键/托盘/设置即点即换并记忆
🌙护眼联动 专注自动开启 DDE 色温护眼、结束自动还原;默认关闭,退出/异常崩溃均自动清理,绝不残留系统状态
📌桌面常驻 勾选后窗口置顶常驻桌面,按「显示桌面」也不会被隐藏(托盘一键开关)
🔍可大可小 无边框自由缩放(任意边缘/四角拖拽+光标提示),露等比缩放不拉伸变形,尺寸自动记忆
🕊️极简模式 只剩露花朵+专注进度环、白色面板全透明,像悬浮在桌面上;首页右上角一键开关,状态记忆
📊成长记录 今日/累计专注、完成次数、成长阶段、最近 7 天柱状图
🖱️低打扰交互 按住露拖动窗口、双击露开始/暂停、关闭收进系统托盘继续守护
🔒本地优先 全部数据保存在 ~/.config/focus-assistant/,无任何联网与隐私收集

🚀 安装方式

方式一:dpkg安装

sudo apt install ./focus-assistant-1.0.0-amd64.deb

卸载

sudo apt remove focus-assistant

方式二:源码构建

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

ninja -C build

sudo** ninja -C build install **# 卸载: sudo ninja -C build uninstall

启动器搜索 专注助手 / Focus Assistant 即可运行。


🖼️ 效果截图

image.png

image.png
image.png
image.png
03-break-sleep.png

17-classic-bloom.png

🧩 项目结构

plaintext

1focus-assistant/

2├── src/

3│ ├── main.cpp 入口:DApplication、单实例组装

4│ ├── focusmanager.* 专注状态机:Idle/Focus/Pause/Break、成长与统计持久化

5│ ├── petwidget.* 露:纯 QPainter 矢量绘制+呼吸/眨眼/庆祝粒子动画

6│ ├── mainwindow.* 无边框半透明主窗、托盘、极简开关、设置对话框

7│ ├── statsdialog.* 成长记录:汇总指标+最近 7 天柱状图

8│ └── systemlinker.* 系统联动:护眼色温开关/还原+崩溃残留清理

9├── resources/ SVG 应用图标(托盘/窗口/启动器三处复用)

10├── data/ .desktop 启动器入口

11├── docs/screenshots/ 演示截图

12├── docs/ 开发过程说明、演示视频脚本

13├── CMakeLists.txt DTK6 标准工程(install/uninstall/CPack 一体化)

14└── README.md 完整项目文档

15


🏗️ 技术架构

技术 用途
C++17 / Qt6 / DTK6 原生桌面应用(Dtk::Widget 控件体系)
CMake + Ninja + CPack 工程构建、安装/卸载、.deb 打包
QPainter 矢量自绘 「露」的花盆/茎叶/花盘/表情与全部动画,DPR 自适应、无外部素材
FocusManager 状态机 专注/暂停/休息/放弃流转、跨天统计、成长进阶
QSettings 本地配置与成长数据持久化(~/.config/focus-assistant/)
D-Bus org.deepin.dde.Display1.SetColorTemperature 护眼联动、freedesktop 桌面通知
QSystemTrayIcon 托盘常驻:隐藏/显示、开始/暂停、成长记录、换肤、退出
窗口体系 无边框半透明圆角卡片、按住拖动/双击快捷操作、边缘缩放、桌面常驻(override-redirect)、极简透明

架构模式:关注点分层

  • 数据/逻辑层(Model):focusmanager.* — 状态机、成长阶段、统计持久化
  • 表现层(View):petwidget.* + statsdialog.* — 纯矢量自绘与统计图表
  • 协调层(Controller):mainwindow.* + systemlinker.* — 窗口/托盘/设置与系统联动

💬 开发过程说明(基于 deepin Skills)

本作品通过 UOS AI(小U同学) 辅助开发,核心使用了以下 deepin Skills:

  1. dtk-development — DTK6 工程模板、无边框半透明窗口规范、D-Bus 调用、DConfig 权限边界等关键依据

开发历程:

  1. 需求分析:与 AI 讨论「陪伴式番茄钟」概念——专注 → 成长 → 情绪反馈 → 健康提醒
  2. 架构设计:AI 建议状态机模型(Idle/Focus/Pause/Break),分离逻辑层与表现层,宠物用 QPainter 纯矢量自绘
  3. 核心开发:AI 编写专注状态机、成长统计、纯 QPainter 宠物绘制(呼吸/眨眼/粒子动画)、无边框窗口与托盘
  4. 系统联动:依据 Skill 文档实现护眼色温联动(只读属性不可 setProperty,须调用 SetColorTemperature;退出/崩溃自动还原)
  5. 问题修复:AI 协助修复护眼色温残留、误写只读属性、成长阶段不同步、统计界面乱码等 bug
  6. 迭代优化:多皮肤、桌面常驻、自由缩放、极简模式、统计卡片布局重构

AI 对话记录截图:

image.png
image.png
image.png


📋 更新日志

  • 🌱 v1.0 番茄钟状态机+养成成长+本地统计+托盘常驻
  • 🛡️ v1.0.1 修复:护眼联动可靠性
  • 🌻 v1.1 新增:自选皮肤(经典粉花/阳光向日葵)+修复成长可视化不同步
  • 📌 v1.2 新增:桌面常驻功能
  • 🔍 v1.3 优化:设置/统计弹窗屏幕居中防遮挡、主窗口紧凑化
  • 🖱️ v1.4 新增:无边框自由缩放+尺寸记忆
  • 🕊️ v1.5 新增:极简模式(纯露+进度环透明悬浮、首页一键开关)
  • 🐛 v1.6 修复:统计界面乱码(摘要卡片整体入布局,数值与标题成对显示)

🔗 相关链接

Reply Favorite View the author
All Replies
avatar
CTZ老斑鸠
deepin
2026-09-08 15:55
#1

Forest统信版tail

Reply View the author
avatar
鲜衣怒马
deepin
2026-09-08 16:08
#2

我也送你一朵花🌸

Reply View the author
avatar
骑🐖追帅哥bot
Moderator
2026-09-08 16:13
#3

企业微信截图_20260812164807.png

Reply View the author