dsh-motion:为 DSH Web 补弹窗与浮层动效

前言

DeepSeek Harness(DSH)的 Web 端里,菜单、命令面板、设置窗、悬浮提示等浮层默认是瞬时出现的。长时间盯着界面开发或调试时,这种「啪一下弹出来」的反馈和桌面应用里常见的过渡动效差距很明显;若你已经在用壁纸、玻璃材质类补丁,弹窗材质和全站其它面不一致也会更扎眼。

dsh-motion 是维护者 picklerick422 发布的 client-only 插件:只在前端注入动效与可选材质策略,不修改 DSH 官方文件。下面介绍它解决什么问题、能做什么,以及如何安装与调参。

这是什么

插件全名 dsh-motion,归类为社区目录里的「趣味换装」,当前 GitHub 星标为 1。简介(与 README 一致):为 DeepSeek Harness 提供 Liquid-glass 风格的弹窗与浮层动效——近距弹窗弹簧 clip 形变入场、悬浮提示连贯气泡、图片放大 FLIP,以及可实时预览的设置页。

只在 DSH Web profile 生效,无宿主服务依赖;卸载或重载后行内样式与标记会还原。

核心功能

近距与远距弹窗

近距浮层(菜单、列表、命令面板、模型选择器等)从触发按钮位置「长」出来:clip-path 矩形形变、非均匀缩放与位移组合;默认 438ms 弹簧(response 280ms、过冲约 10.7%,过冲可在 0–25% 调节)。首帧可见尺寸对齐触发按钮实测大小。

远距弹窗(设置窗、确认框)280ms 自下方 60px 浮出并淡入,无缩放;退场 250ms,规格与官方设置窗一致。

悬浮提示与材质

悬浮提示走 204ms 快速档、无过冲,与菜单共用同一套玻璃表现。材质默认完全跟随后台(wallpaper / 玻璃补丁 / 主题 token);也可在设置里选「照抄设置窗」或实验性液态折射,插件不自行写死颜色,只用宿主 --dsw-* token。

连贯气泡与图片放大

会话行悬浮预览卡换行、上下文洞察在小格之间切换时,同一气泡 140ms 滑到新位置并即时换内容,而不是「旧气泡缩小消失 + 新气泡再出现」。

点击草稿区或消息里的缩略图,用 FLIP 280ms 放大到原图;关闭时反向收回(含 Escape 与遮罩),长时间看图后再关行为一致。

退场与性能、无障碍

卸载插件瞬间会克隆「出现态」做反向液态收回(并发上限 3,超出则直接消失)。同时入场动画默认预算 5 个,超出降级为纯 opacity;流式输出、长任务或帧率饱和时也会自动降级,压力消失后恢复。后台标签与视口外零动画。

跟随 prefers-reduced-motion(几何动画让路,保留极短淡入);设置页可显式覆盖。

设置页与控制台

设置入口:设置 → 弹窗动效(侧栏往下滚)。提供近距 / 远距 / 悬浮提示三段实时预览、4 个动效预设(标准 / 轻柔 / 弹跳 / 迅捷)、6 个几何旋钮、玻璃材质与折叠的高级项(降级、动画上限、调试等)。改动写入 localStorage['dsh.motion.v1'],总开关关闭后弹窗恢复官方原样(材质策略不受影响)。

控制台可用同一套 API:

__dshMotion.set({ response: 320, overshoot: 6, warp: 0.18 })
__dshMotion.stats()

README 记载验证环境为 dsh 0.2.1-rc.2、profile web、Chrome 138(headless 回归 30/30)。

安装与启用

插件以当前 dsh 进程权限运行;安装前建议自行查看仓库源码与 MIT 许可证。社区目录(skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,市场收录以 awesome-dsh-plugin 等社区流程为准。

方式 A:dsh-market(推荐)

已向 awesome-dsh-plugin 提交收录;合并后可在 DSH 插件市场 → Discover 搜索 dsh-motion 一键安装。

方式 B:从 GitHub 安装

dsh plugin --profile web add github:picklerick422/dsh-motion

将 "dsh-motion" 加入 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组,重启 dsh web:

{
  "dsh": {
    "profile": {
      "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-motion"]
    }
  }
}

方式 C:Release 预构建包

curl -LO https://github.com/picklerick422/dsh-motion/releases/latest/download/dsh-motion.tgz
dsh plugin --profile web add ./dsh-motion.tgz

同样把 "dsh-motion" 写进 bundles 后重启 dsh web。

典型用法

  1. 完成上述安装并重启 Web 端后,打开 设置 → 弹窗动效。
  2. 用页签切换要预览的场景(近距弹窗 / 远距弹窗 / 悬浮提示);点预览区虚线框或气泡可重播。
  3. 需要看清几何时开启 慢放 4×;拖动任一几何滑杆,松手后预览自动重播。
  4. 按口味选动效预设或微调玻璃材质;通用设置里可开运行诊断、恢复默认。
  5. 若需脚本化调参,在浏览器控制台调用 __dshMotion.set(...) / __dshMotion.stats()。

适用场景与注意

适合长期在 DSH Web 上工作、希望弹窗入场/退场、tooltip 与图片灯箱更连贯,且愿意在 client-only 插件前提下接受社区维护节奏的用户。与第三方玻璃 / 壁纸补丁可共存;不装这些补丁时动效仍可正常播放。

边界要点:仅 Web 端;不改官方文件;第三方补丁卸载后插件动效逻辑仍独立。性能敏感场景下留意自动降级行为,避免误以为动效「失效」。

结尾

dsh-motion 把 DSH 默认瞬时弹窗补成有物理感的过渡,并把材质默认绑在宿主 token 上,避免动效和「换装」补丁各画各的。安装与 bundle 配置以 README 为准;问题与版本见 GitHub Issues / Releases。

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

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

Xiaoye