dsh-unread-dot:在 macOS Dock 上显示 DSH 未读角标与水泡提示音

前言

使用 DeepSeek Harness(DSH)时,会话可能在后台持续运行。最小化应用或切到别的窗口后,如果只依赖普通浏览器标签页,完成结果和待处理事项不一定醒目。

dsh-unread-dot 是一个 DSH 插件:在 macOS Dock 图标上显示未读红点或数字角标,并在会话完成、需要你处理时播放水泡提示音;回到应用后自动清除角标。

下面介绍它的定位、核心功能、安装启用方式,以及使用前需要注意的兼容性与安全事项。

这是什么

dsh-unread-dot 由 Bing-Bryan 维护,采用 MIT 许可,许可证标注为 MIT © 2026 Bing-Bryan

它解决的问题比较具体:在 macOS Chrome 中把 DSH Web 安装为应用后,让 Dock 图标承担一个轻量状态提示入口。角标和提示音都来自插件本身,不依赖系统通知横幅。

核心功能

已核实的功能包括:

  • 在 macOS Dock 图标上显示未读红点或数字角标
  • 会话完成或需要处理时播放水泡提示音
  • 回到应用后自动清除角标
  • 基于 Chrome Badging API(navigator.setAppBadge / navigator.clearAppBadge)实现
  • 用点或数字区分运行中与未读结果
  • 无权限、无横幅、无系统设置
  • 订阅 DSH 会话列表,维护未读/已读状态
  • 最小化或切走期间,仅新发生的完成/等待事件点亮角标并触发提示音
  • 多窗口同时打开时,通过跨窗口锁保证提示音只响一次

内置音效 bubble.mp3 基于 Pixabay 音频剪辑制作。Pixabay 许可为免费商用、无需署名。

状态表现

插件用两类 Dock 图标状态区分会话状态:

状态 Dock 图标 提示音
会话运行中 红点,无数字 不播放
会话完成或需要处理 数字角标 水泡提示音
回到应用 角标清除

对应的 Badging API 用法可以理解为:

navigator.setAppBadge(3)   // 数字角标
navigator.setAppBadge()    // 无数字红点
navigator.clearAppBadge()  // 清除角标

数字用于表达未读结果,红点用于表达仍有会话在运行。

使用前提

该插件依赖 Chrome Badging API,因此需要满足以下条件:

  • macOS Chrome
  • 先在 Chrome 中打开 DSH Web
  • 通过 Chrome 菜单「更多 → Cast, save and share → 安装应用 / Install…」将 DSH Web 安装为 macOS PWA
  • navigator.setAppBadge 需在已安装的 Web App 上下文中生效

兼容性说明:

  • Chrome 81+ 支持该 API
  • Chrome 152+ 起,角标/通知会正确归属到 Web App 自身

安装与启用

安装分三步:安装插件包、把它加入 profile bundle 列表、重启 DSH Web。

先执行下面的命令,把插件安装到 DSH profile。这里以 web profile 为例:

dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot

安装命令中的 --profile web 是 README 示例,不是唯一指定 profile。

然后修改 profile 的 package.json,在 dsh.profile.bundles 中追加插件名:

"dsh": {
  "profile": {
    "bundles": [
      "dsh-unread-dot"
    ]
  }
}

这一步的作用是告诉 DSH Web 在启动时加载 dsh-unread-dot

最后重启 DSH Web:

dsh web

重启后进入「设置 → Dock 角标与通知」进行配置。

设置与验证

设置页中可以用到的项目包括:

  • Dock 角标:控制会话完成或需要处理时是否显示数字角标
  • 运行中显示活动点:控制最小化或切走期间,会话正在生成回复时是否显示无数字红点
  • 提示音(水泡):控制会话完成或需要处理时是否播放内置水泡声
  • 测试提示音:点击后立即播放一次水泡音,用于验证声音是否可用

如果不确定声音是否生效,可以先点击「测试提示音」,再决定是否需要调整系统或浏览器音频设置。

典型用法

一个可复现的流程是:

1、在 Chrome 中打开 DSH Web。

2、通过「更多 → Cast, save and share → 安装应用 / Install…」把 DSH Web 安装为 macOS PWA。

3、执行安装命令:

dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot

4、在 profile 的 package.json 中把 dsh-unread-dot 加入 dsh.profile.bundles

5、重启:

dsh web

6、进入「设置 → Dock 角标与通知」,点击「测试提示音」确认水泡音可以播放。

经过上面的步骤,在最小化或切走 DSH Web 期间,如果发生新的会话完成或需要处理事件,Dock 图标会显示角标,并播放水泡提示音;回到应用后,角标会被清除。

适用场景与注意

适合这类使用方式:

  • 在 macOS Chrome 中运行 DSH Web
  • 已将 DSH Web 安装为 PWA
  • 希望用 Dock 角标和低打扰提示音替代部分通知横幅

需要注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证
  • navigator.setAppBadge 只在已安装 Web App 上下文中生效,仅打开普通网页标签页不一定满足条件
  • 旧事件不会累计重复计数,只有最小化或切走期间新发生的完成/等待事件才会点亮角标与提示音
  • 多窗口同时打开时,跨窗口锁会让提示音只响一次

结尾

dsh-unread-dot 的价值在于把 DSH 会话状态放到 macOS Dock 上:运行中显示红点,未读结果显示数字,完成或需要处理时播放水泡提示音,回到应用后自动清除。

相关链接:

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

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

小夜