前言¶
DSH 启动时,页面在等 Host 连接、工作区就绪之前是一段空白。多数插件要么不做开屏,要么给出一条和真实进度无关的假进度条:它只是按时间走完,启动慢的时候看起来像卡住,启动快的时候又像在拖时间。
dsh-splash 是 dustcpu 维护的一个 DSH 开屏插件,做法是把取景框本身当进度计:框的宽高与圆角随真实启动进度从一个小窗口推到铺满屏幕,百分比直接画在框内底部。读的是实际完成度,不是计时器。下面介绍它的机制、安装方式和可调参数。
这是什么¶
一句话定位:一个几何风的 DSH 启动开屏插件,画面主体是一个在等距菱格海面上旋转受光的彭罗斯三角,开屏结束后不消失,而是缩到输入框左侧变成一个随工作状态变色常驻标记。
- 维护者:dustcpu
- 仓库:https://github.com/dustcpu/dsh-geometric-splash (包名为
dsh-splash) - package.json 声明的引擎约束:
node >=20、dsh >=0.2.1-rc.5 <0.3.0 - License:MIT
它解决的是两件事:让等待有可读的真实反馈,以及让启动后的状态有个不占地方的可视化标记。
核心功能¶
没有进度条、没有按钮,取景框就是进度计。 框从 380px 起始尺寸随进度向外推直至铺满窗口,圆角同步变化,当前百分比是框内底部的大号数字。
进度是真实的。 由五个加权里程碑驱动:插件图装载、Host 连接、工作区就绪、首帧字体,权重总和 100。电影节奏只负责按时间线把进度平滑地走一遍,但永远不会超过真实完成度。具体的权重与计算方式见仓库的 README.developer.md。
按任意键跳过。 F5 / Ctrl+R 仍然可用,刷新页面不会把开屏吞掉。100% 后停留一拍,三角自己飞向输入框左侧外缘,缩成常驻标记。
常驻标记只换配色不改转速。 旋转速度恒定,按思考 / 查找 / 执行 / 改文件四种状态切换配色;转速本身只受推理强度影响,四档:Off / Low / High / Max。
10 套主题色板。 取自 Monument Valley 与 Geometric Islands,通过会话顶部导航栏的小三角图标进入主题坞切换。
安装与启用¶
DSH 桌面版不需要命令行:打开「插件」页,在插件市场里找到 dsh-splash,点安装即可。注意桌面版的 profile 由应用自己管理,命令行如果 profile 名写错会装到别的 profile 去,在桌面版里反而看不到。
命令行,适用于 DSH Web 版,或你知道自己的 profile 名时:
dsh plugin --profile <你的 profile 名> add dsh-splash
这条命令来自 README。不要拼接成 dsh plugin add github:owner/repo 的形式。
两个坑,README 里都标了:
- DSH 给 profile 配了 pnpm 的发布等待期(
minimumReleaseAge),刚发布的新版本在等待期里会被挡住,add dsh-splash可能装到较旧的版本。想装最新版就指定版本号:
dsh plugin --profile <你的 profile 名> add dsh-splash@0.2.3
pnpm 会自动把它加进 profile 的 minimumReleaseAgeExclude 放行。
- profile 名写错会装到别的 profile 去,桌面版看不到。
本地开发版用 link 方式安装:
dsh plugin --profile desktop add "link:C:\path\to\dsh-splash"
link 安装需要在 profile 的 cordis.patch.yml 末尾登记一行,像这样:
- id: dsh-splash
name: dsh-splash
走市场 / bundle 方式安装时这一步会自动完成。装完刷新页面(Ctrl+R)即可看到开屏。
典型用法¶
日常使用不写配置,直接用会话顶部导航栏的主题坞:切换色板、调整开屏时长(1–12 秒)、开关常驻标记。这些设置存在当前页面的 localStorage,不写宿主配置,也不跨设备同步。
排障和调试时用 URL query 参数,这条路径很适合接手别人机器时快速验证:
?dsh-splash=off # 本次不显示
?dsh-splash=force # 即使页面已挂载也显示
?dsh-splash-min=3800 # 本次开屏最短展示时间(毫秒),默认 7200
?dsh-splash-palette=island-night # 本次强制使用某套色板
?dsh-splash-progress=real # 本次切到真实进度(仅调试用)
?dsh-splash=force 的用处是页面已经挂载完成后想复现开屏行为,比如检查收尾动画和常驻标记。
适用场景与注意¶
适合用 DSH 且希望启动阶段有明确反馈的人,尤其是启动链路较长、等 Host 连接和工作区就绪比较久的场景。对启动速度本身不做承诺,它只是把已有的等待呈现清楚。
需要知道的边界,README 写明了三条:
- 开屏是页面级的。Electron 原生窗口创建到页面脚本执行之间没有可注入时机,这段由桌面壳自己的窗口背景承担。
- 启动失败时最多覆盖 20 秒然后淡出,避免把错误页永久盖住,进度不会假报 100%。
- 画面全部由代码绘制(canvas + SVG),不带图片或视频资产,所以包体小、任意分辨率都清晰。
安全方面要注意:插件以当前 dsh 进程的权限运行。好在它不含二进制资产,装之前把仓库源码和 MIT 许可证看一眼即可确认。
结尾¶
dsh-splash 的价值不在于画作本身,而在于取景框与真实进度的绑定:框走到哪一步就等于启动走到哪一步,这是普通计时动画做不到的。常驻标记延续了这种设计——用配色而非转速传递状态,不干扰程序员对「转得快不快」的直觉。
目录页:https://www.skillhub.cn/plugins/dustcpu/dsh-geometric-splash
GitHub:https://github.com/dustcpu/dsh-geometric-splash
plugin 源码之外的两篇文档值得接力:真实进度权重与调试流程见 README.developer.md,发布到插件市场的流程见 PUBLISHING.zh.md。