dsh-x9-theme
DeepSeek Harness WebUI 主题插件:6 种预设风格、背景图片(本地上传/路径/URL)、分区独立样式(毛玻璃/浮雕/霓虹等)、四区透明度、分区自定义 CSS(免 F12 显示当前样式)、字体/阴影/动效等全套外观定制
AI 分析
核心用途是为DSH Web界面提供全方位的外观与主题个性化定制。适合追求视觉美感、想要自定义背景、毛玻璃特效或配色风格的用户。
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:X9wd09ncc/dsh-x9-themeドキュメント
README 全文を読む ↗重启服务后恢复默认外观;删除插件目录下的 config.json 即彻底清除个人配置
## 截图
| 主题面板 | 背景与分区样式 |
| --- | --- |
|  |  |
## 功能特性
- **可折叠设置分区**:每组标题带 ▲/▼ 折叠箭头;预览卡吸顶常驻,改动即见
- **风格预设**:极光 Aurora / 午夜 Midnight / 樱花 Sakura / 森林 Forest / 琥珀 Amber / 石墨 Mono + 默认,每套覆盖 40+ 设计 token(浅色/深色双值)
- **明暗模式**:跟随系统 / 浅色 / 深色(官方 `theme.setTheme`,持久保存)
- **分区独立样式**:
| 分区 | 可选样式 |
| --- | --- |
| 侧边栏 | 默认 / 毛玻璃 / 渐变 / 无底色极简 / 霓虹描边 / 斜纹 |
| 输入框 | 默认 / 浮雕 / 描边 / 发光 / 毛玻璃 / 渐变 / 霓虹 / 极简无边框 |
| 对话气泡(用户消息) | 默认圆角 / 毛玻璃 / 描边 / 方角扁平 / 渐变 / 霓虹 / 柔和阴影 |
| 对话框(AI 输出) | 默认无底 / 卡片 / 毛玻璃 / 描边卡片 / 霓虹卡片 |
| 页面背景 | 默认 / 赛博网格 / 流光渐变 / 噪点纹理 / 落日 / 深海 / 薄荷 / 糖果 / 星空 |
- **背景图片**:
- 统一"图片地址"字段:本地路径 / 插件资源 `/x9-theme/asset/` / `https://` 外链 / `data:` URI 智能分流
- **本地上传**(存入插件 `assets/` 目录,重启不丢;单个上限 20 MB)
- 本地文件路径直接读取(扩展名白名单 `jpg/jpeg/png/gif/webp/avif/svg/bmp`,不超过 8 MiB)
- 4 种内置渐变;铺满 / 完整 / 原始 / 平铺、位置、模糊(0–20px)、不透明度、暗色遮罩
- 输入地址后**真实探测并提示** ✓ 已加载 / ✗ 失败(提示显示在输入框正下方)
- **四区透明度滑块**:主区 / 侧边栏 / 卡片浮层 / 输入区各自独立调节(0%–100%,0 = 完全透明);启用背景后自动调到参考值(55% / 60% / 85% / 85%)让背景透出,手动拖动后以手动值为准
- **分区自定义 CSS(免 F12)**:侧边栏 / 输入框 / 用户气泡 / AI 输出 / 页面背景各自独立编辑器;
打开即显示该区域**当前页面实际样式**(自动读取计算值并格式化成 CSS,可直接复制修改),
选择器模板随占位提示给出;输入即生效、与预设同优先级时以自定义为准;清空即恢复;随 `config.json` 分享
- **字体**:界面字体下拉(霞鹜文楷 / 思源宋体 / 鸿蒙黑体 / 微软雅黑 / 衬线经典)+ 自定义栈;
代码字体下拉(JetBrains Mono / Fira Code / Cascadia Code / Consolas / SF Mono)+ 自定义栈;字号缩放 85%–120%
- **配色**:强调色浅色/深色分设(✕ 一键恢复跟随预设)
- **动效与阴影**:动画速度 25%–150%、阴影强度 0–200%(0 = 扁平)
- **持久化与分享**:所有设置自动写入插件目录 `config.json`(本地路径经 `import.meta.url` 定位,与宿主设置白名单无关);
面板"高级"区提供配置 JSON 导出 / 复制 / 导入 / 一键重置——把 `config.json` 发给别人即可复刻整套主题
## 使用指南
设置 → **主题**(调色板图标)。所有控件改动即生效、自动保存,顶部预览卡实时预览配色与背景。
### 分区自定义 CSS 示例
每个分区底部有折叠的"自定义 CSS"编辑器,打开后上半部分是**当前实际样式**(页面计算值,可复制修改),下半部分直接填写:
```css
/* 侧边栏:圆角 + 半透明毛玻璃 */
.pI_x6G_sidebarCol {
border-radius: 0 20px 20px 0;
}
.hHd-Xa_root {
background: rgba(255, 255, 255, 0.6);
}
/* 用户气泡:强调色发光 */
.gdEzaW_bubble {
box-shadow: 0 0 12px var(--x9-accent-soft);
}
/* 输入框:更圆润 */
.uV2eYG_card {
border-radius: 24px;
}
支持 --dsw-* 主题变量与本插件变量(如 --x9-accent-soft);清空对应编辑框即恢复预设。
背景风格层说明
赛博网格、星空等 8 种背景风格层均为深色底:选择后自动切换深色模式保证文字可读;切回"默认(纯色/图片)"时恢复你选择的明暗模式。
目录结构
dsh-x9-theme/
├── package.json # dsh.bundle + dsh.client 声明(v9.2.0)
├── cordis.patch.yml # 组合层:插入 ui-x9-theme 行
├── lib/
│ ├── index.js # Host 半边:/x9-theme 路由(config / asset / upload / bg)
│ └── client.js # 浏览器半边:主题引擎 + 设置页
├── assets/
│ ├── screenshots/ # README 截图
│ └── bg.jpg # 默认背景图(可替换;上传的图片也会存入此目录)
├── config.json # 运行时生成:个人配置持久化(已 gitignore,可复制给他人导入)
├── LICENSE
└── README.md
仓库自带默认背景
assets/bg.jpg(安装后默认背景来源),可自行替换或删除。公开分发前请确认你拥有该图片的分发权利。
config.json 字段(节选)
配置自动生成,无需手写;分享时直接复制整个文件,对方在"高级 → 导入配置"粘贴即可:
| 字段 | 含义 |
|---|---|
presetId / scheme | 预设风格(none 或预设 id)/ 明暗模式(system/light/dark) |
accentL / accentD | 强调色(浅色/深色),空 = 跟随预设 |
sidebarStyle / inputStyle / bubbleStyle / aiStyle | 四分区样式 |
bgStyle | 背景风格层(default/cyber/aurora/noise/sunset/ocean/mint/candy/galaxy) |
bgMode / bgUrl | 背景来源(none/g1–g4/url)与图片地址 |
bgSize / bgPos / bgBlur / bgOpacity / bgTint | 背景显示方式 / 位置 / 模糊 / 不透明度 / 遮罩浓度 |
opacityMain / opacitySidebar / opacityCard / opacityInput + glassAuto | 四区透明度与自动参考值开关 |
fontFamily / codeFont / fontScale | 界面字体栈 / 代码字体栈 / 字号缩放 |
shadowScale / motionScale | 阴影强度 / 动画速度 |
cssSidebar / cssInput / cssBubble / cssAi / cssBg | 分区自定义 CSS(旧版 customCss 全局字段仍兼容生效) |
HTTP 端点(Host 半边)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET / POST | /x9-theme/config | 读取 / 校验并保存 config.json(无则返回 {}) |
| GET | /x9-theme/asset/ | 伺服 assets/ 下图片(路径穿越防护) |
| POST | /x9-theme/upload | 上传 data URI 图片 → assets/(不超过 25 MiB),返回 { url } |
| GET | /x9-theme/bg?p= | 按本地路径伺服图片(扩展名白名单,不超过 8 MiB) |
常见问题
Q:安装并重启后,设置里没有"主题"分区? 页面的客户端插件清单只在整页加载时获取,服务器重启后的自动重连不会更新它。请按 Ctrl+F5 或关闭标签页重新打开页面。("插件"列表里能看到本插件是实时查询服务器的结果,不代表页面已加载它。)
Q:升级 DSH 后某个分区样式失效了?
分区样式依赖少量产品 CSS 类名(如 .pI_x6G_sidebarCol、.uV2eYG_card),DSH 大版本升级后哈希类名可能变化。打开对应分区的"自定义 CSS"编辑器,顶部"当前实际样式"里显示的就是新选择器,参照它即可适配;也欢迎提 Issue。
Q:本地路径背景不显示?
检查扩展名是否在白名单(jpg/jpeg/png/gif/webp/avif/svg/bmp)且文件不超过 8 MiB。图片地址框下方会实时显示 ✓/✗ 探测结果;上传到插件 assets/ 的图片不受此限制。
Q:背景太淡 / 太浓 / 看不清? 调节"四区透明度"(主区 55% / 侧边栏 60% / 卡片 85% / 输入 85% 为参考值)与背景分区的"不透明度""遮罩浓度";背景风格层会自动切深色模式保证可读。
Q:配置想恢复默认?
面板"高级 → 重置全部",或删除插件目录下的 config.json 后刷新页面。
开发
- 纯 JavaScript,无构建步骤;
node --check lib/client.js可做语法自检 - 安装方式为符号链接(
link:),直接改源码目录即可;lib/client.js改动刷新页面生效,lib/index.js改动需重启服务 - 分区样式选择器集中在
lib/client.js的effectsCss();"自定义 CSS"编辑器会动态展示页面上的真实选择器,便于适配 - 设置导航"主题"分区的调色板图标按导航第 2 项定位(
.VOzbGW_navCell:nth-of-type(2));如有其他插件以更小order插入设置分区,需相应调整该序号 - README 截图放
assets/screenshots/,界面大改后替换同名文件
License
使用指南
设置 → 主题(调色板图标)。所有控件改动即生效、自动保存,顶部预览卡实时预览配色与背景。
分区自定义 CSS 示例
每个分区底部有折叠的"自定义 CSS"编辑器,打开后上半部分是当前实际样式(页面计算值,可复制修改),下半部分直接填写:
/* 侧边栏:圆角 + 半透明毛玻璃 */
.pI_x6G_sidebarCol {
border-radius: 0 20px 20px 0;
}
.hHd-Xa_root {
background: rgba(255, 255, 255, 0.6);
}
/* 用户气泡:强调色发光 */
.gdEzaW_bubble {
box-shadow: 0 0 12px var(--x9-accent-soft);
}
/* 输入框:更圆润 */
.uV2eYG_card {
border-radius: 24px;
}
支持 --dsw-* 主题变量与本插件变量(如 --x9-accent-soft);清空对应编辑框即恢复预设。
背景风格层说明
赛博网格、星空等 8 种背景风格层均为深色底:选择后自动切换深色模式保证文字可读;切回"默认(纯色/图片)"时恢复你选择的明暗模式。