dsh-wallpaper
August 20, 2026 · View on GitHub
给 DeepSeek Harness (DSH) 网页 GUI 的换壁纸插件:上传一张自定义壁纸,铺满整个界面背后;左下角一个可拖拽的「换壁纸」按钮,一键上传 / 移除 / 调透明度,把聊天界面变成你想要的桌面观感。
📸 截图
| 壁纸铺满整页 + 换壁纸按钮 | 设置面板(上传 / 移除 / 透明度) |
|---|---|
![]() | ![]() |
为什么需要它
DSH 网页版默认是纯白 / 纯黑背景,看久了单调。这个插件让你随手换一张壁纸当底,聊天区、侧边栏自动变半透明,界面像浮在壁纸上,观感接近「电脑桌面壁纸」。
功能
- 自定义壁纸:上传任意图片(不内置预设),PNG / JPG / WebP 都行。
- 铺满整页:
cover铺满 + 固定不随滚动;聊天区、侧边栏背景自动半透明透出壁纸。 - 透明度滑杆:0%~100% 实时调节界面半透明程度(默认 85%),随拖随生效、自动记住。
- 不糊:canvas 压缩封顶「屏幕分辨率 × 设备像素比(≤2x)」,只缩小、绝不放大;PNG 走无损,其余 WebP/JPEG(质量 0.9)。
- 持久化:壁纸与透明度存 IndexedDB(无 localStorage 的 ~5MB 限制),按钮位置存 localStorage,刷新自动恢复。
- 可拖拽按钮:左下角默认,随手拖到任意位置,位置自动记住。
- 明暗主题自适应:亮色白底 / 暗色黑底自动切换,透明度共用。
- 一键移除:随时恢复默认界面。
快速开始
方式一:从 GitHub 直接安装(无需 npm)
dsh plugin --profile web add github:zypchloe-del/dsh-wallpaper
方式二:本地开发用
dsh plugin --profile web add file:/绝对路径/dsh-wallpaper
安装后重启 dsh web、刷新页面,左下角就会出现 🖼️ 按钮:
- 点按钮 → 打开面板;
- 点 📁 上传图片 → 选一张壁纸,立刻铺满整页;
- 拖「透明度」滑杆调到舒服的程度;
- 想换回默认,点 移除。
<profile>:桌面版desktop,Web 版web,不带--profile操作默认 profile。
卸载
dsh plugin --profile web remove dsh-wallpaper
结构
dsh-wallpaper/
├── lib/
│ ├── index.js # Host:只声明 cordis 条目,无路由
│ └── client.js # Client:壁纸图层 + 按钮 + 面板 + 透明度 + IndexedDB
├── cordis.patch.yml # bundle patch(entry id: dsh-wallpaper)
├── package.json
├── README.md / README.en.md
└── LICENSE
实现说明
- Client(
lib/client.js):window.__ModuleLoader__.load挂载(零 dsh client 包依赖、无构建步骤);壁纸用内联 style 挂到body,.dsw-wallpaper类把--dsw-alias-bg-base/--dsw-specific-sidebar-fill等主题变量改成半透明,透明度由--dsw-wall-alpha控制、亮暗主题自动换底色。 - 图片压缩:canvas 重采样,封顶
screen × min(devicePixelRatio, 2);image/png走无损 PNG,其余先试 WebP(0.9)再回退 JPEG(0.9)。 - 存储:壁纸对象
{ url, mime, width, height, bytes, alpha }存 IndexedDBdsh-wallpaper/kv,按钮位置存 localStorage。
FAQ
Q:壁纸会变糊吗? 不会。只把「远超屏幕分辨率」的多余像素裁掉(封顶 2x 屏),从不放大;PNG 走无损,照片走 WebP/JPEG 质量 0.9,肉眼基本无差。
Q:壁纸存哪?会不会泄露?
存在浏览器本机 IndexedDB(dsh-wallpaper 数据库),只在你自己的浏览器里,不上传任何地方。
Q:为什么界面有一层「白膜」? 那是为保文字可读保留的半透明底色。用面板里的「透明度」滑杆调到 100% 就几乎全透;往回调能增强文字对比度。
Q:换电脑 / 换浏览器壁纸还在吗? 不在。壁纸存在浏览器本地,换浏览器 / 设备不会同步(这是本地插件,不是云服务)。
相关插件
- dsh-balance-pill —— DeepSeek 余额悬浮胶囊:右下角可拖拽、可折叠,实时显示 API 余额。

