DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Trisia /

Trisia/dsh-dafeiyu-notice

Verified

大肥鱼你做完了就叫我

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: master@5bc90faf

大肥鱼项目图标

dsh-dafeiyu-notice

大肥鱼你做完了就叫我
DSH Web 的完成提醒插件:会话完成后大肥鱼出现,点击直接切回对应会话;支持 FIFO 排队、点击回应动画、等待回答/确认卡片与钉钉提示音。

大肥鱼任务完成提醒截图:会话结束后右下角出现大肥鱼,气泡显示任务完成啦和会话标题

目录

  • 功能
  • 安装
  • 使用
  • 设置
  • 开发文档
  • 常见问题
  • 素材与许可

功能

任务完成大肥鱼

任意 DSH 会话从“运行中”变为“空闲”,并且不是空白会话、没有待回答/待确认请求时,右下角会出现大肥鱼:

  • 待机动画循环播放,气泡显示“任务完成啦!”和会话标题。
  • 多个会话先后完成时排成 FIFO 队列,大肥鱼只出现一个,气泡显示“还有 N 个”。
  • 同一会话重复完成只更新队列里的标题,不会重复占位。
  • 用户主动停止生成(点击“停止生成”或连按两次 Esc)不会触发完成提醒。

点击切换会话与点击回应动画

点击大肥鱼(或聚焦后按 Enter / 空格):

  1. 立即打开 队首 会话,并把它从队列中移除。
  2. 播放一段随机“点击回应”动画,动画会跟着新页面继续播放。
  3. 队列还有会话时,动画结束后回到待机,等下一次点击;队列清空时,动画结束后淡出收起。

点击回应动画共 5 段,随机选择,并避免与上一次连续重复:

id 名称
wave 元气挥手
happy 开心跃动
shy 害羞惊讶
tickle 挠痒咯咯笑
angry 傲娇生气

气泡右上角的 × 可以随时清空整个队列并收起大肥鱼。

等待回答 / 等待确认卡片

出现新的问答或审批请求时,右下角弹出提示卡片:

  • 卡片会自动消失,停留时长 8 秒。
  • 最多同时显示 4 张,超出时挤掉最早的。
  • 点击卡片或按 Enter 打开对应会话;点 × 只关闭当前卡片。
  • 同一类提示 1.5 秒内只弹一次,避免连续事件刷屏。
  • 容器带 role="status" 与 aria-live="polite",方便读屏软件播报。

提示音

  • 任务完成使用内嵌的钉钉提示音;等待回答/确认使用另一段三音提示,便于区分。
  • 浏览器自动播放策略要求页面先获得一次用户手势(点击或按键),之后才能稳定发声。
  • MP3 被策略拦截时会自动退回 WebAudio 合成音,视觉提示不受影响。
  • 大肥鱼已经显示时,新完成的会话只入队,不重复响铃。

其它

  • 拖动与位置记忆:大肥鱼可以拖到任意位置,位置保存在 localStorage,刷新页面后恢复;窗口尺寸变化时会自动收回视口内。
  • 主题适配:颜色使用宿主的 --dsw-alias-* 主题令牌,浅色/深色主题都可融入。
  • 中英文文案:跟随宿主语言,提供 zh / en 两套字典。
  • 键盘与读屏:大肥鱼是有 role="button" 的焦点元素,支持 Enter / 空格;读屏软件合成的 click 也能触发切换。

安装

前置条件

  • 可运行的 DSH Web 环境。
  • Node.js 与 pnpm。

构建

cd /absolute/path/to/notify-plugin
pnpm install
pnpm build

构建会生成 lib/client.js。更完整的构建说明见 开发文档。

挂到 DSH profile

cd ~/.dsh/profiles/web
pnpm add link:/absolute/path/to/notify-plugin

把包名加入该 profile 的 dsh.profile.bundles(保留原有条目,在末尾追加):

{
  "dependencies": {
    "@local/dsh-plugin-task-notify": "link:/absolute/path/to/notify-plugin"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@local/dsh-plugin-task-notify"
      ]
    }
  }
}

插件包内的 cordis.patch.yml 会自动把 task-notify 条目插入 profile。重启 DSH Web 服务并刷新页面即可。

使用

操作 效果
点击大肥鱼 打开队首会话,播放一段随机点击回应动画
点击气泡 × 清空完成队列并收起大肥鱼
拖动大肥鱼 移动位置,松手后保存
聚焦大肥鱼后按 Enter / 空格 等同于点击
点击等待回答/确认卡片 打开对应会话
点击卡片 × 只关闭这张卡片

完成会话的消费顺序就是入队顺序:

会话 A 完成 ─┐
会话 B 完成 ─┼─▶ 队列 [A, B, C] ──点击──▶ 打开 A,队列 [B, C]
会话 C 完成 ─┘                          ──点击──▶ 打开 B,队列 [C]
                                        ──点击──▶ 打开 C,队列 []

队列清空后,最后一段点击回应动画播完会先淡回待机,再淡出收起;如果淡出期间又有会话完成,大肥鱼会继续保留。

设置

在 设置 → 通用 → 任务完成提醒 中可以调整:

设置 默认 说明
提醒 开启 总开关;关闭后不再产生新的大肥鱼和卡片
声音 开启 控制完成提示音与等待提示音;打开时会试听一次

设置保存在 localStorage:

键 内容
dsh.taskNotify.settings.v1 {"enabled": true, "sound": true}
dsh.taskNotify.spritePos.v1 {"left": number, "top": number},单位:像素

需要重置时,在浏览器控制台删除对应键并刷新页面即可。

开发文档

构建、测试、实现细节、素材生成和目录结构见 docs/DEVELOPMENT.md。

常见问题

完成任务后没有大肥鱼

按顺序检查:

  1. 设置页的“提醒”总开关是否开启。
  2. 会话是否真的从运行中变为空闲,而不是被手动停止。
  3. 会话是否仍是空白会话,或仍有待回答/待确认请求。
  4. 修改代码后是否重新执行过 pnpm build,并刷新了页面。
  5. 浏览器控制台是否有插件加载错误。

没有声音

  1. 先点击页面任意位置或按一次键,满足浏览器的手势要求。
  2. 检查设置页的“声音”开关。
  3. 检查系统/标签页是否静音。
  4. 若 MP3 被策略拦截,插件会尝试 WebAudio 合成音;两者都不可用时只保留视觉提示。

点击大肥鱼没有切换会话

  • 确认当前 DSH 版本提供 uiWorkspace 服务。
  • 确认队列里的会话仍然存在;已删除或归档的会话可能无法打开。
  • 如果刚点完最后一个会话,大肥鱼会在动画结束后收起,这是预期行为。

刷新后队列消失

完成队列只保存在内存中,刷新页面会清空;这是为了避免恢复出已经过期的提醒。位置和设置会保留。

大肥鱼跑到屏幕外

拖动回来即可;如果坐标异常,删除 localStorage 里的 dsh.taskNotify.spritePos.v1 后刷新。

素材与许可

  • 点击回应动画素材来自 PC2005-cloud/dsh-pet,由本仓库脚本离线转成雪碧图;使用或再分发请遵循原仓库的许可。
  • 钉钉提示音来自 assets/dingtalk.mp3,仅用于本插件提示。
  • 本仓库目前未附带独立 LICENSE 文件;如需对外分发,请先补充许可证并确认上述素材的授权范围。
—/ 5

No ratings yet

Verified DSH bundle

Commit 5bc90fafd1d6

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout