dsh-startup-secret:给 DSH 加一段可交互的赛博风格开机动画

前言

DSH 的理念是「一切皆插件」,启动流程本身也可以被替换。对做 DSH 插件的人来说,一个能跑通「插件注入首屏 DOM、改启动行为」的完整样本,比文档里的说明更直观。huzhengcai471-crypto 维护的 dsh-startup-secret 就是这样一个样本:它把 DSH 的冷启动换成一段长征机主题的开机动画,还带访问密码、人物立绘和事件窗口。需要说明的是,它是二次创作作品,作者声明仅用于学习交流,未授权商业用途。

这是什么

一句话定位:DSH 的启动界面与启动动画插件(二次创作版)。维护者为 GitHub 用户 huzhengcai471-crypto,仓库 huzhengcai471-crypto/dsh-startup-secret,当前版本 1.5.2,许可证 MIT。社区目录把它归在「趣味换装」分类。仓库描述为:暗色赛博风格开机动画,徽章标识 + 赛博电子风人物立绘 + 访问密码功能。仓库在抓取时显示 165 stars、7 forks。

它解决的问题是:DSH 默认启动后直接进入工作台,没有启动序列,也没有「访问授权」这一层交互。本插件把冷启动替换为六幕动画,并允许在设置页里逐项改身份名称、编号、权限等级、密码、立绘、文案、配色和速度。

核心功能

开机序列 冷启动时播一段完整的开机动画,六幕连贯:厂牌标识 → 过曝洗白 → 暗色底板 → 五步授权 → 揭幕。中央一圈环形准星缓慢自转,缺口留在正下方,不会挡住底部文字。

可交互,不是播片 第一、二步要点按钮或按 Enter 才会继续(可以关掉)。右上角有跳过按钮,Esc 也能跳。

访问密码(可选) 可在设置页为第二步「身份资料确认」设置访问密码,密码输对才能继续,输错会提示并停留在原地。密码留空则不启用。

播放方式三档 完全自动播放 / 仅需点击一次进入(需空密码)/ 不自动播放。旧配置的 requireInteraction 会自动迁移。

人物立绘 右下角的赛博电子风人物立绘可在 5 款之间切换,最后一项「空」表示完全不渲染立绘。从第一步授权起就会亮出形象,带霓虹辉光呼吸与偶发信号抖动。

事件窗口(可选) 动画结束后在主界面中央弹出事件图片窗口,提示「向前!向前!向前! / 按下 Enter 进入」,按 Enter 或点击窗口任意处进入主界面;无任何操作 20 秒后自动放行。设置页可开关,勾选后每轮都弹;不勾选时只在安装后的首次启动弹一次。

真声台词与界面音效 五句台词和终幕欢迎语都是随包内联的真声素材,无需联网;界面音效取自同一段素材。浏览器要求先有一次点击才准出声,所以点过按钮之后才会听到声音。每一步停留多久由实际音频时长决定,点得快也不会把语音掐断。

中文主字 + 英文等宽副标题 英文副标题逐字打出来,像终端在接收数据。

三十余项设置 身份名称、编号、权限等级、访问密码、人物立绘、事件窗口、配色、速度、音色、语速、开口留白、每处文案都能在设置页实时改,改完立即生效。

播放序列如下(「需要操作」一列对应是否可以跳过等待):

# 中文主字 英文副标题 需要操作
1 需要访问许可 ACCESS PERMISSION REQUIRED 点按钮 / 按 Enter / 空格
2 身份资料确认 IDENTITY VERIFICATION 点按钮 / 按 Enter / 空格
3 接收访问需求 ACCESS REQUEST RECEIVED 自动
4 开始读取权限 PERMISSION READ STARTED 自动
5 读取完毕 · 核验通过 READ COMPLETE · VERIFIED 自动
6 欢迎「身份名称」访问 WELCOME, NAME 自动

安装与启用

推荐用脚本安装,脚本会自动完成下面两步,避免漏掉关键步骤:

# Windows:解压后双击「安装.cmd」
# macOS / Linux:
./install.sh
# 需要装到桌面端时:
./install.sh desktop

