dsh-done-alert:Windows 任务栏完成提醒与提示音

前言

在 DSH 里跑长任务时,浏览器标签页未必一直在前台;会话从 running 变为 idle 后,若只靠侧边栏绿点,很容易漏看。社区里已有基于 UIA 在任务栏 DSH 图标上叠角标的方案(如 dsh-badge-notify),但缺少声音、角标配色也与侧边栏语义不完全一致。下面介绍 dsh-done-alert:在 Windows 桌面上本地完成「提示音 + 任务栏角标」,不联网,语义与 DSH 侧边栏小圆点对齐。

这是什么

dsh-done-alert 是 DeepSeek Harness 的桌面侧插件,维护者为 P1gG0dG0d,仓库 P1gG0dG0d/dsh-done-alert。它在 dthcle/dsh-badge-notify(MIT)基础上二次开发:保留任务栏徽标与未读计数逻辑,增加微信式提示音,并把角标/提示点配色改成与 DSH 侧边栏一致的绿/橙语义。当前 package 版本为 1.2.1,仅支持 Windows(os: win32)。

核心功能

两个能力均在 Windows 桌面本地完成,不依赖浏览器标签页是否打开。

提示音

宿主半端经 Media.SoundPlayer 播放 WAV,标签页未开也会响。

  1. 任意会话一轮跑完(running → idle)时播放 done.wav(微信式「叮咚」)。
  2. 出现提问待回答或权限申请待批准时播放更亮的 attention.wav。
  3. 同类提示音有最小间隔(默认 sound.minGapMs: 1500),避免连续完成时连响。

任务栏角标

在任务栏 DSH 图标上叠画鼠标穿透浮层:

  • 带数字的圆角小方块(图标右上角):表示未读的已完成会话数。「未读」与侧边栏绿点同义——跑完时你正在看该会话则不计数;打开会话即已读、计数减掉。可通过 badge.unreadOnly: false 改为统计全部完成。
  • 颜色:绿 #22c55e 表示有未读完成;橙 #f59e0b 表示有提问/权限待处理。两者同时存在时默认优先橙色(badge.colorByAttention,默认开)。
  • 左边缘提示点(可选):橙点=提问,黄点=权限申请(dots.group: "kind" 时每类一个)。

v1.1.0 起支持 badge.unreadTtlMs(默认 24 小时)对仍未读的完成自动过期,避免隐藏会话把角标卡死;并提供 /chime 试听与 logs/chime.log 播放错误记录。v1.2.0 将 UIA 调用移入独立 MTA 探针线程,避免任务栏 provider 阻塞拖死整个浮层。

安装与启用

在插件源码所在目录的绝对路径下,用 desktop profile 安装(命令来自官方 README,勿自行拼接 GitHub 短名):

dsh plugin --profile desktop add <本目录的绝对路径>

装完一般无需重启 DSH:宿主半端会把浮层载荷部署到 %LOCALAPPDATA%\DshDoneAlert\ 并拉起,数秒内任务栏 DSH 图标上可见徽标;首个相关事件触发提示音。设置 → 插件 → 完成提醒 中可查看状态、启停与清零。

配置

编辑 %LOCALAPPDATA%\DshDoneAlert\config.json,改完约 2 秒自动生效。常用键如下:

键 默认 说明
sound.enabled true 提示音总开关
sound.onCompletion true 完成时 done.wav
sound.onAttention true 提问/权限时 attention.wav
sound.minGapMs 1500 同类提示音最小间隔
badge.colorByAttention true 有待处理时角标变橙
badge.bgGreen / badge.bgOrange #22c55e / #f59e0b 角标绿/橙
badge.unreadOnly true 只统计未读完成
badge.unreadTtlMs (v1.1.0,默认 24h) 未读完成 TTL,0 为永不过期
dots.question / dots.approval #f59e0b / #eab308 提示点颜色
uia.stuckMs 20000 UIA 探针无进展判定卡死
uia.maxStuck 3 同时弃置卡死探针上限

锚点、尺寸等其余键与上游 dsh-badge-notify 相同,见其 README。

调参与管理

数据目录为 %LOCALAPPDATA%\DshDoneAlert\:

  • 预览角标位置:写入 preview.json,例如 {"enabled": true, "count": 8, "dots": ["question", "approval"]} 固定画面调位置。
  • Loopback API(仅本机 POST):/api/dsh-done-alert/status|start|stop|clear|read;v1.1.0 另有 /chime 试听。

与其他插件的兼容

dsh-study-ask(学习提问):提问标签用 studyAsk 保留标签挂在右侧栏,行在左侧列表被隐藏,无法靠「打开左侧会话」标记已读。v1.1.0 起,提问标签页开着时(retainedBy.studyAsk > 0)视为正在看,完成不计数不响铃;关标签后照常提醒,再打开对应提问标签即已读并清计数。

适用场景与注意

适合在 Windows 上长时间挂 DSH、希望任务结束或待审批时有声音且任务栏一眼可见的开发者。插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT LICENSE。非 Windows 平台不在支持范围内。

DSH 生态强调「一切皆插件」;社区目录 SkillHub 上的 dsh-done-alert 页 为独立站点收录,与 DeepSeek / 幻方无官方从属关系。

结尾

经过上面的步骤,你可以在 Windows 任务栏上获得与侧边栏语义一致的绿/橙角标,并在完成或需要关注时听到本地提示音。详情与 issue 见 GitHub:https://github.com/P1gG0dG0d/dsh-done-alert;目录页:https://www.skillhub.cn/plugins/P1gG0dG0d/dsh-done-alert。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