前言¶
DeepSeek Harness(DSH)在 0.2.x 里移除了旧版「设置 → 通用 → 背景图」。如果你习惯用一张本地图铺满界面、又让侧边栏和会话区保持半透明以便读正文,就需要自己补这一层能力。社区插件 dsh-background(维护者 waterc07,SkillHub 分类「趣味换装」)把该功能以 bundle 形式接回 DSH:选图、恢复默认、关闭背景都在右下角面板完成,状态写在 $DSH_HOME/dsh-background/,不依赖浏览器存储,也不受 Desktop 每次启动随机 loopback 端口的影响。
下面介绍插件定位、能力、安装步骤与日常使用;事实均来自项目 README 与 package.json(版本 1.0.0,MIT 许可)。
这是什么¶
dsh-background 是面向 DSH Web / Desktop web 客户端的背景图插件:任意 JPEG / PNG / WebP 可铺满整窗并固定不随内容滚动;左侧栏、会话列、内容列等大块表面会按浅色 / 深色主题自动半透明,正文对比度仍由罩层保证。插件只在本机 loopback 同源页面上通过 HTTP 路由读写本地文件,不发起外部网络请求,运行时无额外 npm 依赖。
核心功能¶
整窗背景与半透明¶
- 背景由 CSS 变量
--dsh-wallpaper-image驱动,cover+background-attachment: fixed铺满窗口。 - 浅色主题下罩层约 74% 主题底色,深色主题(
data-ds-dark-theme)下约 55%;client 还会扫描列内大面积纯色块并按主题 token 做color-mix(),卸载或「移除」时可还原。
右下角三步操作¶
点击右下角圆形按钮打开面板(再点、Esc 或点面板外关闭):
- 选择图片:从本地选图;浏览器端最长边缩至 2560px 并编码为 JPEG(质量从 0.9 逐步降到 0.58,直至不超过大小上限)。
- 恢复默认:删除自定义文件,回到随包分发的
assets/default.jpg。 - 移除:关闭背景,半透明表面恢复原样;已保存的
background.bin仍保留在磁盘上。
面板内可预览当前背景,操作中有文字提示。
持久化与默认图¶
数据目录(未设置 DSH_HOME 时:Windows 为 %USERPROFILE%\.dsh\dsh-background\,macOS / Linux 为 ~/.dsh/dsh-background/):
$DSH_HOME/dsh-background/
├─ state.json # {"mode":"default"|"custom"|"off","rev":<毫秒时间戳>}
└─ background.bin # 自定义背景的原始字节
无自定义图时使用内置默认图;host 不可用时 client 回退到 bundle 内联的同一张默认图。
图片限制(README 表格)¶
| 项目 | 限制 |
|---|---|
| 原始文件 | ≤ 40 MB,且为 image/* |
| 缩放 | 最长边 ≤ 2560px |
| 保存格式 | JPEG(透明通道不保留) |
| 存储 | 编码后 data URL ≤ 2,000,000 字符(约 1.5 MB,超出需换图) |
插件没有用户可配置项;配置按 $DSH_HOME 共享,不区分 profile,也不支持轮播或多套主题。
安装与启用¶
环境要求:DSH 0.2.x(README 写明在 0.2.1-rc.3 验证);Web 或 Desktop 界面。TUI / headless 不加载 web client bundle,插件无效。本地改源码构建需 Node.js 18+;仅在 DSH 里运行插件不需要系统 Node。
官方 README 给出的安装流程如下(PowerShell 示例;路径随 DSH_HOME 或默认 %USERPROFILE%\.dsh 变化)。
1、放入插件目录¶
$dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $env:USERPROFILE '.dsh' }
$pluginDir = Join-Path $dshHome 'plugins\dsh-background'
New-Item -ItemType Directory -Force (Split-Path $pluginDir) | Out-Null
git clone https://github.com/waterc07/dsh-background.git $pluginDir
2、链接到 profile¶
将 $profileName 设为 desktop 或 web:
$profileName = 'desktop'
$profileDir = Join-Path $dshHome "profiles\$profileName"
New-Item -ItemType Junction -Path (Join-Path $profileDir 'node_modules\dsh-background') -Target $pluginDir
也可用 DSH 插件命令(内部通过 pnpm 建链):
dsh plugin --profile $profileName add $pluginDir
3、注册 bundle¶
编辑 $dshHome\profiles\<profile>\package.json:在 dependencies 中加入 dsh-background,并把 dsh-background 追加到 dsh.profile.bundles 列表末尾(顺序即层叠顺序):
{
"dependencies": {
"dsh-background": "link:../../plugins/dsh-background"
},
"dsh": {
"profile": {
"bundles": [
"...",
"dsh-background"
]
}
}
}
通常无需再改 profile 的 cordis.patch.yml。
4、重启 DSH¶
完全退出并重新启动 DeepSeek Harness(或重新执行 dsh --profile desktop)。右下角出现背景按钮即表示加载成功。首次安装须完整重启;仅刷新页面不足以注册 host 路由。
卸载:删除 profile 下 node_modules\dsh-background 链接,并从 dependencies 与 bundles 中移除 dsh-background 后重启;确认不需要时可手动删除 $DSH_HOME/dsh-background/。
典型用法¶
经过上面的步骤启用后,日常只需操作右下角面板:
- 需要个性化:点「选择图片」,选本地图,等待缩放与保存完成。
- 想回到插件自带默认机甲赛事演示图(
assets/default.jpg):点「恢复默认」。 - 暂时不要任何背景、恢复不透明 UI:点「移除」。
若把 DSH Web 暴露到局域网或公网,背景相关 API 仅允许 loopback 同源访问,远程 origin 会收到 403,这是 README 中的已知限制。
Host 侧路由示例(仅供理解数据流,正常使用不必手调):
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/dsh-background/state |
当前 mode 与 rev |
| GET | /api/dsh-background/image |
返回 JPEG 字节;off 时 404 |
| POST | /api/dsh-background/set |
body 为 dataUrl 设自定义图 |
| POST | /api/dsh-background/reset |
恢复默认 |
| POST | /api/dsh-background/remove |
关闭背景 |
适用场景与注意¶
适合谁:在 DSH 0.2.x 的 Web / Desktop 里希望恢复「整窗壁纸 + 半透明壳层」、且愿意把图片只存在本机 $DSH_HOME 的用户。
实现依赖:半透明逻辑绑定 DSH 内部类名(如 _frame、_sidebarCol)与主题变量;DSH 大版本若改样式结构,背景可能仍在但半透明需插件跟进。不提供裁剪、模糊、亮度调节;PNG / WebP 统一转 JPEG。
安全与信任:插件以当前 DSH 进程权限读写 $DSH_HOME/dsh-background/ 并通过 loopback HTTP 服务图片;安装前请自行审阅 源码与 MIT 许可证。SkillHub 目录页(waterc07/dsh-background)是社区插件索引,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,本插件是其中一条可选扩展。
README 另说明:assets/default.jpg 为演示用照片,版权归原权利人,不在 MIT 范围内;公开分发前请确认授权或替换后执行 node scripts/build.mjs 重建 lib/。
结尾¶
dsh-background 用 host + client 两半 bundle 把 0.2.x 去掉的背景图能力补回来:右下角面板完成选图 / 默认 / 移除,数据落在 $DSH_HOME/dsh-background/,零运行时依赖、无外网请求。需要详情、截图与开发构建说明时,见 GitHub 仓库 waterc07/dsh-background 与 SkillHub 条目 https://www.skillhub.cn/plugins/waterc07/dsh-background。