手动安装必须两步,缺一不可。原因是 dsh plugin add 只是 pnpm add 的转发,只写 dependencies,不会自动把包名加入 dsh.profile.bundles。漏掉第二步,插件会「装上了但完全没效果」——不报错、无动画、设置页无入口。

第 1 步,安装依赖:

dsh plugin --profile web add ./dsh-startup-secret-1.3.1.tgz

第 2 步,把插件加入 bundles(关键)。打开 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 数组里加入 "dsh-startup-secret":

"dsh": {
  "profile": {
    "bundles": [
      "@deepseek-ai/dsh-base",
      "@deepseek-ai/dsh-web-app",
      "dsh-startup-secret"
    ]
  }
}

桌面 profile 同理,文件在 ~/.dsh/profiles/desktop/package.json。上面第 1 步的 tgz 文件名沿用的是 README 里的示例,请按仓库最新 release 的实际文件名替换。装完重启 dsh web(关掉启动器窗口再重新双击),重启后刷新页面就能看到启动动画,设置页里会多出一项「启动动画」。

环境要求:DSH web profile(含 DeepSeek Harness Desktop 桌面端)、Node >= 20、无额外依赖(不需要 npm install)。卸载命令:

dsh plugin --profile web remove dsh-startup-secret

设置页怎么用

装好后进入 DSH 设置页 →「启动动画」。主要选项分五组:

  • 播放:启用(总开关)、显示模式(每次打开都播放 / 每天一次)、主题(暖白 / 暗色)、速度(0.35 – 3 倍)、自动播放(三档)、允许跳过(是否显示右上角跳过按钮、是否响应 Esc)。
  • 身份资料:身份名称、身份编号(建议填数字)、权限等级、访问密码(留空则不启用校验)。
  • 语音:语音播报、语音来源(真声素材 / 系统 TTS)、音色、音量(默认 0.9)、播报前提示音。内置五个真声音色,随包内联、无需联网:自动(优先神经网络女声)-US(默认)、智性少女音-CN、清冷优雅-日语、威严铿锵宣示-朝鲜语、清冷脆弱-俄语。
  • 界面音效:界面音效开关、音效音量(默认 0.5)、音效来源(内置素材 / 现场合成)。
  • 视觉:强调色(默认 #c70000)、故障色 A / B、人物立绘(含「空」)、降世事件窗口开关。
  • 文案:品牌三行、黑幕三行、终幕方框、页脚,均可自定义。

典型用法:先装好插件,进设置页把自动播放设为「不自动播放」,身份名称填自己的名字,权限等级填个自定义值,访问密码留空;保存后重启 dsh web,第一步点按钮、第二步点按钮,看到终幕「欢迎 xxx 访问」即说明链路通了。想试事件窗口,把「降世事件窗口」勾上再保存。想改英文副标题的观感,调「速度」和「音效音量」即可,文案本身在「文案」组里改。

适用场景与注意

适合想给 DSH 换启动体验、或者想研究「插件如何在启动期注入 DOM 与接管宿主界面」的开发者。它的安装方式也暴露了一个 DSH 插件加载的坑:依赖装上不等于生效,必须手动写 bundles。

需要注意三点:

  1. 插件以当前 dsh 进程权限运行,安装前应先检查源码与许可证。仓库已声明为二次创作,视觉风格、图形素材(徽章、人物形象)与音频素材的相关权利归原权利人所有,作者未获得任何形式的授权或背书,也未授权商业用途。用于任何二次分发前,应自行确认素材权利。
  2. README 里的安装示例包名是 1.3.1 的 tgz,当前版本是 1.5.2,安装时以仓库最新发布文件为准。
  3. 浏览器要求先有一次点击才准出声,首次听到语音需要先点一次按钮,这不是故障。

结尾

这个插件的价值不在于动画本身,而在于它完整展示了 DSH 插件如何在启动期注入界面、接管交互、读写宿主配置。想试的,从目录页或 GitHub 仓库开始即可:

  • 目录页:https://www.skillhub.cn/plugins/huzhengcai471-crypto/dsh-startup-secret
  • GitHub:https://github.com/huzhengcai471-crypto/dsh-startup-secret
羽毛球分组比赛记分
小程序二维码

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

Xiaoye