dsh-badge:标签页与任务栏未读角标,回合结束一声提示

前言

用 DeepSeek Harness 跑长对话或后台任务时,浏览器标签往往还停在别的页:助手已经跑完一轮,你未必立刻切回去。ChatGPT 会在标签图标上叠红色数字、标题前加 (N),回合结束还有提示音;原生 DSH 界面没有这套「未读回合」反馈。社区插件 dsh-badge(维护者 gaolvsuan,分类:客户端)把同类能力接到 DSH:在标签页 favicon 和 Windows 任务栏按钮上显示未读数,每完成一个回合播放一次提示音,标签重新可见或窗口回到前台时可自动清零。

这是什么

dsh-badge 是 DeepSeek Harness 的客户端组合包插件,MIT 许可,当前 npm 版本 0.8.5(以仓库 package.json 为准)。它监听会话回合结束事件,累加全局未读计数(不按会话分别统计),用 canvas 在站点原图标底图上绘制角标并替换 <link rel="icon">;音效由 Web Audio 现场合成,插件不附带音频文件。Windows 桌面端还可通过宿主侧 PowerShell 助手,对指定进程窗口的任务栏按钮调用 ITaskbarList3 绘制覆盖图标;macOS 与 Linux 仅保留标签页角标、标题前缀与音效。

目录页:https://www.skillhub.cn/plugins/gaolvsuan/dsh-badge
源码:https://github.com/gaolvsuan/dsh-badge

核心功能

下面介绍 README 中已写明、可核对的行为。

标签页与标题

  • 标签页图标角标显示未读回合数,超过 99 显示 99+。
  • 可选在文档标题前加 (3) DeepSeek Harness 形式的前缀(配置项 titlePrefix)。
  • 标签页重新可见约 1.2 秒后自动清零(受 clearOnFocus 控制)。

提示音

  • 每个计入的回合结束播放一声;内置三种音色:chime(两音铃声)、beep(单声方波)、rise(三音上行)。
  • 可设 soundUrl 使用自定义音频;可开 errorSound,在失败回合用低音提示。
  • minTurnDurationMs 默认 1000:短于该时长的回合不计角标、不响,避免极短回合刷屏。
  • 浏览器需用户至少点击或按键一次后才允许播放声音,插件在首次交互时解锁音频。

Windows 任务栏角标

  • 在任务栏 DSH 窗口按钮上叠加数字角标;窗口切回前台后可清除(desktopBadgeClearOnFocus)。
  • 子代理的回合不计入任务栏角标,与标签页逻辑一致。
  • 默认按进程名 DeepSeek Harness 找窗口;多实例或改名时需配置 desktopBadgeWindow,或关闭 desktopBadge。

设置页

Host 中路径:设置 → 插件管理 → dsh-badge。表单提供颜色预设与取色器、角标位置(右下角 / 右上角)、提示音试听、音量滑杆、最短回合时长,以及提示音、任务栏角标、切回前台清零等开关。修改后即时生效,停手后自动写入 Host 设置文档,无单独保存按钮。

安装与启用

DSH 生态里插件可来自社区目录或 npm;装完需进入 profile 的 bundles,否则不会加载。

从插件市场安装

在 SkillHub 等市场搜索 dsh-badge 后安装,按市场提示重启或等待热挂载。

从 npm 安装(desktop profile)

官方命令如下:

dsh plugin --profile desktop add dsh-badge

资料说明:dsh plugin add 只执行 pnpm,不会改 dsh.profile.bundles。装完后还要在 profile 的 package.json 里把 dsh-badge 加进 dsh.profile.bundles 数组,否则插件不会加载。

本地开发(目录链接)

把仓库放到任意目录,在 profile 的 package.json 中增加依赖与 bundle 条目,再在 profile 目录执行 pnpm install:

{
  "dependencies": {
    "dsh-badge": "file:../dsh-badge"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-badge"
      ]
    }
  }
}

bundles 里缺少 "dsh-badge" 时,插件同样不会加载。

配置

在 profile 的 cordis.patch.yml 里覆盖默认值。插入条目时 id 与 name 都要写,id 对应 patch 里的 badge:

- id: badge
  name: dsh-badge
  config:
    volume: 0.6
    soundPreset: beep
    minTurnDurationMs: 5000

常用配置项(默认值以 README 表格为准):

配置项 默认值 说明
enabled true 总开关
badge true 是否绘制图标角标
titlePrefix true 标题前 (N)
sound true 是否播放提示音
soundPreset chime chime / beep / rise
volume 0.5 0–1,幂曲线
minTurnDurationMs 1000 短回合过滤
clearOnFocus true 标签可见时清零
badgeColor #f5455c 角标颜色
badgePosition br br 或 tr
desktopBadge true Windows 任务栏角标
desktopBadgeWindow DeepSeek Harness 任务栏窗口进程名
debugLog '' 调试日志文件路径

更完整的字段见仓库 README「配置」一节。

典型用法与验证

控制台调试

在浏览器开发者工具控制台:

__DSH_BADGE__.test(3)          // 角标显示 3 并响一声
__DSH_BADGE__.clear()          // 清零
__DSH_BADGE__.sound()          // 只试听音效
__DSH_BADGE__.config           // 当前生效的配置

独立演示页

仓库内 demo/index.html 可双击打开,加载真实 client.js,用假 sessions 数据验证角标与音效。带 ?auto=1 可自动跑一遍「开始回合 → 结束回合」并输出报告。

任务栏演示(Windows)

不装进 profile 也可单独看任务栏效果:

npm run demo:taskbar

助手会把计数推到 1、2、3,停两秒再清掉。

适用场景与注意

适合谁: 长时间让 DSH 在后台跑回合、需要像 ChatGPT 一样用角标和短促提示音提醒「又完成一轮」的开发者;Windows 用户若常最小化窗口,任务栏数字角标比只看标签页更直观。

权限与安全: 插件随当前 DSH profile 与宿主进程运行;Windows 任务栏能力会拉起常驻 PowerShell 助手(taskbar.ps1),按 HWND 与进程名操作任务栏按钮。安装前应阅读 GitHub 源码 与 MIT 许可证,确认符合你的部署策略。

已知限制(README):

  • 任务栏角标仅 Windows,依赖 PowerShell 助手;macOS / Linux 无任务栏覆盖。
  • 未读数是全局计数,不按会话拆分。
  • Electron 的 setOverlayIcon 在本架构下不可用,故采用跨进程 ITaskbarList3 方案。

社区插件目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,dsh-badge 是其中一条客户端通知增强路径。

结尾

dsh-badge 把 ChatGPT 式的未读角标和回合结束提示音搬到 DeepSeek Harness:标签 favicon、标题前缀、Web Audio 提示音,以及在 Windows 上的任务栏数字角标。安装时记得 market 或 npm 装完后检查 profile 的 bundles;需要细调时改 cordis.patch.yml 或用 Host 插件管理里的表单即可。

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

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

小夜