dsh-reduce-effects:按分类关闭 DSH Web 前端特效

前言

DSH Web 界面里,动画、毛玻璃、阴影和渐变分散在 CSS 与 JS 各处。系统自带的「减少动态效果」只能走一条总路径,没法单独保留进度条动画、又关掉侧栏标题 hover 滚动这类细粒度需求。长时间开着 Web 客户端时,这些特效也会持续占用浏览器合成与绘制资源。

下面介绍社区插件 dsh-reduce-effects(维护者 azazo1):在插件页提供配置卡片,按分类开关特效,默认与原生 DSH 一致,关掉哪一项就停哪一项,另有一个总闸可一次关闭全部。

这是什么

dsh-reduce-effects 是 DeepSeek Harness(DSH)的 客户端(Web) 插件:给 DSH Web 前端增加插件页配置卡片,用来关闭动画、毛玻璃、阴影、渐变等特效,降低浏览器渲染负担。

前端特效在 DSH 里大致分三类:CSS 动画与过渡、菜单与浮层的毛玻璃、以及 DSH 自带的 JS 动效(平滑翻页、跟随滚动等;仅在系统开启「减少动态效果」时走即时路径)。本插件把这些拆成多个分类,每个分类一个开关;web 与 desktop 两个 profile 跑同一套 Web 应用,同一份包在两边通用。

插件以当前 DSH 进程权限运行;安装前建议在 GitHub 查看源码与 MIT 许可证。社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系。

核心功能

配置卡片与总闸

打开 插件 > dsh-reduce-effects 卡片。卡片内有一个总闸和一组分类开关;草稿只留在卡片里,点击「保存」才写入当前 profile 的 patch 层并立即生效。所有开关默认打开,界面与未装插件时一致。

总闸只决定各分类是否生效,不改写各分类自己的值:关闭总闸时,分类开关变灰并保留原值;重新打开总闸后,分类立刻回到原来的状态。

分类开关(关闭后会失去的效果)

开关 关掉之后 代价
全部特效 一次停掉下面每个分类 分项开关保留各自的值,但重新打开总闸前不可点
动画与过渡 装饰性动画停掉,过渡压缩到 1 毫秒 入场动画直接落到终态
加载与进度动画 进度条与加载指示器的旋转、脉冲 界面看起来像卡住,看不出是否仍在运行
文字流光 运行中节点文字扫动高光,以及思考行与技能行整行扫光 运行中节点只剩静止文字;关「渐变背景」或「动画与过渡」也会顺带收掉这两道光
毛玻璃与背景模糊 菜单、浮层的 backdrop blur 半透明面板后直接露出背后内容
平滑滚动 滚动与跳转的缓动 长列表跳转更生硬
标题 hover 滚动 侧栏会话标题悬停时的逐帧横向拖动 被省略的标题只能靠悬停卡片或改名看全
阴影与超椭圆圆角 面板阴影、文字阴影、超椭圆圆角 面板 0.5px 描边由阴影绘制,边界会变淡
渐变背景 渐变底纹 与图片共用的 background-image 装饰也会消失;渐变文字退回当前文字色;会话底部渐隐底板退回纯主题底色
JS 动效 DSH 自带 JS 动效的即时路径 影响所有读取 prefers-reduced-motion 的代码(含其他插件)

想单独保留进度条动画时,只要不关「加载与进度动画」即可。

实现要点(便于理解行为)

  • 样式覆盖:组件类名是构建期哈希的,覆盖规则用通用选择器加 !important,注入带 data-plugin-css 的 <style>,卸载时移除。
  • 过渡:时长压到 1 毫秒而非删除,仍触发 transitionend,依赖它收尾的逻辑不受影响。
  • 动画:部分场景用 document.getAnimations() 与 animationstart 按关键帧名筛选;加载类与装饰类可分开控制。
  • JS 动效:关闭时覆盖 window.matchMedia,让 prefers-reduced-motion 查询返回 reduce;打开或卸载时恢复。

配置为 volatile 的插件 Config,entry id 为 dsh-reduce-effects,落在 profile 的 patch 层。

安装与启用

引擎要求 @deepseek-ai/dsh-* 不低于 0.2.0-rc.1,且仍在 0.2.x(peerDependencies:>=0.2.0-rc.1 <0.3.0)。更早的引擎线装不上当前版本。

Web 端(web profile)

任选一种安装方式:

dsh plugin --profile web add azazo1/dsh-reduce-effects

npm 包名:

dsh plugin --profile web add dsh-reduce-effects

固定版本(README 示例):

dsh plugin --profile web add azazo1/dsh-reduce-effects#v0.1.1

GitHub Release 预构建包(安装时跳过 allowBuilds):

dsh plugin --profile web add https://github.com/azazo1/dsh-reduce-effects/releases/latest/download/dsh-reduce-effects.tgz

本地目录:

dsh plugin --profile web add ./dsh-reduce-effects

装完后重启 dsh web,浏览器刷新一次页面。

桌面端(desktop profile)

Electron 应用独占管理 desktop profile,dsh plugin 会拒绝 --profile desktop。在应用内插件管理器的安装入口填写上面对应的包名或 tarball 地址;装上后重启应用并刷新窗口。

典型用法

  1. 按上一节命令安装并重启 Web 或桌面客户端。
  2. 打开 插件,进入 dsh-reduce-effects 配置卡片。
  3. 按需关闭分类开关,或先关「全部特效」再逐项微调(总闸关闭时分项不可点,打开总闸后分项恢复关闭前的值)。
  4. 点击 保存,配置写入当前 profile 并立即生效。

若关闭了「JS 动效」,已渲染的界面有时需要再刷新一次才能完全对齐。

适用场景与注意

适合谁

  • 希望在低配机器或远程桌面里减轻 DSH Web 合成开销的开发者。
  • 需要比系统「减少动态效果」更细粒度控制(例如保留加载动画、关掉毛玻璃)的用户。

已知限制

  • 与系统「减少动态效果」是叠加关系,插件不修改系统设置。
  • 只覆盖 Web 客户端;桌面端窗口材质(macOS vibrancy、Windows acrylic)由系统与 Electron 负责。
  • 关闭「JS 动效」会影响所有读取 prefers-reduced-motion 的代码,包括其他插件。
  • DSH 前端样式随版本变化,新出现的特效类别需在本插件中补充规则。

插件当前 npm 版本为 0.2.0(以仓库 package.json 为准)。

链接

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

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

Xiaoye