FunctionHookTJU
dsh-custom-wallpaper
deepseek harness 可自定义主题壁纸,主题色,磨砂玻璃,不透明度
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-custom-wallpaper
适用于 DeepSeek Harness (DSH) 的动态 Cordis 插件:自定义主题色、壁纸与面板不透明度,支持磨砂玻璃模糊,设置自动持久化。
功能123
- 主题色:自定义强调色(品牌主色)与背景色,自动推导边框、文字、侧栏等派生配色
- 壁纸:4 个渐变预设(无 / 暮色 / 晨曦 / 深海)、任意图片 URL、本地图片(大图自动压缩后写入配置)
- 不透明度:面板 20%–100% 半透明,数值越低壁纸透出越明显;开启壁纸时面板最高 90% 不透明,壁纸始终可见
- 磨砂玻璃:0–30px 模糊强度,作用于壁纸层(
filter: blur+ 轻微放大消除边缘留白),不破坏界面fixed弹层布局 - 持久化:全部设置写入
localStorage(key:dsh.custom-appearance.v1),关闭设置面板或刷新页面后自动恢复 - 入口:设置 → 「外观定制」分区(位于「通用」之后)
安装
方式 A:持久安装到 DSH profile(推荐,重启后仍生效)
插件已按 DSH 持久插件规范打包成本仓库根目录的 npm 包 dsh-plugin-custom-wallpaper:
package.json— 包元数据 +dsh.client.platform: "web"声明 +exports["./client"]lib/index.js— host 半(空实现,仅为让 profile 的 cordis loader 有可导入的插件入口)lib/client.js— 客户端 bundle(window.__ModuleLoader__.load注册工厂,功能与client.js一致)
应用到本机 DSH 的步骤:
- 把包安装进 web profile 的 node_modules:
C:\Users\12252\.dsh\profiles\node_modules\dsh-plugin-custom-wallpaper\(已复制) - 在 profile 的 patch 层注册插件:编辑
C:\Users\12252\.dsh\profiles\web\cordis.patch.yml,在insert列表中追加{ id: custom-wallpaper, name: dsh-plugin-custom-wallpaper }(已完成) - 重启 DSH(
npx @deepseek-ai/dsh web),客户端刷新后插件即生效 - 验证:设置 → 「插件」页应出现
dsh-plugin-custom-wallpaper; 设置 → 「外观定制」分区出现全部控件
以后修改插件:改本仓库 lib/ 下的源码 → 重新复制到 profile 的
node_modules(或 pnpm 重装)→ 重启 DSH。DSH 从 profile 的 node_modules
副本加载,仓库文件只是源码仓库。
方式 B:会话内动态加载(临时,重启失效)
插件亦可作为纯客户端动态包(无 Host 半)。在 DSH 会话中:
- 用
cordis_define新建插件(plugin.kind: "new",idPrefix如theme),把client.js的内容原样作为code.client; - 用
cordis_run激活返回的pluginId/packageId; - 客户端包首次激活需要授权(运行卡片上单击 ✓ 授权当前包,双击 ✓✓ 授权该插件后续所有版本)。
注意:cordis_* 工具只在含 Cordis 工具链的 preset(如「创造模式」)会话中可用。
文件
client.js— 动态包的code.client函数体(纯 JS:无 JSX / TypeScript / import)lib/client.js— 持久插件的客户端 bundle(__ModuleLoader__工厂版,功能与client.js相同)lib/index.js— 持久插件的 host 半(空实现)package.json— 持久插件的包元数据(dsh.client/exports["./client"])README.md— 本说明
实现要点
- 壁纸渲染在
body::before固定全屏层;面板 token(--dsw-alias-bg-base、-layer-1/2、-overlay、--dsw-specific-sidebar-fill、边框、文字等)通过theme.overrideTokens覆盖为半透明/派生色; - 设置弹窗遮罩与图片灯箱的模糊由产品自带 token
--dsw-mask-blur驱动,跟随「模糊强度」滑块; - 本地图片经
FileReader读为 data URL,超过 2560px 或 1.2MB 的位图用 canvas 缩放重编码(PNG 保透明,其余转 JPEG),避免撑爆 localStorage 配额; - 状态保存在插件级(而非设置面板组件),关闭设置面板不会撤销主题;
theme.overrideTokens、styles.insert均持有 disposer,随插件停止自动清理。
版本历史
- v5 — 磨砂玻璃改为壁纸层
filter: blur,修复 v4 中backdrop-filter将设置弹窗吸入侧栏(containing block + overflow 裁剪)导致的布局错乱 - v4 — 磨砂玻璃(主面板
backdrop-filter;因破坏fixed弹层被 v5 取代) - v3 — 本地图片(大图 canvas 压缩)+
localStorage持久化 - v2 — 支持本地图片(FileReader → data URL)
- v1 — 主题色 / 壁纸(渐变 + URL)/ 不透明度
说明
- 动态包是进程级的临时扩展:DSH 完全重启后需重新
cordis_define+cordis_run。 - 持久包(方式 A)随 profile 加载,DSH 重启后自动恢复,是日常使用推荐形态。
- 本仓库保存两类源码,方便随时恢复与继续开发。