Tkingxiao/dsh-any-background ↗★ 2
dsh-any-background
Appearance plugin for DeepSeek Harness: custom theme color (PS-style color wheel), background wallpaper with opacity/blur controls, and separate main/settings interface opacity.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Tkingxiao/dsh-any-background说明文档
阅读完整 README ↗dsh-any-background
English | 中文
一个 DeepSeek Harness 外观插件,让你完全自定义 Web 端的主题色、背景壁纸和透明度控制。
功能特性
- PS 风格色轮 — 在色相环上选取色相,在内嵌方形中调整饱和度与明度。实时生成 30+ 个 CSS 设计令牌并立即生效。
- 背景壁纸 — 选择任意图片作为壁纸。在视口比例的编辑器中拖动平移、滚轮缩放,所见即所得。
- 透明度控制 — 主界面背景透明度、设置面板透明度、壁纸透明度各自独立滑块控制。
- 模糊效果 — 可调壁纸模糊(0–60 px),打造毛玻璃质感。
- 持久化存储 — 所有设置(颜色、壁纸、透明度、模糊、编辑器位置)保存到
localStorage,下次启动自动恢复。 - 中英双语 — 完整的中英文界面,自动跟随语言设置。
- 主题守护 — 后台看门狗定期重新激活自定义主题,即使宿主重置也不会丢失你的选择。
项目结构
dsh-any-background/
├── package.json # 包元数据、dsh.client 声明、依赖
├── cordis.patch.yml # 捆绑补丁层(插入到 profile 组合配置中)
├── cordis.yml # 开发用补丁覆盖层(pnpm dsh web --patch)
├── tsdown.config.ts # 构建配置:Node 端(ESM)+ 客户端(CJS 浏览器包)
├── src/
│ ├── index.ts # Node 端 — 空壳,供 Cordis 加载器挂载
│ ├── invariant.ts # 不变量 companion(注册包所有权)
│ └── client/
│ └── index.tsx # 浏览器端 — 所有 UI 逻辑都在这里
├── lib/ # 构建产物(已提交,安装无需构建步骤)
│ ├── index.js # Node 入口
│ ├── invariant.js # 不变量入口
│ ├── client.js # 浏览器包(经 __ModuleLoader__ 包装)
│ └── client.js.map # 源码映射
├── README.md # 英文版说明
└── README.zh.md # 本文件(中文)
实现原理
本插件是一个纯客户端 Cordis 插件。Node 端是空壳,所有行为都在 src/client/index.tsx 中实现。
架构
┌─────────────────────────────────────────────────────────┐
│ apply(ctx) — 插件入口 │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. 恢复保存的颜色 → registerCustom() → setTheme │
│ 2. 注入渐变 到 │
│ 3. 创建状态存储(defineStore) │
│ 4. applyWp() → 壁纸 + 令牌覆盖 │
│ 5. 监听 theme/change → 重新应用 │
│ 6. ResizeObserver → 视口感知重定位 │
│ 7. 语言注册(中/英) │
│ 8. 设置面板注入(ThemeSection) │
│ 9. 延迟启动恢复(300ms, 1500ms) │
│ 10. 主题守护(1 秒间隔) │
│ │
└─────────────────────────────────────────────────────────┘