前言¶
DeepSeek Harness(DSH)启动后往往直接进入工作界面,缺少可配置的「片头」;退出时若走托盘菜单,窗口也可能在后台被隐藏,观感上像「突然消失」。社区里常见做法是换皮肤或改静态资源,但很少把「启动一次、真正退出一次」做成可调、可预览、且不必打包视频文件的插件能力。
下面介绍维护者 samsam560 在 GitHub 仓库 samsam560/dog-kjdh 发布的 dsh-open-exit-animation(SkillHub 分类:趣味换装)。插件包名与 npm 名均为 dsh-open-exit-animation,当前版本 0.3.1,许可证 MIT,要求 DSH >=0.1.5-rc.1、Node >=20。
这是什么¶
一句话:给 DSH 提供 开场动画 与 退场动画,默认用纯代码自绘(CSS/SVG + 自定义属性粒子),零视频素材;也可在本机选用自己的视频或动图,二进制存在浏览器 IndexedDB,不上传、不联网。
- 开场:DSH 启动、页面就绪后自动播一次(默认样式约 2.26s)。
- 退场(真正关闭时):托盘右键 → 退出 / 退出应用时,桌面壳先把窗口亮出来,再
await globalThis.__dshExitAnimation(),播完退场动画后真正退出(默认约 1.42s)。 - 点窗口 X:默认 不播动画,直接隐藏到托盘;若要在点 X 时也播退场,在设置里打开「点 X 关窗也播」(配置项
exitOnClose)。
目录页:https://www.skillhub.cn/plugins/samsam560/dog-kjdh。SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系。
五套自绘样式¶
全部可在设置页即时切换、试播:
| 样式 id | 名字 | 说明 |
|---|---|---|
whale |
鲸鱼光扫(默认) | 鲸鱼描边 → 光扫 → 粒子汇聚 → 字标 |
pulse |
极简脉冲 | 实心鲸鱼 + 3 圈呼吸扩散(约 1.9s / 1.2s) |
stardust |
星尘汇聚 | 54 粒子向中心汇聚成字(约 2.4s / 1.5s) |
typewriter |
打字机 | 光标 + 扫描线逐字打出(约 2.1s / 1.1s) |
rings |
雷达环 | 描边鲸鱼 + 网格 + 雷达扫过(约 2.0s / 1.3s) |
除样式外可调:速度(0.5–3×)、粒子数(0–60)、主色(7 个预设 + 任意取色)、三段文案(字标 / 开场副标题 / 退场副标题,最长 48 字)。默认文案:word = DeepSeek Harness,subOpen = 正在启动 · starting,subExit = 正在退出 · shutting down。
自备视频或动图¶
窗口沙箱下不能直接用 file:// 作 <video src>,因此选文件时读成 Blob 存入 IndexedDB(库名 dsh-open-exit-animation-media),播放时用同源 blob: URL。
- 重启 DSH 后进入 设置 → 开关动画(左侧导航最下方,齿轮图标)。
- 在「视频素材(可选)」里为开场、退场各点 选择…(支持 mp4 / webm / mov / mkv / gif / png 等),或 清除。
- 可调静音、素材最长播放(0.8–15 秒)、画面适配(
cover铺满裁切 /contain完整显示);选完会立刻试播。未配置的方向仍用代码自绘;解码失败会回落自绘并在控制台console.warn,不会黑屏。退场素材最长按 7 秒收尾(桌面壳补丁兜底 8 秒)。
不重启 DSH 也可在仓库根目录双击 preview.html,加载同一份 lib/client.js 在浏览器里预览。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议自行查看仓库源码与 MIT 许可证。
# 插件市场里搜索「开关动画」直接装;或手动:
dsh plugin add github:samsam560/dog-kjdh # 从 GitHub(仓库里就是源码,无需构建)
dsh plugin add link:/path/to/dsh-open-exit-animation # 本地源码(开发用)
装完后 完全退出并重启 DSH,开场动画、设置页「开关动画」面板、自备素材才会全部生效。
退场动画(托盘退出 / 退出应用) 依赖可选的桌面壳补丁,不打补丁时开场、设置面板、素材功能仍可用,但托盘退出不会等待动画:
node tools/patch-asar.mjs --apply
Windows 也可双击 tools/apply-shell-patch.cmd。补丁对 app.asar 内 lib/main.js 做字节等长替换,可用 node tools/patch-asar.mjs --restore 还原。DSH 升级会换掉 app.asar,需重新 --apply;--check 可查看状态。自定义安装路径可用 --asar <path> 或环境变量 DSH_ASAR。
设置面板与验收¶
重启后建议按 README 验收:
- 开场:进入界面后全屏动画播完淡出,不挡后续操作。
- 点 X:默认直接进托盘、不播;需要则打开「点 X 关窗也播」。
- 托盘退出:确认后窗口先显示,播完退场再退出。
- 设置:换样式 / 速度 / 主色 / 文案,点「预览开场」「预览退场」。
- 控制台:
__dshAnim.open()/__dshAnim.exit();快捷键Ctrl+Alt+O/Ctrl+Alt+X。 - 自备素材:选文件试播后,重启看开场、托盘退出看退场。
配置持久化在页面 localStorage 键 dsh-open-exit-animation:config;主要开关包括 open、exit、exitOnClose、speed、style、particleCount、accent 及媒体相关 mediaOpen / mediaExit 等(详见仓库 README 配置表)。
编程接口(节选)¶
页面侧 bundle 暴露 __dshAnim、__dsaMedia、__dsaPanel 等,例如:
__dshAnim.get()
__dshAnim.set({ style: "typewriter", speed: 1.4 })
__dshAnim.open() / __dshAnim.exit()
__dshAnim.version // "0.3.1"
globalThis.__dshExitAnimation() // 托盘退出时桌面壳 await
globalThis.__dshCloseAnimation() // 点 X 时;exitOnClose 为 false 时立即 resolve(false)
适用场景与注意¶
- 适合:希望 DSH 有统一片头/告别动效、又不想维护视频资源的用户;需要个性化 mp4/gif 且要求素材只存本机的用户。
- 注意:退场与点 X 行为涉及桌面壳补丁,升级 DSH 后需检查补丁;卸载时应先
patch-asar.mjs --restore,再从 profile 的package.json移除依赖与 bundle 项并删 junction,最后重启 DSH(步骤见 README「卸载」)。 - 安全:插件在社区目录归类为趣味换装;任何 DSH 插件均应在信任来源前提下安装并审阅
lib/client.js等注入代码。
结尾¶
dsh-open-exit-animation 把 DSH 的启动与真正退出做成可配置动画:默认五套纯代码样式即可用,进阶可换本机视频并细调速度与文案;退场需可选壳补丁才能与托盘退出衔接。详情与截图见 GitHub README,安装也可从 SkillHub 目录页进入。
- 目录页:https://www.skillhub.cn/plugins/samsam560/dog-kjdh
- GitHub:https://github.com/samsam560/dog-kjdh