dsh-open-exit-animation:DSH 开场与退场动画

前言

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。

  1. 重启 DSH 后进入 设置 → 开关动画(左侧导航最下方,齿轮图标)。
  2. 在「视频素材(可选)」里为开场、退场各点 选择…(支持 mp4 / webm / mov / mkv / gif / png 等),或 清除。
  3. 可调静音、素材最长播放(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 验收:

  1. 开场:进入界面后全屏动画播完淡出,不挡后续操作。
  2. 点 X:默认直接进托盘、不播;需要则打开「点 X 关窗也播」。
  3. 托盘退出:确认后窗口先显示,播完退场再退出。
  4. 设置:换样式 / 速度 / 主色 / 文案,点「预览开场」「预览退场」。
  5. 控制台:__dshAnim.open() / __dshAnim.exit();快捷键 Ctrl+Alt+O / Ctrl+Alt+X。
  6. 自备素材:选文件试播后,重启看开场、托盘退出看退场。

配置持久化在页面 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye