# dsh-custom-splash · 中文详细说明
> DeepSeek Harness(DSH)的**启动界面插件**:打开 DSH 时先全屏播一段**你自己的视频**,
> 播完淡出、进入主界面。
>
> English: [README.md](README.md)

---
## 目录
- [它是什么](#它是什么)
- [安装](#安装)
- [两种启动模式](#两种启动模式)
- [换成你自己的视频](#换成你自己的视频)
- [设置项全表](#设置项全表)
- [常见问题](#常见问题)
- [安全与权限](#安全与权限)
- [工作原理](#工作原理)
- [开发与测试](#开发与测试)
- [许可、致谢与免责声明](#许可致谢与免责声明)
---
## 它是什么
DSH 启动时会先注入一个「启动界面」覆盖层,播放完成后再揭幕让应用本体显示出来。
本项目提供两种覆盖层实现:
| 模式 | 播放内容 | 配置项 `source` |
|---|---|---|
| **视频模式**(默认) | 你指定的本地视频文件,铺满窗口,播完淡出 | `video` |
| **内置六幕动画** | 上游项目自带的六幕交互序列(真声台词 + 界面音效) | `builtin` |
视频模式下连设置页里「身份名称 / 语音 / 配色 / 文案」那些只对六幕序列生效的选项都会自动隐藏,
避免出现「改了没反应」的困惑。
> **注**:上游项目自带的“内置六幕动画”在当前 v1.0.0 版本中因 DOM 挂载兼容性问题暂时停用,将在后续版本中修复恢复。
### 特性
- **换视频不用重装**:把 mp4 覆盖到固定路径 `~/.dsh/startup-video/boot.mp4` 即可,
也可以填任意绝对路径(文件或目录)。
- **首帧就是黑的**:插件在 `
` 里同步加 `dsu-lock` 类并在 `` 第一个孩子挂黑底覆盖层,
第一帧就盖住应用本体,不会先闪一下主界面再出视频。
- **边下边播**:视频由 Host 路由 `/dsh-startup/media/<文件名>` 提供,支持 HTTP Range(206)、
HEAD 与 seek;不缓存,换完刷新即新。
- **播不动也不会卡死**:带声自动播放被浏览器拒绝 → 自动降为静音重试 → 左下角给「开启声音」按钮;
视频解不了、卡住 25 秒、或脚本报错,都会立刻揭幕放行。
- **可跳过**:右下角「跳过 SKIP」按钮(1.1 秒后淡入)、Esc、点击画面(0.9 秒后)。
- **不影响刷新体验**:默认「每次会话只播一次」,同一标签页刷新不再重复播放;可改成「总是」/「每天」。
---
## 安装
### 方式一:插件市场
在 DSH 的插件市场里搜索 `dsh-custom-splash` 安装(上架后可用)。
### 方式二:命令行装 tgz
```bash
dsh plugin --profile web add ./dsh-custom-splash-1.0.0.tgz
```
Windows 上也可以解压 release 压缩包后**双击「安装.cmd」**,脚本会完成同样的操作。
### 方式三:直接指向本地目录(开发时用)
```bash
dsh plugin --profile web add link:D:\工作区\插件\dsh-custom-splash
```
### 桌面版(DeepSeek Harness Desktop)
桌面版的 profile 不能从命令行管理(会被拒绝),两种做法:
1. **插件管理器**:桌面端「设置 → 插件」里安装 tgz;
2. **用 `plugin_manager` 工具**(DSH 内的 agent 可用):`install_bundle`,`target` 传
`file:` 或仓库目录。
装完必须**从托盘完全退出桌面端再打开**(不是最小化),新插件才会加载。
### 环境要求
| 项 | 要求 |
|---|---|
| 平台 | DSH **web** profile 或 **Desktop** 桌面端 |
| Node | **>= 20** |
| 依赖 | 无(不需要 `npm install`) |
### 卸载
```bash
dsh plugin --profile web remove dsh-custom-splash
```
桌面端在插件管理器里移除即可。卸载后启动界面不再出现,也不会有残留黑屏。
---
## 两种启动模式
### 视频模式(默认)
- 覆盖层里放一个 `