dsh-custom-splash:为 DeepSeek Harness 增加随机开屏动画

前言

DeepSeek Harness(DSH)启动后通常会直接进入应用界面。若希望在每次启动时有一段短动画再进入主界面,社区里已有若干开机动画类插件的思路可参考。dsh-custom-splash 由维护者 muning0214 发布,归类为「趣味换装」,在 DSH 桌面/Web 环境中通过插件机制注入全屏视频开屏:每次启动从内置三段 MP4 中随机选一段播放,播完淡出;也可按 Esc 或点击跳过。下面介绍它的定位、能力与安装方式。

这是什么

dsh-custom-splash 是给 DeepSeek Harness 使用的开屏动画插件。仓库:GitHub muning0214/dsh-custom-splash,目录页:SkillHub 插件页。当前 package 版本为 0.2.1,代码以 MIT 许可发布;随包 assets/ 内演示视频为第三方素材,不在 MIT 范围内,公开分发或商用需自行替换素材。

插件只使用宿主公开扩展点(视频路由、index-inject、标题栏色探针),不修改 DSH 打包文件。

核心功能

随机开屏与跳过

每次加载(即每次重启 DSH)对三段视频做 Fisher–Yates 洗牌后取一段播放,播完自动淡出(默认淡出约 420ms)。播放过程中按 Esc 或点击画面可立即跳过。

随包三段视频(见 README 预览表):

文件 时长 说明
assets/stardust.mp4 8.06s 闭眼半身特写,柔光星尘
assets/datastream.mp4 7.05s DEEPSEEK 大字 + 脸部 + 数据流
assets/gaze.mp4 7.05s 深色字标 + 青色瞳孔特写

不拖慢启动

素材单个损坏会自动换下一个;全部失败、解码报错、播放被拒,或超过 20 秒(MAX_HOLD 默认 20000ms)都会立刻放行,避免卡死启动流程。

Windows 标题栏按钮融入画面

DSH 桌面在 titleBarStyle: "hidden" 时,右上角系统绘制的三个按钮无法用普通 CSS 盖住。插件通过 preload 色探针与 CAPTION_CSS 规则,在播放开屏时让按钮透明融入画面;开屏结束规则移除后配色自动还原。该行为仅在 Windows 桌面版验证;macOS / Linux 会跳过标题栏处理,其余功能仍可用。

实时锐化

对低码率源使用 SVG feConvolveMatrix 做补偿,强度可在 index.mjs 中通过 kernelMatrix 调整(默认中心约 2.4,超过 3.2 易出白边)。

安装与启用

桌面版安装命令(须与 README 一致):

dsh plugin --profile desktop add github:muning0214/dsh-custom-splash

Web 版将 --profile desktop 改为 --profile web。仓库无构建产物依赖,也没有 prepare / postinstall,安装不会触发额外编译。

装完后完全退出 DSH 再重新打开——bundle 在启动时装配,热重载不足以加载新插件。

卸载:

dsh plugin --profile desktop remove dsh-custom-splash

典型用法:替换为自己的视频

  1. 将 mp4 放入插件目录下的 assets/。
  2. 修改 index.mjs 顶部 ASSETS 映射,增删条目即可增减片库:
const ASSETS = new Map([
  ['stardust.mp4', 'video/mp4'],
  ['datastream.mp4', 'video/mp4'],
  ['gaze.mp4', 'video/mp4']
])

视频需 faststart(moov 在 mdat 之前),否则浏览器需下载完整文件才能播。可用 ffmpeg 修复:

ffmpeg -i in.mp4 -c copy -movflags +faststart out.mp4

常用可调参数(均在源码中):

位置 作用 默认
MAX_HOLD 最多遮挡时长(毫秒) 20000
fade 淡出时长(毫秒) 420
kernelMatrix 锐化卷积核 2.4 / -0.35
CAPTION_CSS 标题栏按钮透明规则 见源码

实现要点(便于审源码)

视频路由:通过 connection.fetch.register() 为每个资源注册 /api/dsh-splash/... 路径,必须支持 Range,否则 Chromium 无法流式解码;仅服务白名单文件,禁止路径穿越。

播放器注入:经 webserver/index-inject 在 index.html 的 body 开头注入自包含脚本,用 Shadow DOM 全屏 <video>,在外壳挂载前覆盖一层。

标题栏:注入 CSS 将 preload 探针改为 transparent,触发 IPC dsh-desktop:windows-appearance 更新 overlay。

适用场景与注意

适合希望在 DSH 启动时增加品牌化或氛围感、且能接受约 7–8 秒量级(或手动跳过)等待的桌面用户。素材分辨率为 1280×720,1080p 以上屏幕会放大显示;三段时长不完全一致,开屏总时长会有小幅浮动。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,安装前建议阅读仓库源码与许可证;演示视频若对外分发需替换为自有权利素材。

参考与致谢

实现思路参考了 NativeDog1/dsh-boot-animation 与 Yiheng-guo/dsh-boot-animation-pro;本仓库为独立编写,未 fork 上述项目。


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

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

小夜