Back to home

Bing-Bryan

dsh-unread-dot

DSH plugin: macOS Dock badge (dot = running, number = results) + bubble chime, built on the Badging API

Stars
2
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-unread-dot

English · 中文

DeepSeek Harness(DSH)插件:最小化/切走时,在 macOS Dock 图标上显示未读红点,并在会话完成/需要你处理时播放水泡提示音。回到应用自动清除。

license platform api

Dock 未读红点效果:运行中=红点,跑完=数字

基于 Chrome Badging APInavigator.setAppBadge / navigator.clearAppBadge)实现——不依赖任何 macOS 系统设置,不需要通知权限,没有横幅打扰。

⚠️ 使用前提:请先在 Chrome 中打开 DSH Web,通过浏览器菜单 「更多 → Cast, save and share → 安装应用 / Install…」 把它封装成一个独立的 macOS 应用(PWA)——setAppBadge 只对已安装的 Web App 生效。

效果

场景Dock 图标声音
会话正在运行(你不在时)🔴 红点(无数字)= 还在干活静音
会话跑完(你不在时)🔴 红色数字 +1 = 结果在等你🔊 水泡音
会话需要你处理🔴 红色数字 +1🔊 水泡音(每段离开期一次)
回到应用自动清除

为什么用 Badging API

本插件完全构建在 Badging API 之上,用它的三种状态编码「是否/何种新信息」:

navigator.setAppBadge(3)   // 红色数字角标:3 个未读结果
navigator.setAppBadge()    // 无数字红点:有会话正在运行
navigator.clearAppBadge()  // 清除:回到应用,已读
  • 无权限、无横幅、无系统设置:角标是系统级常驻标记,网页直接调用即可
  • 点 vs 数字:数字 = 未读结果计数,纯点 = 运行中(这是 Badging API 能表达的最清晰差异)
  • 兼容性:需将 DSH Web 安装为 PWA(Chrome「安装网页应用」),Chrome 81+ 支持该 API;Chrome 152+ 起角标/通知会正确归属到 Web App 自身

安装

  1. 安装插件包到你的 DSH profile(以 web 为例):

    dsh plugin --profile web add github:Bing-Bryan/dsh-unread-dot
    
  2. 在 profile 的 package.jsondsh.profile.bundles 中追加:

    "dsh": {
      "profile": {
        "bundles": [ "...", "dsh-unread-dot" ]
      }
    }
    
  3. 重启 dsh web,设置 → Dock 角标与通知 即可配置。

设置项

设置默认说明
Dock 角标总开关:跑完/等你处理时显示数字角标,回到应用清除
运行中显示活动点最小化期间有会话在生成回复时,显示无数字红点
提示音(水泡)完成/需要处理时播放内置水泡声(bubble.mp3,0.4s)
测试提示音按钮立即播放一次水泡音验证声音

工作原理

  1. 插件订阅 DSH 的会话列表(sessions.list),维护未读/已读状态:回到应用(窗口聚焦)时,当前所有待处理状态标记为已读
  2. 最小化/切走期间,新发生的完成/等待事件才点亮角标与提示音(旧事件不会累计重复计数)
  3. 运行中的会话只显示活动点(红点),不进入数字计数
  4. 提示音用 Audio 播放内嵌的 MP3(base64),跨窗口锁保证多个窗口同时打开时只响一次

兼容性

  • macOS Chrome(安装为 PWA / 「Install page as app」)
  • 角标:setAppBadge 需在已安装的 Web App 上下文中生效
  • 无服务器端依赖,纯客户端插件,HMR 热更新零重启

许可

MIT © 2026 Bing-Bryan

内置音效 bubble.mp3 基于 Pixabay 音频:Nature bubble in water 剪辑制作(Pixabay 许可:免费商用、无需署名)。