DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

WWFZS /

WWFZS/dsh-plugin-startup-animation

Verified

开机动画 / Startup Animation — full-screen animated startup screen for DeepSeek Harness with a built-in video/wallpaper/audio library

★ 7 Stars1 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: master@941dc642
开机动画

开机动画 · Startup Animation

启动画面、界面主题、桌面宠物 —— 一个插件,三件事都办了。

Version DSH No deps License Author

安装 · 界面预览 · 开机动画 · 界面主题 · 桌面宠物 · 兼容性 · 更新记录 · 源码构建


项目简介

开机动画(Startup Animation) 是装进 DeepSeek Harness 的一套外观插件: 启动画面 + 界面主题 + 桌面宠物,一份素材管三处,不用装三个插件。

  • 启动画面 —— 启动时在加载页前面盖一层动画,并监听应用真正就绪的时刻: 界面一接管就淡出,你等的永远是应用本身,不是动画。
  • 界面主题 —— 同一段视频或同一张图还能铺到应用界面后面当背景。五套预设一键换观感, 遮罩、模糊、色彩浓度各自可调,出厂即最透;字色按壁纸的实测对比度反推,暗壁纸下也看得清。
  • 桌面宠物 —— 透明的小动物浮在界面上,自己轮播动作。能拖着走,甩出去会带着惯性 撞边弹回来;每只各记各的大小和位置,可以同时养两只。

插件通过内核的两个扩展点接入:webserver/index-inject 注入覆盖层与样式, webServer.register 提供素材与管理路由。运行时不依赖任何 npm 包,浏览器半边只从宿主的 模块表 require('react'),装好即用、无需构建。

开箱自带 9 段视频 / 9 张壁纸 / 9 段语音,外加两只桌面宠物(合计 122 段动作), 也支持上传你自己的 MP4 / WebM / GIF / PNG / JPG / MP3。素材在设置页里点卡片即用, 启动时长可以在 3–30 秒之间调;声音有两个彼此独立的开关——视频自己的音轨, 以及单独的开机音频。

核心特性

启动画面

  • 装上就有 —— 零配置,内置动画立刻播放
  • 两种玩法 —— 内置素材库任选,或上传自己的文件
  • 时长自己定 —— 3–30 秒;点击跳过不受它限制
  • 绝不扣住你 —— 点击、Esc / Enter / 空格、或者干等,每条路都能出去
  • 干净的画面 —— 只有动画本身,右下角一枚 Esc 键提示;不出问题不冒任何文字
  • 失败即降级 —— 任何一步出错都退回 Harness 原生启动页,不阻塞启动

界面主题

  • 同一个素材库 —— 视频或图片都能铺到界面后面,开机动画那条线不受影响
  • 五套预设 —— 亮 / 暗 / 原图 / 通用(绿)/ 通用(紫),换的是颜色,点一下就切
  • 出厂即最透 —— 面板不盖、画面不压、不糊;要遮挡是往上加,不是从满格往下减
  • 字糊不掉 —— 整套观感没有一处 backdrop-filter,正文对比度永远 ≥ 4.5:1

桌面宠物

  • 两只,122 段动作 —— 噜噜 13 段、女仆鲸鱼娘 109 段,待机时自己随机演一个
  • 各走各的 —— 每只自己的位置、大小、待机节奏和甩抛物理,可以同时开两只
  • 拎起来能甩 —— 带惯性地飞、撞到边缘弹回来、停稳回待机,飞的时候还能再抓住
  • 加宠物不改代码 —— 往 builtin/宠物/<名字>/ 放一个 pet.json 和若干 webm 就行

通用

  • 声音两个独立开关 —— 视频音轨与独立音频各管各的,可任意组合
  • 更新前先看清 —— 设置页的「更新公告」直接显示 Release 说明,不用跳 GitHub
  • 卸载与升级都由你 —— 有新版只提示、你点一下才装;不需要了就卸载

界面预览

视频素材库 —— 卡片点选即用,来源直接标在卡片上(内置 / 上传),当前在用的那张标「使用中」:

视频素材库

壁纸素材库 —— 同样点卡片即生效,来源标记同上:

壁纸素材库

桌面宠物 —— 浮在界面上的一只小动物,自己轮播动作,点它、拖它、换大小:

宠物卡:噜噜与女仆鲸鱼娘

设置页顶部的宠物卡直接换:点一下另一只,浮层立刻换装,位置和大小跟着走,不用重启。

噜噜 —— 13 段动作,按 4 类展示(互动 / 休闲 / 工作 / 节庆):

噜噜的动作

女仆鲸鱼娘 —— 109 段动作,按 11 类展示,配搜索和「随机一个」,不会铺满一屏:

女仆鲸鱼娘的动作分类

实际效果 —— 内置素材选中之后,Harness 启动时看到的就是这些(动图无声;带语音的三段,声音要在设置页里直接预览):

《薰衣草花语-等你爱我》 · 24 秒 · 1080p · 带语音

薰衣草花语-等你爱我

《dsh-大肥鱼》 · 8 秒 · 720p · 带语音

dsh-大肥鱼

安装

四种方式,任选一种。装好后都在 设置 → 开机动画 里配置,首次安装完刷新一次页面即可。

代码在国内两个地方都放了一份,内容一致:GitHub 与 Gitee。版本号、Release 与 npm 包以 GitHub 为准。 方式二到方式四都有 Gitee 通道,GitHub 慢的时候替换链接即可,见每节末尾。

方式一:搜包名(最简单)

插件已发布到 npm,DSH 0.2.1+ 的插件管理器能直接装。

  1. 打开 设置 → 插件,点 添加插件
  2. 插件名填 dsh-plugin-startup-animation
  3. 点 安装,完成后刷新页面

包名也可以在 npm 页面 上核对版本。

方式二:直链(不走 npm)

GitHub 慢、或想直接从 Release 装时用这条。这条路不需要 npm,也不需要 git。

  1. 打开 设置 → 插件,点 添加插件
  2. 插件名填下面这条地址
  3. 安装源保持默认 —— 直链不经过安装源,选哪个都不影响
  4. 点 安装,完成后刷新页面
https://github.com/WWFZS/dsh-plugin-startup-animation/releases/latest/download/dsh-plugin-startup-animation.tgz

链接永远指向最新版,收藏一次就够。GitHub 慢的话,用浏览器把同一链接另存为文件,再把 文件的绝对路径填进「插件名」(例如 C:\Users\你\Downloads\dsh-plugin-startup-animation.tgz), 效果一样。

国内走 Gitee 的话用这条:

https://gitee.com/weiwenfengzs/dsh-plugin-startup-animation/releases/download/v1.22.1/dsh-plugin-startup-animation.tgz

Gitee 没有 latest 这种永久链接,地址里带着版本号,换版本要换地址 —— 想一次填对就用上面 GitHub 那条,或者直接下载文件后填本地路径。

方式三:命令行

# 从 npm(profile 需要能访问 npm registry)
dsh plugin --profile <你的 profile> add dsh-plugin-startup-animation

# 或从 GitHub 直链
dsh plugin --profile <你的 profile> add https://github.com/WWFZS/dsh-plugin-startup-animation/releases/latest/download/dsh-plugin-startup-animation.tgz

# 或从 Gitee 直链
dsh plugin --profile <你的 profile> add https://gitee.com/weiwenfengzs/dsh-plugin-startup-animation/releases/download/v1.22.1/dsh-plugin-startup-animation.tgz

本地 .tgz 文件或本地目录路径同样可以,把最后一个参数换掉即可。然后重启 dsh。

方式四:从源码

git clone https://github.com/WWFZS/dsh-plugin-startup-animation.git
# 或者从 Gitee 克隆(内容一致)
git clone https://gitee.com/weiwenfengzs/dsh-plugin-startup-animation.git

dsh plugin --profile <你的 profile> add /该仓库的绝对路径

官方 DSH 桌面版:请从应用内的 设置 → 插件 安装(方式一或方式二)。那个 profile 归应用的插件管理器管,命令行改动无效。

怎么用

打开 设置 → 开机动画(入口在侧栏的设置列表里)。

控件 作用
显示开机动画 总开关。关掉 = Harness 原生启动页。
视频带声播放 让视频播它自己的音轨(前提是文件里真的有音轨)。
开机音频 动画期间另播一段音频文件。
展示时长 3–30 秒,视频与壁纸共用。跳过不受它限制。
启动画面素材 当前素材预览,以及「恢复默认」(回到内置动画)。
MP4 / 壁纸 / 主题 / 音频 / 宠物 / 更新公告 六个页签 前两个与音频是素材分类:点卡片即选用、上传即入库。主题把任意视频或图片铺成 DSH 的界面背景。宠物是开关、大小、换宠物与动作预览(动作多的按分类展示 + 搜索)。更新公告是只读页,显示最新版 Release 的更新说明。
卸载 / 更新 装在当前 profile 里时显示。卸载插件会把它移除(设置与上传素材保留在磁盘);有新版时版本号变成一个更新按钮。两者都要重启 DSH 才生效。从源码目录 link: 进来的安装不给更新按钮——那条依赖不指向任何版本。

没选素材时,插件会播放自己的内置动画(配色随应用深浅色走的旋转徽标)。 选了素材就用素材;「恢复默认」把它换回内置动画。把总开关关掉,才是 Harness 原生的启动页。

页面右上角的 立即刷新 会重载页面让新配置生效。任何设置都不需要重启 dsh。

界面主题(壁纸)

同一个素材库里的任意视频或图片都能当界面主题:进应用之后它铺在整个界面后面, 开机动画该怎么用还怎么用,两条互不影响。

有几段内置视频不适合铺满整屏(竖屏短剧、人物特写那种,铺上去只剩一团糊), 它们只在主题页签里被筛掉,素材库里照旧在、开机动画照旧能用: 550C-赛博控制台、薰衣草花语-等你爱我、dsh-大肥鱼、少司缘。

设置页 主题 页签里:

  • 开关 —— 关掉就是原生界面,素材与预设都留着
  • 五套预设 —— 换的是颜色:亮(白釉)、暗、原图、通用(绿)、通用(紫)。 每格右上角标着这套预设在这张壁纸上算出来的对比度。 点一下就换掉整套颜色,遮挡一律回到 0 —— 看到的一定是原样的壁纸
  • 三根滑杆 —— 遮罩厚度(画面压暗多少,0–80%)、壁纸模糊(0–10px)、色彩浓度, 全部即时生效

出厂就是最透的那一档。 刚装上、刚换预设,壁纸都是原样透出来的:面板不盖、画面不压、 不糊。要遮挡是往上加,不是从满格往下减 —— 你不需要先把每根滑杆拖到底才能看见原本的样子。

面板是玻璃,不是实色块。 三个区域(侧栏 / 会话区 / 底栏)的底色是半透明的玻璃色, 壁纸从这层底下透上来;玻璃色由预设给。

遮挡只有一根:遮罩厚度。 它压的是壁纸本身,上限 80% —— 再高就看不见壁纸了, 留 20% 是给"我还想看到这是张图"的底线。

字不会被糊掉。 整套观感里没有一处 backdrop-filter:它糊的是元素背后的所有内容, 包括列里自己的正文。要模糊只模糊壁纸层本身,上限 10px。

你的字不会被吃掉。 壁纸只接管颜色,字号、字体、行高一个都不碰(那是内核自己管的 两条独立变量)。面板全透的时候,字后面会垫一层文字保险层(气泡、选中行、输入框), 所以正文永远 ≥ 4.5:1;字色按面板的实际对比度选,不是拍脑袋。

设置页不跟着壁纸变。 插件自己画的界面固定在原生外观(启动时抄一份内核的原生底色), 在里面调主题看到的就是真实效果,不会越调越看不清。

换预设、换素材、开关、拖滑杆都是即时生效的:点下去当场就重画,不等回包、不用刷新页面。

版本与更新

设置页标题旁有一枚版本号,显示你实际装上的版本(直接读包自己的清单)。

  • 已是最新:就只是一枚版本号,不打扰你。
  • 有新版:它变成一个按钮,点一下就地更新(下载 Release 里的 tgz、替换自己的文件), 完成后重启 DSH 即可——不用去 GitHub 手动下包。更新成功后标题立刻换成新版本号。
  • 检查不到:离线、防火墙拦了、或者 GitHub 不可达时,只是一枚安静的版本号, 不会变成报错状态——更新检查是锦上添花,不是插件的依赖。

不管你是从 npm、直链还是源码装的,一键更新都从 GitHub Release 取包——那条 tgz 直链是 唯一的更新来源,所以哪怕当初用 npm i 装的,点了更新之后也会切到 Release 版本。

这条对 GitHub 不可达的环境不成立:版本检查和安装包都指向 GitHub,检查不到时那只是一枚 安静的版本号,不会报错。走 Gitee 装的用户请手动换包(下载新版 Gitee Release 的 tgz 覆盖安装), Update 按钮不会也不能帮你从 Gitee 更新。

设置页还有一个 更新公告 页签:内容就是最新版 Release 的发布说明(同一次更新检查 顺手带回来,不另发请求),装没装新版都能先看清"这次改了什么";取不到就安静地显示 「检查不到更新」。

插件不会在你不知情时更新自己:没有定时、没有后台检查着就动手。只有你点那颗 按钮、或自己跑命令,更新才会发生:

# 覆盖安装,设置与已上传素材都会保留
dsh plugin --profile <你的 profile> add https://github.com/WWFZS/dsh-plugin-startup-animation/releases/latest/download/dsh-plugin-startup-animation.tgz

