前言¶
DeepSeek Harness(dsh)的 Web 界面里有多处 CSS 与 JS 动效,例如「深度求索中…」状态行的渐变闪烁、命令行扫光、轮次标记等。当操作系统或浏览器上报 prefers-reduced-motion: reduce 时,dsh 会在样式表与部分渲染逻辑里尊重该无障碍偏好,动效会被关闭或走静态分支,界面看起来像「光晕停住不动」。
若你本机因其它原因开启了系统级「减少动态效果」,但仍希望在 dsh 工作站里看到完整 UI 动画,可以单独用插件覆盖这一偏好,而不必改 dsh 源码或 node_modules。下面介绍社区插件 dsh-force-motion(维护者 maxesisnclaw,分类:趣味换装)。
这是什么¶
dsh-force-motion 是一个面向 dsh Web profile 的 Cordis 补丁插件:在服务端注入的 index 页面里运行一小段脚本,让 prefers-reduced-motion 不再生效,从而恢复 dsh 自带的界面动画。它不修改 node_modules,也不依赖 dsh 内部 hashed 类名或 keyframe 名称,README 说明其设计意图是在 dsh 升级后仍能继续工作。
dsh 为何会关掉动效¶
README 归纳了两处机制:
- CSS:多个带动画的选择器带有
@media (prefers-reduced-motion: reduce)守卫,在 reduce 模式下将animation设为none等;涉及状态 shimmer、命令行 sweep、turn mark、推理行 sweep 与 retry shimmer 等约七条规则。 - JS:部分 renderer 通过
matchMedia("(prefers-reduced-motion: reduce)").matches走静态分支。
在上述环境下,即使 dsh 本身定义了动画,用户侧也会看到静态界面。
核心功能¶
插件注入脚本后主要做两件事(均来自官方 README):
- 包装
matchMedia:使(prefers-reduced-motion: reduce)查询不再返回匹配。 - 清理同源样式表中的 reduced-motion 规则:从每个同源 stylesheet 中删除
prefers-reduced-motion相关规则;当页面新增<style>/<link>节点时会重新执行,让基础动画声明重新生效。
结果是 dsh Web UI 中的动画会照常播放。
安装与启用¶
插件以当前 dsh 进程权限运行;安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。
官方命令安装¶
针对 Web profile,使用资料中的安装命令:
dsh plugin --profile web add github:maxesisnclaw/dsh-force-motion
手动安装¶
将插件目录复制到 <dsh-install>/plugins/,并在 $DSH_HOME/cordis.patch.yml 中追加:
- insert:
- id: force-motion
name: /absolute/path/to/dsh-force-motion/index.js
完成后重启 dsh。
验证与自测¶
README 给出的检查方式:
- 模型思考时,状态行应出现 shimmer,而不是静止渐变。
- 浏览器控制台:
matchMedia('(prefers-reduced-motion: reduce)').matches应为false;插件会输出日志dsh-force-motion: reduced-motion suppression neutralised。 - 在插件目录执行单元测试:
npm test(对应node --test test/*.test.mjs)。
适用场景与注意¶
适合:工作站由本人使用,且明确希望保留 dsh 界面动效;系统或浏览器已开启 reduced-motion,但原因与 dsh 使用无关。
权衡:插件刻意覆盖无障碍相关的 reduced-motion 偏好。若需恢复 dsh 默认行为,可卸载插件,或在应用启动前设置 window.__dshForceMotion = false。
DeepSeek Harness 生态强调「一切皆插件」;插件目录页托管于社区站点 SkillHub,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
结尾¶
dsh-force-motion 通过前端层面的 matchMedia 包装与同源样式表规则清理,在不动 dsh 核心包的前提下,让 Web UI 动画在 reduced-motion 环境下继续播放。需要时可从目录页了解分类与简介,并从 GitHub 获取安装说明与源码。
- 目录页:https://www.skillhub.cn/plugins/maxesisnclaw/dsh-force-motion
- GitHub:https://github.com/maxesisnclaw/dsh-force-motion