dsh-ascii-sharks:整页 ASCII 海洋背景与主栏毛玻璃

前言

DeepSeek Harness(DSH)的 Web 界面默认是纯色底,长时间盯会话时背景缺少层次。社区里「趣味换装」类插件会在不改动对话逻辑的前提下,给客户端加一层视觉装饰。下面介绍 dsh-ascii-sharks:由维护者 Timelk 发布,在整页透明 canvas 上跑 boid 鱼群与追猎鲨鱼,主内容区叠一层可调的羽化毛玻璃,文字照常阅读,水面在玻璃后面缓慢运动。

这是什么

dsh-ascii-sharks 是 DSH 的 Client 插件(npm 包名同插件 id)。它把视口大小的 ASCII 海洋挂在 body 最底层,应用框架浮在其上;模拟与字符渲染核心来自上游项目 ascii-sharks(MIT),本仓库负责 dsh 集成:主题换墨、页面半透明 token、主栏 backdrop-filter 与设置页参数。许可证为 MIT;当前 package 版本为 1.0.3(README 中 GitHub Release 安装示例指向 v1.0.2 tar 包,以你实际安装来源为准)。

目录页:skillhub.cn/plugins/Timelk/dsh-ascii-sharks
源码:github.com/Timelk/dsh-ascii-sharks

核心功能

已核实的能力如下,均来自项目 README。

  • 整页背景:透明 canvas 固定在视口(z-index: 0、pointer-events: none),不是小面板 widget。
  • 跟随主题换墨:浅色用深墨、深色用浅墨,监听 theme/change 实时切换。
  • 主栏毛玻璃:对话主栏 backdrop-filter + 半透明底衬,四边羽化遮罩,鲨鱼在玻璃后呈柔光斑块。
  • 环面海洋:鲨鱼与鱼群越界从对侧进入;鱼群在接缝前两格淡出。
  • 交互:可选鼠标惊扰鱼群、点击页面炸水花;鱼群转向限速,字符随航向变为 - \ | /。
  • 可调参数:字符尺寸 4–14px、8 种鲨鱼多选、数量与密度、游动速度、背景浓度、玻璃模糊等,设置项即时生效。
  • 省电:prefers-reduced-motion 下静帧;页面不可见时浏览器暂停 requestAnimationFrame。

安装与启用

DSH 生态里插件通常通过 plugin_manager 的 install_bundle 安装;README 未给出 dsh plugin add github:... 形式,下面只用文档原文命令。

1. npm(推荐)

在 dsh 里让 agent 调用 plugin_manager,或直接执行等价 JSON:

{ "action": "install_bundle", "target": "dsh-ascii-sharks" }

2. GitHub Release

{
  "action": "install_bundle",
  "target": "https://codeload.github.com/Timelk/dsh-ascii-sharks/tar.gz/refs/tags/v1.0.2"
}

安装后刷新页面;在 设置 → ASCII 鲨鱼 中调整参数。

环境要求

  • dsh >=0.1.5-rc.1(Web profile)
  • Node ^22.19.0 || >=24.0.0(包元数据中的 engines)
  • 浏览器需支持 backdrop-filter 与 mask-composite(README 写明 Chrome/Edge 120+、Safari 17.4+)

典型用法

  1. 按上一节安装并刷新。
  2. 打开 设置 → ASCII 鲨鱼,按需开关「显示海洋」、拖动背景浓度、主内容毛玻璃、字符尺寸、鲨鱼种类与数量、鱼群密度、游动速度、鼠标惊扰、点击水花等。
  3. 配置持久化在浏览器 localStorage 键 dsh.ascii-sharks.v2;改动滑杆会直接进入模拟引擎,无需重启 dsh。

默认项摘要(完整表格见 README):

设置 默认 说明
显示海洋 开 关闭则恢复不透明页面
背景浓度 90% 整层水面不透明度 8–100%
主内容毛玻璃 8px 0 关闭,最大 32px
字符尺寸 6px 4–14px
鲨鱼数量 2 1–6,种类至少保留一种
鱼群密度 / 游动速度 100% 相对窗口与基准速率

在空白会话中可看到整页 ASCII 海洋预览效果;项目 docs/ 下有静态图与动图说明。

工作原理(简述)

插件在 Host 层通过 cordis.patch.yml 注册 bundle,在浏览器层以 immediately: true 的 web Client 注入对话与设置 UI 模块。渲染层:body 首位 fixed canvas;ctx.theme.overrideTokens 把页面背景 token 调成半透明;从 [data-composer-dock] 向上定位对话列并内联玻璃样式,面板切换时用防抖 MutationObserver 补回。模拟在 World(boids、鲨鱼追猎、环面)与 AsciiRenderer 中完成,参数经 localStorage store 订阅到 engine.setOptions()。

适用场景与注意

适合谁:希望在 DSH Web 端保留可读性的前提下,给会话界面加动态 ASCII 背景、并愿意在设置里微调性能与密度的用户。

应注意:

  • 插件 Client 代码在浏览器侧运行,会改 DOM、canvas 与 localStorage;安装前建议阅读 源码与 LICENSE,并知悉模拟部分归属见 THIRD_PARTY_NOTICES.md。
  • 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」,本包仅为社区贡献之一。
  • 低性能设备或不需要动效时,可关闭「显示海洋」或依赖系统的 reduced-motion;毛玻璃与大面积 canvas 仍可能增加 GPU 负担。

结尾

dsh-ascii-sharks 把 ascii-sharks 的 boid 与鲨鱼渲染搬进 DSH:整页透明海洋、主题感知墨色、主栏羽化毛玻璃,参数集中在设置页。若需要安装入口与 issue,见 GitHub 仓库 与 SkillHub 目录页。视觉模拟的上游功劳在 stackedlol/ascii-sharks,README 也建议为原项目点 star。

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

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

小夜