你的配置($DSH_HOME/startup-animation.json)和上传素材 ($DSH_HOME/startup-animation-media/)都在包外面,升级不会动它们。

桌面宠物

设置页的 宠物 页签会让透明小动物浮在界面上(不影响任何操作,它就是浮在页面上的一层)。 可以同时养好几只,每只各自活动。

  • 多只同屏:噜噜(13 段动作)和女仆鲸鱼娘(109 段,素材来自社区 dsh-pet,署名见下)。 每张卡右上角有个开关,开一只、开两只、全开都行;关掉的那只占用的素材和内存当场释放
  • 点卡片 = 看哪只,不影响宠物显不显示:下面的动作列表跟着换成那只的动作
  • 各走各的:每只有自己的位置、自己的大小、自己的待机节奏、自己的甩抛物理 —— 一只在飞,另一只照样待在原地呼吸;大小滑杆跟着当前看的那只走
  • 自己演:待机动作循环,每隔 15–35 秒随机演一个小动作,演完回待机;拖动时循环 「拖拽悬空」,左键随机一个「点击回应」,同时「咔哒」一声
  • 甩抛反弹:拎起来甩出去,它会带着惯性飞、撞到屏幕边缘弹回来、慢慢停稳再回待机; 飞的时候还能再抓住它
  • 右键菜单两级:一级是分类(带数量),点进去是这个分类里每个动作的完整名字, 点哪条演哪条;另有随机一个、归位(所有宠物一起回右下角)、隐藏(只关这一只)—— 一百多段动作不会摊成一屏,也不用在几十条里找
  • 自己会动:待机 15 秒后随机演一个小动作,演完回待机再等 15 秒;动作从全部分类里抽
  • 动作多的宠物按分类展示:12 段以内平铺动作格;超过就显示分类封面卡 + 搜索框 (最多 8 条命中)。动作格和搜索结果都带缩略图,一眼能看出是哪一段;正在演的会高亮
  • 大小 100–320 px,每只各记各的;拖动换位置,松手记住(也是每只自己的)
  • 加宠物不用改代码:builtin/宠物/<名字>/ 放一个 pet.json 和若干 webm, 文件名就是动作名
  • 素材已经去掉绿幕和脚下的地面投影,所以它是悬浮在界面上的

形象与授权

宠物形象来自社区二创项目 dsh-pet,按原作者要求 完整声明如下:

  • 素材(动画 / 提示词 / 源视频):允许开源使用,禁止商用
  • 二次创作约定:基于本项目的衍生 / 改版 / 换皮作品,在 GitHub 仓库、产品官网等公开 渠道上须附上原作者 GitHub 地址 https://github.com/PC2005-cloud/dsh-pet
  • 形象出处:宠物形象为社区二创的 DeepSeek「大肥鱼」(鲸鱼娘),非 DeepSeek 官方 形象;原型「溟月」出自 B 站 @上善无形,DeepSeek 版(女仆鲸鱼娘)设计出自 B 站 @ZipZipPie
  • 形象授权:CC BY-NC-SA 4.0 (署名 · 非商业 · 相同方式共享)。声明原文:「大肥鱼是遵守 CC BY-NC-SA 4.0 协议的形象, 不可以以任何形式商业化。若您非常喜爱该形象,希望其拥有实体,您可以自行定制。」

噜噜动作设计是本项目原创素材,授权跟随上方。

配置文件

配置存在 $DSH_HOME/startup-animation.json(一般是 ~/.dsh/startup-animation.json), 可以直接手改:

{
  "boot": {
    "enabled": true,
    "file": "builtin/MP4/多重影像.mp4",
    "durationSec": 8,
    "audioEnabled": true,
    "audioFile": "builtin/音频/宝宝安慰.mp3",
    "audioVolume": 0.4
  },
  "wallpaper": {
    "enabled": true,
    "file": "builtin/图片/漫威-漫威宇宙.jpg",
    "preset": "frosted",
    "scrim": 0
  }
}

file 可以写 builtin/... 包内相对路径,也可以写你自己素材的绝对路径。 durationSec 默认 5、范围 3–30;其余键都有合理默认值,见 index.js 的 DEFAULT_CONFIG。

wallpaper.file 是界面主题用的素材(与 boot.file 各记各的)。preset 取上面五套之一的 id,只决定颜色;scrim(0–0.8)决定画面压暗多少,出厂 0 = 最透; blur(0–10px)/ saturate(0.6–1.6)是壁纸本身的两根微调。 旧配置里若还留着 glass 或 surfaceBlur,会被直接忽略(玻璃厚度与面板模糊都已经收掉)。

