夜雨聆风学习资料网

ARTICLE · 1248780

dsh插件推荐 - 这个插件把《明日方舟》那支「莱茵生命:访问」的 PV 搬进了 DSH 启动页

dsh插件推荐 - 这个插件把《明日方舟》那支「莱茵生命:访问」的 PV 搬进了 DSH 启动页

RECORD · 已归档

3,074

字 · 正文

8

分钟 · 阅读

33

项 · 可改设置

DSH 插件
开机动画
明日方舟
MIT / 版权

它把「等启动」那几秒做成了一段可以按 Enter 的过场:六幕序列、台词念完才推进、33 项配置。代价写在 README 里。

分享一个 dsh 插件。

它能干的事有点不务正业——给 DeepSeek Harness 换一段开机动画。

六幕,从头到尾连贯:黑幕上一个 DeepSeek 标识浮出来,过曝洗白,切到一块暖白底的技术档案板,走五步访问授权,最后用一层色散故障把幕掀开。

中央有一圈环形准星在慢慢自转,缺口留在正下方,不挡底部那些字。

我第一次看到它的运行画面,反应是:这也太认真了吧。

回到它为什么存在这件事上。

dsh web 是从命令行起来的,起来之后要装配一堆插件——模型、工具、技能、会话、沙箱、存储、调度、UI,全是插件,一层一层往上摞。这段时间屏幕上先是空白,然后闪一下那张 Loading plugins 的卡片,界面才出来。

快的时候一眼,机器忙的时候不好说。

问题不在于等多久,在于等的那几秒你什么都不知道。它是在加载,还是已经挂了?

这个插件干的事,就是把那几秒盖住。

SEC 01

ACCESS FLOW

它做的不是播片

通常那种「启动动画」插件,本质就是一个视频或者一串 CSS 动画,播完就过,你连个反应的机会都没有。

它不这么干。

第一幕「需要访问许可」,底下挂着 ACCESS PERMISSION REQUIRED,要你点按钮、按 Enter 或者空格,它才往下走。

第二幕「身份资料确认」,出来一张身份卡,编号 0087,权限等级 3,同样等你确认。

后面三幕才自动跑:接收访问需求、开始读取权限、读取完毕·核验通过。到第六幕,中央那行字变成「欢迎 JOYCE MOORE 访问」。

你想想看,就这两个动作,整段过场的性质就变了。

播片是它演给你看。这个是它问你答,演完那六幕,你是「办完了一道手续」出来的,不是「看完一个视频」出来的。

细节上也没偷懒。

中文是主字,英文是等宽副标题,一个字一个字打出来,像终端在收数据。底部有日志行在滚,等待用户授权…,旁边是百分比读数。阶段条从 AUTHORIZATION 走到 VERIFY。

不爱看的话,右上角有跳过按钮,Esc 也能跳。「要求确认」和「允许跳过」这两个开关都在设置里,想安静地播完就关掉前一个。

坦率的讲,一个开机动画做到「等你按 Enter」,是有风险的——多一个步骤,就多一个烦人的理由。

但它赌的是另一件事:你之所以装这个,本来也不是为了省时间。

六幕开机序列,前两幕停在授权上等你确认

SEC 02

TIMING

节奏是被声音算出来的

这一节是我最想讲的部分,也是它跟同类最不一样的地方。

大多数动画的节奏是写死的:这一幕停两秒,那一幕停一秒半,你手快就一路点过去,语音被切成半句。

它的每步停留是算出来的。

台词一共五段真声素材,长度分别是 1.96 秒、1.16 秒、1.07 秒、1.18 秒、1.70 秒。每一步停多久,取「视觉基准时长」和「实际音频时长 + 240 毫秒收尾」这两个数里更长的那个。

VOICE CLIPS · 五段真声素材全部时长(秒)

1.96

01

1.16

02

1.07

03

1.18

04

1.70

05

写成一行就是:

timing.js

max(视觉基准, 音频时长 + 240ms)

所以哪怕你把 Enter 按穿了,那句台词也会自己念完,动画才推进。

只有「跳过」和「揭幕」会真的把它掐掉。

这 240 毫秒也有讲究——它是开口前的留白。太短了显得急,太长了像卡住。

还有一个细节我挺喜欢:终幕不出人声。

「欢迎 XXX 访问」那一幕,只有画面和一声三音和声钟,没有旁白念你的名字。这个选择挺克制的,念出来反而容易垮。

真声素材取不到、或者解码失败,它会回落到浏览器自带的语音合成,不会因为一个 mp3 就卡在启动页。

说真的,把「你点得快」和「话还没说完」这两件事调和好,比做六幕动画难多了。这一段才是它像「作品」而不像「插件」的地方。

节奏不是写死的秒数,是按那句台词念完的长度算的

SEC 03

CONFIG

三十三项设置,改完立即生效

装好之后,DSH 设置页里会多出一个「启动动画」分组。

里面分了七组,加起来 33 项。

33

项设置

7

个分组

1

个 JSON 落盘

播放这一组是总开关:启用、显示模式(每次会话 / 总是 / 每天)、主题(暖白 / 暗色)、速度 0.35 到 3 倍、要求确认、允许跳过。

身份资料那组就三个:身份名称、身份编号、权限等级。默认是 JOYCE MOORE、0087、3。

语音那组最长:语音播报开关、语音来源(真声素材 / 系统 TTS)、音色、语速(默认 0.88)、音调(默认 0.85)、音量、播报前提示音、开口前留白(默认 240 毫秒)。

界面音效单独一组:开关、音量、来源(内置素材 / 现场合成)。这两个来源是分开算的,改音效不会连坐台词。

视觉这组给两个色:强调色 #ff7500,还有故障色 A #ff3b30 和 B #2971b8——就是揭幕那下色散的红和蓝。

最后一组是文案:品牌三行、黑幕三行、终幕方框、页脚。你想把 DEEPSEEK HARNESS 换成自己项目的名字,改这里就行。

设置页底部有个「立即预览」。

这个按钮有个前提得先搞清楚:它按的是你「已保存」的那份配置重播一次。所以想先看新配置,得先点保存再预览,不然你看到的是上一版。

所有设置落盘在一个 JSON 里,~/​.dsh/​dsh-startup.json,想改也可以直接改文件。

33 项里,绝大多数人大概只会动名字和配色。

但有一条是所有人都受益的,就是那个 9 秒兜底。

注入脚本里带了个定时器:9 秒之内,如果那个黑幕节点还挂着没被撤掉,就无条件把它移除,同时标记一个失败位。连 splash.js 被拦成 404、或者语法错根本没跑起来,都算在这个兜底里。

有一说一,这条比 33 项加起来都重要。开机动画最容易翻的车不是丑,是黑屏卡死。

SEC 04

PROVENANCE

JOYCE MOORE 是谁

我跟你说,那个默认身份挺有讲究的。

JOYCE MOORE,乔伊丝·摩尔。

这是《明日方舟》特别映像「莱茵生命:访问」里,终端在「身份资料确认」那一步报出来的名字。同一部作品里,她还有个更被人熟知的代号——干员白面鸮。

再把六幕的台词排一遍:需要访问许可、身份资料确认、接收访问需求、开始读取权限、读取完毕·核验通过、欢迎访问。

这就是那支 PV 的结构。

暖白的档案底板、五步访问授权、最后用色散故障揭幕,也都是那支片的语汇。

那问题就来了:它到底是「有点赛博感」,还是干脆照着抄的?

它是照着那支 PV 复刻的。默认值都没改。

这也是我觉得它有意思的地方——一个人把自己喜欢的一支片,连同里面那句「欢迎访问」,搬到了每天要开好几次的工具上。

然后说另一面,这一面必须说。

README 里有一段免责声明,作者自己写的:视觉风格参考自动画作品,音频素材(人声与音效)取自第三方视频,相关权利归原权利人,本项目不对风格与素材主张任何权利,也没获得任何形式的授权或背书。

开源许可只覆盖他自己写的代码与文案,不覆盖那套风格和素材。

而且还有一句更干脆的:未授权任何商业用途。

MIT 和「不许商用」这两句在同一个 README 里并存,是有点打架的。作者用「许可范围只覆盖原创部分」来调和这个矛盾——代码你可以拿去用,那套味儿不行。

