deepseek-harness-background
DSH Web 自定义背景插件:上传本地图片或粘贴图片链接作为全界面背景,可调不透明度、明暗自适应遮罩、面板透明度、毛玻璃与壁纸模糊,实时预览、设置持久化;另附可选的 DeepSeek 官网风格会话时间线导航轨,支持重点书签与快速跳转。
安装
dsh plugin --profile web add deepseek-harness-background
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/banner-zh-dark.svg">
<img src="docs/banner-zh.svg" alt="DeepSeek Harness Background" width="720">
</picture>
</p>
DeepSeek Harness Background












[English](README.md) | 中文
一个 DeepSeek Harness Web GUI(dsh web)的自定义背景图片插件:上传一张本地图片,或粘贴一个图片链接,把它绘制在整个应用界面背后,并可调节不透明度、可读性遮罩、面板透明与毛玻璃模糊 —— 全部在设置面板内实时预览、松手自动保存。
外观(固定壁纸层 + 主题自适应遮罩 + 由 --dsw-* 设计 token 驱动的半透明玻璃面板)借鉴了社区 dsh-wallpaper-engine 的实现。
<p align="center">
<img src="docs/demo-zh.svg" alt="演示:上传壁纸后全站变毛玻璃,并在会话时间线的轮次之间平滑跳转">
</p>
截图
首页 · <img src="docs/images/home.jpg" alt="首页上的自定义背景" width="640">
会话界面 · <img src="docs/images/conversation.jpg" alt="会话背后的自定义背景" width="640">
设置界面 · <img src="docs/images/settings.jpg" alt="带实时预览的背景设置行" width="640">
功能
- 本地上传 —— 从电脑选择 JPG / PNG / WebP / GIF 图片;插件存入 harness home 目录,经同源路由提供(仅当声明的 MIME、探测到的文件签名与扩展名三者一致才被接受)。
- 粘贴 URL —— 输入
http(s)图片链接后回车即可。 - 面板内实时预览 —— 设置行顶部有预览卡:图片 + 遮罩 + 毛玻璃气泡;拖动任意滑块即时重绘,所见即所存。预览卡比例跟随当前窗口视口,卡片里裁出的就是真实背景裁出的。
- 阻尼滑块 —— 比例类滑块按 5% 步进、模糊类按 1/2px 步进吸附;拖动过程只改画面,松手才保存(每次手势一次写入,不再抖动)。
- 五个调节项 —— 壁纸不透明度、可读性遮罩、面板不透明度、毛玻璃模糊、壁纸模糊。
- 填充方式与取景 ——
cover(铺满、裁剪)或contain(完整、留白)。铺满时预览卡是一块取景面:可沿图片多出来的那一轴移动图片(左右铺满时上下移、上下铺满时左右移),悬停显示四向移动光标,拖动即可取景,方向键微调(Shift 粗调),双击或「重置位置」回中。contain完整留白、不提供位移;两种方式下预览卡比例都跟随窗口。 - 主题自适应遮罩 —— 浅色主题用白色纱帘(把图片提亮保持深色文字对比度),深色主题自动换成黑色纱帘(压暗图片保持浅色文字对比度)。
- 毛玻璃(白名单制) —— 启用背景后,只有以小卡片/小按钮形态悬浮在壁纸上的表面才会变成半透明玻璃(顶部白色高光渐变 +
backdrop-filter):输入框卡片与消息气泡、代码块 / 终端 / diff / 工具 IO 卡 / 技能与 MCP 调用卡与行内代码、agent 任务条及其接管面板(审批 / 提问 / 计划评审)、三个铬件按钮(新会话、输入框加号、回到底部)、「加载更早」历史按钮、标题栏展开的子代理列表面板、侧栏构建徽标,以及首页右上角的「预览版」徽标——每块玻璃面都带完整配方(填充 + 高光 + 模糊),绝无"只透明不磨砂"的残缺面。阅读型表面——对话框、设置界面、菜单、Tooltip、Toast、悬停填充与所有强调色(发送键保持品牌蓝)——一律保留官方不透明样式,保证可读性(唯一例外:时间线导航轨的悬浮预览卡,它是画在壁纸上的导航铬件,加入玻璃配方)。模糊半径由「毛玻璃模糊」滑块驱动;「面板不透明度」调至 100% 时白名单表面也恢复官方原样。 - 第三方毛玻璃接口 —— 内置毛玻璃注册表(
window.__DSH_BACKGROUND_GLASS__全局 +dsh-background-glass:ready事件):任何插件都可把自家面板的选择器注册进来,套上与内置表面完全一致的配方——token模式为已使用被覆盖--dsw-*填充的面板补齐高光+模糊链,fill模式连填充一并接管;规则统一挂在data-dsh-bg-glass门控下随玻璃自动开关。消费方零依赖、未安装本插件时优雅降级,本插件卸载时整桥拆除。详见 [docs/GLASS_API.zh.md](docs/GLASS_API.zh.md)。 - 会话时间线 —— 长会话右缘的 DeepSeek 官网风格轮次导航轨:每一轮一个刻度,悬停或聚焦时预览该轮的问题。 本插件不渲染任何自己的界面——从 dsh 0.1.2-rc.1 起内核自带官方导航轨,插件只增强其行为(按导航轨自己发布的度量做能力探测,绝不比较版本号): 对已加载轮次的点击由官方的瞬时跳转改为平滑滑动(缓入缓出、按距离定时长、读者一滚动立刻接管、
prefers-reduced-motion下直接定位); 官方轨的全量阶梯(turnOutline大纲 + 已加载窗口)中,未加载轮次的刻度交给内核自己的穿越加载跳转,且当内核跳转仍在翻页(aria-busy脉冲)时插件整体让位; 官方悬浮预览卡是实心底,在壁纸门控下改为与输入卡同配方的毛玻璃(受「毛玻璃模糊」滑块驱动); 刻度列加上 DeepSeek 网页版式的上下渐隐(仅绘制层,不影响命中测试)。 导航轨的高亮状态仍归内核自己维护——滑动走的是真实滚动容器,官方滚动处理会持续更新活动轮次与持久化滚动位置; 滑动前都会先解除宿主的底部跟随状态(流式增长、轮次结束重渲染都不会把视图拽回底部)。用设置行里的时间线开关可关闭。 - 持久化到官方设置文档 —— 跨重启保留:dsh ≤ 0.1.6 存于
$DSH_HOME/settings.yaml的ui-background命名空间,dsh 0.1.7 起存于当前 profile patch 中本插件的 entry(旧版 dsh 写下的段会一次性迁移过来,并在设置行给出提示)。 - 干净卸载 —— 关闭、清除或卸载后完整恢复原背景;插件只移除自己写过的内容。
版本兼容
本插件版本 · 支持的 dsh 版本
0.6.1 · dsh 0.1.2-rc.1 与 0.1.3-alpha.x(已在 alpha.2 验证),另支持 0.1.5-alpha.1 / alpha.2 / rc.1 / rc.2(已在 rc.2 验证)、0.1.6-alpha.1 / alpha.2、0.1.7-alpha.1 / alpha.2 / rc.1 / rc.2(已在 rc.2 验证)、0.2.0-rc.1(已在 rc.1 验证)与 0.2.0-rc.2(已在 rc.2 验证)
0.6.0 · dsh 0.1.2-rc.1 与 0.1.3-alpha.x,另支持 0.1.5-alpha.1 / alpha.2 / rc.1 / rc.2 与 0.1.6-alpha.1 / alpha.2、0.1.7-alpha.1 / alpha.2 / rc.1 / rc.2 与 0.2.0-rc.1
0.5.6 · dsh 0.1.2-rc.1 与 0.1.3-alpha.x,另支持 0.1.5-alpha.1 / alpha.2 / rc.1 / rc.2 与 0.1.6-alpha.1 / alpha.2、0.1.7-alpha.1 / alpha.2 / rc.1 / rc.2
0.5.5 · dsh 0.1.2-rc.1 与 0.1.3-alpha.x,另支持 0.1.5-alpha.1 / alpha.2 / rc.1 / rc.2 与 0.1.6-alpha.1 / alpha.2、0.1.7-alpha.1
0.5.3 – 0.5.4
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:16,最后更新 2026-09-29