支持的素材

类型 格式 说明
视频 mp4 m4v webm ogv ogg 等待期间循环播放。内置为 1080p / 8–24s / faststart(dsh-大肥鱼 为 720p)。
图片 gif apng webp png jpg jpeg gif/apng/webp 会动;静图带缓慢呼吸缩放。
音频 mp3 wav m4a aac flac opus 仅用于开机音频。

视频与图片除了当开机动画,也都能当界面主题(见上面的「界面主题」)。音频不行。

上传落盘目录:$DSH_HOME/startup-animation-media/,单文件上限 128 MiB。

内置素材库

以下全部随包分发,在列表里直接可选:

  • MP4 —— 8 段,全部为 H.264 faststart(可直接流式播放,每段 1.6–6.2 MB)。 dsh-大肥鱼、薰衣草花语-等你爱我、少司缘 带语音音轨(打开「视频带声播放」即可听到),其余六段无音轨
  • 壁纸 —— 7 张,附带预生成的 480px 缩略图供列表使用
  • 音频 —— 9 段语音
  • 宠物 —— 噜噜 13 段 + 女仆鲸鱼娘 109 段透明动画(VP9-alpha webm)。 它们不进素材列表,只由宠物浮层取用。

所有素材均来自网络,感谢各位 UP 主的优秀作品。仅作演示用途,版权归原作者所有; 商业再分发前请先看 ASSETS.md 确认每个文件的来源。

它如何做到"不添乱"

  • 覆盖层挂在 document.body 上、不在 #root 里,不会干扰应用的水合(hydration)。
  • 每条失败路径(文件不在、编码不支持、自动播放被拦、内核启动慢)都有时间上界, 统一退回原生启动页。
  • 素材路由完整实现了 Range/ETag:拖动进度正常,切片响应不会被当成完整文件缓存。
  • 上传素材是真删;内置素材只从列表隐藏,包体保持完整。

对未来 DSH 版本的兼容性

Harness 迭代很快,而这个插件用到两个内核扩展点(webserver/index-inject 做开机覆盖层, webServer.register 做路由和素材服务)。两处都按"未来内核改了也只降级、不弄坏你的 Harness"来处理:

如果未来的 DSH 改了…… 会发生什么
webserver/index-inject 的事件名或签名 插件打一条警告,不带动画正常启动;显示原生启动页
webServer 服务(路由、素材服务) 不提供设置页入口;Harness 其余部分完全不受影响
设置页插槽 API(settings.section) 设置入口消失,不抛异常
运行期其它任何意外 每条失败路径都回落到原生启动页——覆盖层永远不允许阻塞启动

声明的兼容范围(engines.dsh,并镜像一份到 dsh.engines,让插件管理器和市场从 任一位置都能读到)是 >=0.2.0。插件运行时不依赖任何 npm 包,浏览器半边只从宿主的模块表 require('react')——不存在"随包打进了某个会和内核版本脱节的库"这种隐患。

启动日志会同时写明插件版本和(能读到时)宿主内核版本。万一哪次升级把动画弄没了, 第一眼就该看那一行。

环境要求

  • DeepSeek Harness 0.2.0+(Web 界面)
  • Node.js ≥ 22.12.0(跟随 Harness 自带的运行时即可)

插件运行时不依赖任何 npm 包,安装时也不需要构建——纯 ESM + 静态素材。

卸载

dsh plugin --profile <你的 profile> remove dsh-plugin-startup-animation

$DSH_HOME/startup-animation-media/ 里上传的素材是你自己的数据,插件不会替你删。

开发

node tools/preflight.mjs             # 全套检查 + 出发布目录
node selftest.mjs                    # 纯函数 + HTTP 语义测试
node tools/boot-runtime.mjs          # boot.js 运行时行为测试(DOM 垫片 + 可控时钟)
node tools/client-test.mjs           # 设置页行为测试(React 垫片)
node tools/boot-css-test.mjs         # 开机动画样式测试(真浏览器)
node tools/host-smoke.mjs            # 用真实路由处理器跑一遍 HTTP
node tools/make-thumbs.mjs           # 重新生成列表缩略图(需要 ffmpeg)
node tools/make-posters.mjs          # 重新生成视频卡片封面(需要浏览器)
node tools/optimize-builtin.mjs      # 重新生成 faststart 变体(需要 ffmpeg)

许可证

MIT —— 见 LICENSE。

内置素材仅用于演示;商业再分发前请先看仓库里的 ASSETS.md 确认每个文件的来源。

—/ 5

No ratings yet

Verified DSH bundle

Commit 941dc6425832

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout