前言¶
DSH(DeepSeek Harness)的思路是「一切皆插件」,界面侧也开放了 theme 服务,插件可以往 Web UI 后面垫东西。但实际去看社区目录里的素材类插件,多数还是改配色、改图标或者加背景图,真正做动态氛围的很少,做了的也往往只是在背景层上循环播放一段动画。
dsh-firefly-forest 走的是另一个方向:它不在背景图上做文章,而是在界面后面跑一层 canvas 场景,用夏夜灌木林、呼吸明灭的萤火虫、被光点照亮轮廓的猫头鹰和飞蛾来填充界面背后的空间。对于想让自己常驻的 DSH 工作环境有点辨识度、又不希望干扰正常阅读和操作的人,这是一个成本很低的选择。下面介绍这个插件的定位、功能、安装方式和面板配置。
这是什么¶
dsh-firefly-forest 是一个 DSH(DeepSeek Harness)主题类插件,作者 weixiurui,分类归在「趣味换装」,当前版本 0.2.2,许可证 MIT,仓库星标为 0。
它解决的问题很具体:DSH Web UI 的默认界面相对素净,插件作者用一层全窗口 canvas 垫在界面后面,模拟夏夜灌木林的环境背景,让界面在视觉上有个「背后有东西在动」的层次,同时不影响内容区域的交互。
一句话定位:环境背景类插件,不是生产力工具,也不改变任何 DSH 的功能逻辑。
核心功能¶
README 里把效果拆成了几个明确的点,可以照原文核对:
- 暗色灌木林与草叶剪影,有薄雾和极弱的月光,色温随主题在白天/夜晚之间切换;
- 草叶尖上呼吸明灭的萤火虫,以及缓慢飞舞、偶尔闪亮的光点;
- 偶尔一只萤火虫飞近树枝时,先点出两点眼睛反光,再照亮猫头鹰的轮廓;
- 叶子上的蛾子也会被路过的光点带出来;
- 全窗口 canvas 垫在界面后面,不拦截鼠标;约 30fps,页面隐藏时暂停,并且尊重系统的「减少动态效果」设置;
- 在支持工作台的客户端里会多一个「萤火森林」面板;
- 关闭开关或卸载插件即恢复原界面;插件设置存在浏览器 localStorage 中,不联网。
需要留意的一点:交互层完全不接管鼠标,也就是说这层动画不会挡住你点按钮、选文本,这是它和「背景图素材包」最主要的区别。
安装与启用¶
README 给了两种装法。
第一种是在 DSH Desktop 的 设置 → 插件 里搜索「萤火森林」安装。这条路径依赖于插件已经被收录进市场,README 原文也注明了这一点。
第二种是命令行从本地包安装,适合直接消费仓库 Release 里的预构建包:
# 从本仓库 Release 里的预构建包安装
dsh plugin --profile web add ./dsh-firefly-forest-0.2.2.tgz
装好后刷新一次窗口;Desktop 端需要重启 Harness 才会生效。
注意这里给的是 --profile web 加上本地 .tgz 包的路径,不是 dsh plugin add github:owner/repo 的形式。如果你手里只有源码仓库,需要先自行打包再按上面的命令安装。
面板配置¶
在提供了 desktopWorkbenches 的客户端(即 DSH Desktop)里,装完会多出一个「萤火森林」面板。面板里可调的项目,据 README:
- 总开关
- 萤火虫亮度
- 萤火虫密度
- 猫头鹰出现频率
- 界面透明化
- 叠加模式
- 季节
- 萤火虫跟随鼠标
- 环境音与音量
多数设置改完即生效。界面透明化和叠加模式这两项影响的是动画层和 UI 内容的叠加关系,需要按自己的界面配色试一下才知道合不合适。环境音与音量是独立开关,不想有声音时可以直接关掉。
兼容性¶
- 需要带
theme服务的 dsh Web 宿主,官方 dsh web 与基于它的桌面客户端均可。 - 「萤火森林」工作台面板只在提供
desktopWorkbenches的客户端(DSH Desktop)中出现;没有该服务的客户端上,插件退化为纯背景,不影响加载。
也就是说,如果你只跑 Web 宿主,背景动画仍然可用,只是没有面板,所有参数要走默认值或历史 localStorage 设置。
运行要求与安全注意¶
插件以当前 DSH 进程的权限运行,具备与该进程相同的文件和指令访问能力。
因此需要特别强调一点:安装前应检查插件来源,并阅读仓库源码。许可证方面,仓库标注为 MIT,这是相对宽松的开源许可,但 MIT 本身并不免除你阅读和理解代码的义务。作者方面信息较少——仓库星标为 0,说明目前没有形成社区规模的使用和讨论,判断风险时可以把这一点考虑进去。
另外,这个插件本身不联网,设置只保存在本地浏览器 localStorage,这是它的功能约束;但「不联网」是它的行为说明,不代表安装过程中没有额外风险。
开发与打包(给想改的人)¶
README 里保留了四条开发路径,适合想自己调效果或换素材的人:
- 客户端入口在
lib/client.js,单文件,走window.__ModuleLoader__.load加载; - 服务端入口在
dsh/index.js,是个空插件,作用只是把 bundle 挂进插件树; - 想快速看效果,直接用浏览器打开
preview/index.html即可预览; - 打包用
pnpm pack,产物通过 DSH Desktop 的本地安装流程放进 profile。
看这套结构可以确认一件事:这个插件不处理任何服务端逻辑,改动也基本集中在客户端的那个单文件里。
结尾¶
作为趣味换装类插件,dsh-firefly-forest 提供的是一个很窄但很具体的体验:给 DSH Web UI 后面垫一层约 30fps 的萤火森林动画,不拦截鼠标,页面隐藏时暂停,关开关或卸载即恢复原界面。它不参与 DSH 的核心能力,也不改变工作流,适合想给常驻界面留一点氛围、同时不希望动画干扰使用的人。能提供基于 theme 服务的 dsh Web 宿主均可用,带 desktopWorkbenches 的客户端额外有面板可调。
目录页:https://www.skillhub.cn/plugins/weixiurui/dsh-firefly-forest
GitHub:https://github.com/weixiurui/dsh-firefly-forest