没事儿瞎转悠
deepin
2026-09-09 00:15 给小U安装了deepin开发的skills。
主要增加了倒计时功能



功能
- 字体颜色随任务栏主题自动适配(浅色/深色任务栏均可读),随任务栏高度自动切换行数:
- 2 行模式(小/中高度):
时间+节气/日期+星期 - 3 行模式(高度足够):
时间/节气+星期/日期
- 2 行模式(小/中高度):
- 节气显示:内置标准天文公式计算(1900–2100 有效)
- 字号自适应:随任务栏厚度按 sqrt 曲线缩放,也可固定字号
- 点击打开日历:默认
deepin-calendar://,由系统默认机制选择版本(系统版/玲珑版) - 右键菜单(三部分:格式设置 / 显示设置 / 倒计时):
① 格式设置:时间制式(24/12 小时制)/ 日期格式(4 种)/ 星期显示(星期|周);
② 显示设置:显示秒 / 显示节气 / 显示星期 / 位置固定于小U左侧;
③ 倒计时:倒计时(9 档预设+自定义)+ 停止倒计时(仅运行时可用) - 日期格式可选:
yyyy年mm月dd日(2026年9月8日,中文按惯例不补零)/
yyyy-mm-dd(2026-09-08)/yyyy/mm/dd(2026/09/08)/
mm月dd日(9月8日)——所选格式在 2 行与 3 行模式下显示一致,
不随任务栏高度切换而变化,重启/注销后保留 - 倒计时(时间闪烁+悬停气泡):右键菜单"倒计时"预设 9 档时长(3/5/8=咖啡时间…/60)
或自定义 1~999 分钟;倒计时运行时时间明暗闪烁(500ms 交替);悬停时弹出独立
ToolTip 气泡(无边框/不抢焦点/置顶,宽度随内容自适应,三行:⏳倒计时 / 剩余大字 /
共时长,**浅色主题=亮底深字 / 深色主题=暗底白字**自动适配),定位插件正上方(上方
放不下则下方弹出),**与屏幕边缘保持 8px 边距**;左键始终打开日历(不冲突);结束播放
**通知音效**message.wav(deepin 主题,wav 兼容 QSoundEffect)+ 原生对话框;
会话内状态(重启即停),插件隐藏时仍后台准确推进、准点提醒
半透明详情条**("倒计时 · 剩余 4:32 / 共 5:00");运行中左键点击即停止;结束时播放
系统提示音 + 原生对话框"时间到!"。会话内状态(重启任务栏即停),不持久化;
插件隐藏时倒计时仍后台准确推进、准点提醒 - 零依赖:无需守护进程 / HTTP 服务 / sudo
Reply Like 0 View the author


中文 


Deepin 25 任务栏日期时间插件,零守护进程依赖、开箱即用。
功能
时间+节气/日期+星期时间/节气+星期/日期deepin-calendar://,由系统默认机制选择版本(系统版/玲珑版)星期样式(星期 | 周) / 位置固定于小U左侧 六个设置项,
切换即时生效并自动持久化
yyyy年mm月dd日(2026年9月8日,中文按惯例不补零)/yyyy-mm-dd(2026-09-08)/yyyy/mm/dd(2026/09/08)/mm月dd日(9月8日)——所选格式在 2 行与 3 行模式下显示一致,不随任务栏高度切换而变化,重启/注销后保留
环境要求
dde-calendar(点击打开日历用,系统版或玲珑版任一即可)目录结构(项目源码)
~/.local/share/dde-shell/org.deepin.ds.dock.datetime/datetime.qml~/.local/share/dde-shell/org.deepin.ds.dock.datetime/config-writer.py~/.local/share/dde-shell/org.deepin.ds.dock.datetime/config-loader.js~/.local/share/dde-shell/org.deepin.ds.dock.datetime/datetime-config.js~/.local/share/dde-shell/org.deepin.ds.dock.datetime/translations/*.qm~/.local/share/dde-shell/org.deepin.ds.dock.datetime/.config-writer.lock~/.local/share/dde-shell/org.deepin.ds.dock.aibar/(可选)~/.local/share/applications/datetime-plugin-handler.desktopdatetime-plugin://URL scheme → 指向 config-writer.py配置说明
配置文件:
~/.local/share/dde-shell/org.deepin.ds.dock.datetime/datetime-config.js(JS 格式,内容兼容 JSON)datetimeVisiblecalendarCmdclockFontSize0=随任务栏厚度自动showSeconds/showTerm/showWeekdaydateFormatyyyy年mm月dd日(显示如 2026年9月8日,中文写法不补零)/yyyy-mm-dd(2026-09-08,补零)/yyyy/mm/dd(2026/09/08)/mm月dd日(9月8日)。2 行与 3 行模式共用同一格式化,格式不随任务栏高度变化weekdayStyle星期(星期四)或周(周四)aibarTo27卸载方法
方式一:使用小U同学卸载
在 UOS AI(小U同学) 对话中直接说:
小U同学会自动执行下方"完全清理"命令并重启任务栏。
方式二:手动卸载
完全清理命令(一条命令)
调试方法
手动调试
使用小U同学调试
在 UOS AI(小U同学) 对话中直接描述问题,例如:
常见问题(FAQ)
sudo apt install dde-calendar;确认 handler:xdg-mime query default x-scheme-handler/deepin-calendar应返回dde-calendar.desktopdatetime-plugin-handler.desktop存在;手动触发xdg-open "datetime-plugin://set?showSeconds=0"验证chmod -R a+rwX ~/.local/share/dde-shell/org.deepin.ds.dock.datetime或重跑 install.sh);② v0.9.7 起 helper 自带"水位污染容错 + 配置损坏自愈",确认版本 ≥ v0.9.7 后重试//注释);dateFormat只接受四种文案值grep dockOrder ~/.local/share/dde-shell/org.deepin.ds.dock.aibar/main.qml是否为 27translations/目录与 qm 文件已部署(安装脚本自动处理)killall dde-shell重启;仍异常则执行"完全清理"后重装变更记录
Qt token(
yyyy年M月d日),与菜单文案不一致、手改配置无效、且依赖无法真机验证的Qt 格式串语法,予以弃用。重构为:
dateFormat存用户可见文案(与菜单选项逐字一致),显示由插件自实现格式化(中文写法不补零、数字写法补零,行为确定)。
同时修复三处会导致"切换不持久/被重置"的缺陷:① 时间戳去重水位
.config-writer.lock.ts若被写入超前时钟值(他环境遗留),后续所有保存都被误判 stale 丢弃 → 现加入
"水位超前 >60s 视为污染并重置"容错;② helper 遇配置文件缺失/损坏直接拒绝写回 →
现回退默认配置自愈写回;③ 插件实例因任务栏高度变化重建后,配置依赖 30s 周期重载才
恢复、期间闪默认值 → 新增
Component.onCompleted立即加载配置。旧版 Qt token 配置(v0.9.6 写入的)由 loader/helper 自动迁移为文案,无需手改。
菜单打开时按配置强制对齐勾选态(防原生菜单勾选残留);安装后插件目录保持 GUI 可写
(root 部署场景辅助以 chmod 777 目录 / 666 配置,helper 亦做尽力自修复权限)。
yyyy年mm月dd日/yyyy-mm-dd/yyyy/mm/dd/mm月dd日,星期可选星期(星期四)/周(周四);切换即选即改并持久化。⚠ 该版本日期格式采用 Qt token 存储,存在配置值与菜单不一致、持久化水位易被污染等缺陷,已被 v0.9.7 重构替代。
palette.windowText在 dockAppletItem 环境不随 Deepin/DTK 主题变化(恒为黑)。改为官方机制:
D.Palettenormal/normalDark两态(浅色主题黑字、深色主题白字,与系统 DockPalette.iconTextPalette同款色值)+D.ColorSelector按主题自动解析,主题切换即时生效。#000000改为palette.windowText(初版尝试,实际不随 dock 主题变化,见 v0.9.5 改用 DTK 调色板);② 修正文档/注释中配置文件名误写为
datetime-config.json的 7 处(实际为datetime-config.js;手动安装段补拷缺失的
config-loader.js,配置模板拷贝改为幂等不覆盖用户配置);③ 手动安装段 handler 的 Desktop Entry
Exec改为无引号 heredoc + 展开后的绝对路径(Desktop Entry 规范不做
$HOME等 shell 变量展开)。本地文件,导致原 JSON 配置加载始终失败);配置改为 JS 格式 + 独立
config-loader.js(Qt.include 只能在 JS 文件内调用),实现真正的配置热重载与持久化;helper 写配置改为原子写(临时文件 + rename,防损坏);install.sh 旧 JSON 迁移
逻辑改为迁移优先(修复原模板先复制导致迁移永不触发的顺序 Bug);
并发竞态加固:QML 切换后 3 秒内跳过配置重载(防回跳)、请求带时间戳由 helper
去重(防 xdg-open 异步乱序)、aibar 文件操作先于配置写(保持一致性);
修复过期请求整体丢弃的副作用:stale 请求仅跳过配置写,aibar 幂等操作照常执行
(防止乱序时用户的小U位置设置丢失);
节气切换升级为精确到时刻(原按节气日 12:00 判断,偏差可达 ±11 小时;
现二分直接求节气时刻,切换分秒不差);二分法缓存端点差避免重复计算;
替代原世纪常数近似公式,消除"个别年份节气差 1 天"问题(2000-2100 全精确,
时刻误差 2~7 分钟);加入年缓存(跨年才重算,每秒刷新零计算开销);
修复 MouseArea 信号参数弃用警告。
右键菜单的
aibarTo27配置,关闭状态下跳过创建并移除残留覆盖);不完整时清理后整体重建,避免
FileExistsError崩溃与缺文件;cp报错导致安装中断(加保护);右键菜单配置持久化;小U 位置固定(延迟生效);翻译警告消除;并发锁 + 防抖。
许可证
本项目基于 GPL-3.0-or-later 许可协议发布(见
datetime.qml头部 SPDX 声明)。datetime-plugin-v0.9.7.zip