这个矛盾已经有人踩到了。有一个分支,第一件事就是把原片台词和音效从仓库里删了,只留下作者自己录的那段终幕欢迎语,并且单开了一个第三方声明文件说明原因。

说句大实话,那段味儿是它最值钱的部分,也正是最不能拿出去卖的部分。

好看和版权,在它身上是同一件事的两面。

SEC 05

CAVEATS

装之前的三件事

好话到这儿。往下是我认为你动手前该知道的。

01

它没有上 npm

registry 里两个包名都是 404,只能从 GitHub Releases 下 tgz,或者用 dsh plugin --profile web add 直接指仓库。

国内 GitHub 打不开是常态——B 站上讲这个插件的教程,标题直接把「github 打不开解决办法」写进去了。装插件本身对一部分人就是个门槛。

02

两个中文插件市场搜不到它

不是被拒了,是根本没被抓到:仓库没写 description,也没打 dsh-plugin 这个话题,那两家都是按话题抓的。

dsh.so 那边倒是收录了,但状态是「已找到」,安全扫描「待扫描」,信任「未评级」,也没有安装实测记录。

待扫描的意思是没扫过,不是安全。

03

桌面端的第一版是坏的

v1.0.0 在 DeepSeek Harness Desktop 里完全不生效,一点都不播。

原因挺技术,但值得知道:它用的是 webServer.tapIndex 这条钩子去改写 index.html。这是服务端改写,而 Electron 是从磁盘直接读 index.html,那条钩子根本不会被调用。

整个插件在桌面端就是死的。

v1.1.0 才补上。补法是 Host 半侧取不到 webServer 就降级、只打一条 warn 不抛异常,把播放交给浏览器半侧自举,两边靠 window 上几个标记握手,保证不重复播。

代价是自举那条路首次会有一点点白闪——不像注入那样能在应用挂载前就盖住。

这件事说明一个道理:插件写得再漂亮,宿主换一个壳,画的东西可能就没了。

还有两个不该踩的坑,顺手记一下。

装完必须重启 dsh web,关掉启动器窗口再重新双击,不然刷新页面看不到动画。

如果你之前手改过 profile 的 cordis.patch.yml,加过同名的 insert 条目,得删掉——不然插件会被注册两次,apply 跑两遍,同一个路由重复注册直接报错。

另外,手工把目录拷进 node_modules 是不会被识别的,必须走 dsh plugin add,因为它靠的是 dsh.profile.bundles 那层层堆栈。

装之前把这几条捋一遍,能少折腾半小时

SEC 06

WHY IT MATTERS

把「等」做成过场

聊点别的。

我们给工具换皮肤这件事干了很多年了。编辑器配色、终端字体、侧边栏顺序、光标形状。

这些东西有个共同点:它们都作用在「你用的时候」。

开机动画不是。它作用在「你还没开始用的时候」。

其实吧,这个品类挺奇怪的。它不提高任何效率,它不省你任何一个动作,它甚至多要你按两次 Enter。从功利角度看,它就是个纯粹的负担。

但我一直觉得,人和工具的关系里有一部分是不功利的。

你每天要开它十几次。每次都要等那几秒。那几秒本来是被浪费掉的,你只能盯着白屏猜它死没死。

现在那几秒里,有个东西在跟你说话,问你有没有访问许可,报你的编号和权限等级,最后说一句「欢迎你访问」。

而且你可以把名字改成自己的。改完之后,那句「欢迎 XXX 访问」就真的是在跟你说话。

一个工具顺不顺手,看它省了你多少动作。

一个工具你想不想用,看它有没有在你必经的那几秒里,放点什么。

这两件事不冲突。前者决定你会不会留它,后者决定你用它的时候心甘情愿到什么程度。

行了,就聊到这儿。

最后丢个链接:github.com/​6shenhonghong9/​dsh-startup-screen

装之前记住两件事:装完要重启,以及那段味儿别拿去做商业用途。

— END OF RECORD —

既然看到这里了

觉得不错的话,随手点个赞、在看、转发三连;想第一时间收到推送,可以加个星标。

👍 点赞
👀 在看
↗ 转发

谢谢你看我的文章,我们,下次再见。

/ 作者:Patrick

/ 这里分享好用的AI工具和skill

/ 创作不易,三连支持一下吧~

相关学习资料