dsh-boot-anim:DSH 桌面版 SteamOS 风格启动动画

前言

DeepSeek Harness(DSH)采用“一切皆插件”的架构。桌面版在运行时主要加载 app.asar,直接修改该文件存在每次更新覆盖、重打包损坏安装或难以回滚的问题。dsh-boot-anim 插件通过宿主侧插件契约,利用 webserver/index-inject 机制实现注入,在不触碰原始源码的前提下提供启动体验的定制化。

这是什么

dsh-boot-anim 是一个为 DSH 桌面版设计的启动动画插件。
* 维护者:gxpppp
* 分类:趣味换装
* 许可:MIT
* 核心价值:提供 SteamOS 风格的七段分镜启动动画,以及 UI 由外向内、环环平移的入场过渡效果。

核心功能

  • SteamOS 风格七段分镜:包含黑屏、鲸鱼浮现、双线内合、轮廓勾勒、中线展开、落白、UI 环环入场等阶段。
  • UI 入场过渡:采用由外向内、环环平移的分层入场方式,分为外层三列、列内主块、主块内内容块三个波次。
  • 宿主侧注入:插件通过 webserver/index-inject 注入,属于宿主侧插件,不修改源码。
  • 零依赖:不依赖额外的第三方库。
  • 官方素材:使用 @deepseek-ai/dsh-client-ui-primitives 中的鲸鱼和品牌字标矢量数据。
  • 安全网:支持 prefers-reduced-motion、按键跳过、异常捕获与降级。

安装与启用

  1. 安装插件
    使用一条命令将插件添加到桌面版 profile:
    dsh plugin --profile desktop add github:gxpppp/dsh-boot-anim
注意:此命令只写入依赖,不会自动修改 `bundles` 配置。
  1. 配置 bundles
    插件生效必须出现在 dsh.profile.bundles 中。在配置文件中添加包名:
    "dsh": { "profile": { "bundles": [ /* ... */ , "dsh-boot-anim" ] } }
  1. 重启
    重启 DeepSeek Harness 桌面版即可生效。

本地开发与调试

如果需要修改动画或快速验证代码,建议从本地安装:

git clone https://github.com/gxpppp/dsh-boot-anim.git
cd dsh-boot-anim
powershell -ExecutionPolicy Bypass -File install.ps1

此脚本会创建 junction 到 node_modules,修改 lib/ 下的文件后刷新页面即可看到效果。

技术细节

  • 定位机制:由于 DSH 前端使用 CSS Modules,没有稳定类名,本插件通过 [data-shell-overlay] 语义锚点定位 UI 分区,并利用 getBoundingClientRect().left 对列进行排序。
  • 鲸鱼绘制:直接复用官方组件的矢量路径,使用 SVG 的 vector-effect: non-scaling-stroke 解决压扁描边变细的问题。
  • 过渡逻辑:所有动效集中在 boot-anim.js 的 T 表中,通过 Web Animations API 实现。

注意事项

  • 包名一致性:插件包名必须与仓库名一致(dsh-boot-anim),否则加载器会静默跳过该 bundle。
  • 权限运行:插件在当前 DSH 进程权限下运行,安装前应检查源码与许可证。
  • 依赖关系:依赖官方组件 dsh-client-ui-primitives。

结尾

dsh-boot-anim 提供了一种无需重打包即可深度定制 DSH 桌面启动体验的方案。通过宿主侧注入和矢量动效,实现了接近 SteamOS 原生的视觉体验。更多细节可查阅 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye