dsh-shark-bg
在 DeepSeek Harness Web 界面背景里游动的 ASCII 鲨鱼。
一组鲨鱼在海水里巡游、追逐、捕食小鱼,全部用等宽字符光栅化绘制,作为整个界面的背景层运行。
效果
- 8 种鲨鱼(经典鲨、锤头鲨、大锤头鲨、虎鲨、斑马鲨、灰鲭鲨、长尾鲨、护士鲨)按体型缩放,各自巡游与捕食,默认 6 条,数量可在设置里调整
- 上百条小鱼按 Reynolds boids 集群,带 Couzin 盲区、警报传染和喷泉式逃逸
- 鲨鱼有波动脊柱、转向侧倾、饥饿与进食状态
- 无散度海流场驱动整体漂移
- 深浅色主题自动适配,窗口缩放自适应,页面隐藏时暂停
- 设置页可调遮罩、数量、体型、密度、游速与网格浓度
建议深色模式食用更佳。 深海的黑底配浅色字符,鲨鱼的轮廓、斑点与尾流最清楚;浅色模式也能用,只是海水更接近磨砂玻璃,观感偏清淡。
截图
浅色模式:

深色模式:

控制面板(设置 → 鲨鱼背景):

安装
dsh plugin add https://github.com/iemgnod/dsh-shark-bg
或在插件市场(dsh-market)的主题 Tab 里一键安装。
手动安装:把仓库放进 ~/.dsh/profiles/<profile>/node_modules/dsh-shark-bg,并在该 profile 的 package.json 里把 dsh-shark-bg 加入 dsh.profile.bundles。
设置
安装后在 设置 → 鲨鱼背景 里可以直接调整,改动即时生效,不需要刷新页面:
| 项目 | 说明 |
|---|---|
| 启用背景 | 关掉后界面恢复默认外观,设置会保留 |
| 界面遮罩 | 越大海水越淡、文字越清楚;越小鲨鱼越明显(默认 40%) |
| 输入区遮罩 | 底部输入框与聊天流交界处的浓度 |
| 鲨鱼数量 | 0 表示只留海水与鱼群;默认 6 条,超过 8 条后循环复用同一批种类 |
| 鲨鱼体型 | 相对默认体长的倍率 |
| 鱼群密度 | 0 表示没有小鱼,只有鲨鱼;45 与原始版本相当 |
| 游速 | 整体时间流速,1 是原始速度 |
| 网格浓度 | 背景网格线的明显程度,0 表示完全去掉 |
| 静止画面 | 不播放动画,只保留一帧,省电也方便截图 |
设置保存在 profile 目录下的 shark-bg.json,手动编辑该文件同样生效(重启后读取)。
底层仍是两个 CSS 变量,需要脚本化时可以自己改:
html { --shark-veil: 40%; --shark-veil-strong: 88%; }
实现要点
界面背景要透出来,必须解决一个叠加问题:DSH 的外壳有多层不透明容器,每层都加半透明遮罩会相乘叠加——两层 58% 遮罩就只剩不到 18% 的海水可见。
插件因此不硬编码类名(DSH 的类名带哈希前缀,随版本变化),而是在运行时探测:递归扫描 #root 下的元素,实测哪个又大又真的不透明,只给最外层那一个加遮罩,嵌套在里面的同类元素直接清成透明。菜单、弹窗、toast 等悬浮层全部跳过,保持实心。
参考
鲸群、鲨鱼形体与 ASCII 光栅化思路参考自 stackedlol/ascii-sharks(TypeScript 版海洋与 ASCII 渲染引擎)。本插件把它移植为 DSH 客户端插件,并做了这些改动:作为背景层而非独立画布、按 DSH 主题反色、运行时探测遮罩、提供设置页。
许可
MIT
No comments yet. Be the first to write one.