自定义背景、强调色与圆角,注入 CSS 换肤
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/cyk1009/dsh-plugin-custom-ui.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
自定义 DeepSeek Harness 网页界面:壁纸、半透明面板、强调色、圆角和自定义 CSS。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-custom-ui
为 DeepSeek Harness(DSH)Web GUI 提供可持久化的外观定制:
- 在「设置 → 外观定制」里选择纯色、渐变或图片作为全窗口背景;
- 调整背景遮罩、模糊、界面表面不透明度;
- 调整强调色和全局圆角;
- 注入自定义 CSS;
- 保存后立即生效,刷新/重启后保持,可一键停用或恢复默认。
这是一个独立社区插件,不是 DeepSeek 官方产品。当前适配 DSH 0.2.1-rc.2;它依赖的 settings/slot/theme 接口属于客户端插件面,升级 DSH 时请先跑测试并在真实 GUI 中回归。
功能
- 背景:无、纯色、CSS 渐变、图片链接、浏览器本地图片。
- 可读性:遮罩颜色/浓度、背景模糊、单层表面不透明度。
- 界面:强调色(链接、选中态、焦点环)、全局圆角倍率。
- 高级:全局自定义 CSS。
- 持久化:除本地图片外写入 DSH profile settings,跨浏览器/重启保留。
- 安全默认:安装后保持无视觉变化;本地图片不上传 Host;所有样式/覆盖可完整撤回。
安装
要求:DSH 0.2.1-rc.2 左右、Node.js 20+、已有一个可用的 web profile。
展开完整文档(README 剩余 1 节)
dsh-plugin-custom-ui
为 DeepSeek Harness(DSH)Web GUI 提供可持久化的外观定制:
- 在「设置 → 外观定制」里选择纯色、渐变或图片作为全窗口背景;
- 调整背景遮罩、模糊、界面表面不透明度;
- 调整强调色和全局圆角;
- 注入自定义 CSS;
- 保存后立即生效,刷新/重启后保持,可一键停用或恢复默认。
这是一个独立社区插件,不是 DeepSeek 官方产品。当前适配 DSH 0.2.1-rc.2;它依赖的 settings/slot/theme 接口属于客户端插件面,升级 DSH 时请先跑测试并在真实 GUI 中回归。
功能
- 背景:无、纯色、CSS 渐变、图片链接、浏览器本地图片。
- 可读性:遮罩颜色/浓度、背景模糊、单层表面不透明度。
- 界面:强调色(链接、选中态、焦点环)、全局圆角倍率。
- 高级:全局自定义 CSS。
- 持久化:除本地图片外写入 DSH profile settings,跨浏览器/重启保留。
- 安全默认:安装后保持无视觉变化;本地图片不上传 Host;所有样式/覆盖可完整撤回。
安装
要求:DSH 0.2.1-rc.2 左右、Node.js 20+、已有一个可用的 web profile。
方式一:手动链接(推荐本地开发)
set -eu
git clone https://github.com/cyk1009/dsh-plugin-custom-ui.git
cd dsh-plugin-custom-ui
PLUGIN_DIR="$(pwd)"
DSH_HOME="${DSH_HOME:-$HOME/.dsh}"
PROFILE="$DSH_HOME/profiles/web"
PATCH="$PROFILE/cordis.patch.yml"
test -f "$PATCH" || { echo "profile patch not found: $PATCH" >&2; exit 1; }
mkdir -p "$PROFILE/node_modules"
ln -sfn "$PLUGIN_DIR" "$PROFILE/node_modules/dsh-plugin-custom-ui"
if grep -q 'id: custom-ui' "$PATCH"; then
echo 'custom-ui row already present'
else
cp "$PATCH" "$PATCH.bak-custom-ui-$(date +%Y%m%d-%H%M%S)"
cat >> "$PATCH" <<'YAML'
custom-ui: wallpaper, surfaces, accent, radius, custom CSS (settings section).
- insert:
- id: custom-ui
name: 'dsh-plugin-custom-ui'
YAML
fi
行 id 必须是 custom-ui:设置页和客户端运行时都按这个 id 读写 Host settings 命名空间。
修改 profile patch 后,已启用的 dsh-hmr 会重新组合配置;浏览器页面会通过 Client HMR 收到新的插件模块。若页面没有自动更新,刷新一次浏览器;仍不生效时再重启 dsh web。
方式二:插件管理器
在 Web GUI 的 插件 → 添加插件 → 安装第三方插件 中填入仓库地址:
https://github.com/cyk1009/dsh-plugin-custom-ui
插件包声明了 dsh.bundle.patch,管理器会按其中的 custom-ui 行安装。它与方式一手动插入二选一,不要重复添加同一个行 id。
卸载
删除 cordis.patch.yml 里的 insert 段和 node_modules/dsh-plugin-custom-ui 符号链接,刷新页面即可。浏览器里的本地图片可以留在原处,也可以在设置页清除。
使用
打开 设置 → 外观定制。页面分为:
| 区块 | 内容 |
| 启用 | 总开关。关闭后立即恢复 DSH 默认外观,已保存字段保留。 |
| 预览 | 16:9 预览,模拟壁纸、遮罩、模糊和两层半透明界面表面。 |
| 背景 | 无 / 纯色 / 渐变 / 图片;图片支持链接或本地文件;可设置遮罩、模糊、适配方式。 |
| 界面 | 表面不透明度、强调色、圆角缩放。 |
| 高级 | 全局自定义 CSS。 |
修改后点「保存」才会写入 Host settings 并应用到整个页面;「恢复默认」会清除所有用户层覆盖和浏览器本地图片。
字段
| 字段 | 默认 | 说明 |
| enabled | true | 总开关 |
| backgroundKind | none | none / color / gradient / image |
| solidColor | #0b1020 | 纯色背景 |
| backgroundGradient | 深海渐变 | 单个 CSS gradient 值 |
| imageSource | url | url / local |
| imageUrl | 空 | http(s)、data:image 或站内绝对路径 |
| imageFit | cover | cover / contain / repeat |
| overlayColor | #000000 | 壁纸遮罩颜色 |
| overlayOpacity | 0.25 | 遮罩浓度,0–0.9 |
| backgroundBlur | 0 | 背景模糊,0–30 px |
| surfaceOpacity | 0.55 | 单层表面 alpha,0.3–1;越低背景越明显 |
| accentColor | 空 | 强调色;空表示 DSH 默认 |
| radiusScale | 1 | 圆角倍率,0.5–2 |
| customCss | 空 | 全局 CSS,≤ 20000 字符 |
字段也可以通过 profile patch 的 config: 直接编辑,例如:
- id: custom-ui
name: 'dsh-plugin-custom-ui'
config:
enabled: true
backgroundKind: image
imageUrl: 'https://example.com/wallpaper.jpg'
overlayOpacity: 0.35
surfaceOpacity: 0.5
手改后保存文件即可;Host HMR 会重新组合。非法颜色/URL/渐变会在运行时容错回退,不会让插件崩溃。
本地图片
「图片 → 本地图片」支持 PNG、JPEG、WebP、GIF、AVIF,单文件 ≤ 20 MB。插件会在浏览器内按最长边 2560 → 1920 → 1600 逐步缩放并编码(优先 WebP,回退 JPEG),最终 data URL 需 ≤ 4 MB。
- 图片只写入当前浏览器的 localStorage(键 dsh-plugin-custom-ui:local-image:v1),不会上传到 DSH Host。
- 图片按浏览器/源隔离:换浏览器、换端口或清理站点数据后需要重新选择;此时会回退到 imageUrl,或保持无背景。
- 其他设置仍保存在 Host settings 中,连接同一 DSH 的浏览器共享。只有本地图片是浏览器本地的。
自定义 CSS
自定义 CSS 通过 的 textContent 注入,追加在内置生成样式之后,因此可以覆盖大部分视觉规则。它是全局的,也可以加载外部资源;错误规则可能破坏布局。
- 留空表示不注入。
- 清除方式:把文本框清空后保存,或「恢复默认」。
- 常用场景:改字体间距、隐藏某个元素、微调某个 token、添加自己的 body::before 层。
例如:
body {
letter-spacing: 0.01em;
}
/* 让 composer 更透明一点 /
[data-composer-seat] {
--dsw-specific-input-major: rgba(255, 255, 255, 0.6);
}
实现方式
- Host 半侧(lib/index.js):声明 14 个 .volatile() 字段的 schemastery Config,让 Host settings 服务暴露 custom-ui 命名空间;调用 settings.configure({ auto: false }) 关闭自动生成的配置页。
- Client 运行时(lib/client.js):订阅 ctx.configForms.get("custom-ui");壁纸写入插件拥有的 的 body::before,界面半透明/强调色/圆角通过 ctx.theme.overrideTokens("dsh-plugin-custom-ui", ...) 以 { light, dark } 成对覆盖。
- 不覆盖菜单、卡片、composer、代码块:只覆盖 --dsw-alias-bg-base 和 --dsw-specific-sidebar-fill,让主画布和侧栏透出壁纸,同时保持可读性。
- 清理:所有样式、body 属性、token 覆盖、事件监听都挂在 ctx.effect 上;停用/卸载/HMR 时会完整撤回。
为什么表面要叠两层
Web 壳的 frame 和 chat/sidebar 各有一层背景。插件对同一 token 给出 alpha 值后,两层会叠加,实际不透明度高于滑杆显示的单层值。设置页预览按两层模拟,默认 surfaceOpacity=0.55 对应的实际观感约为 80%。把滑杆拉到 100% 会完全遮住背景。
兼容性与已知限制
- 版本绑定:在 DSH 0.2.1-rc.2 上开发/测试;configForms、settings.section、theme.overrideTokens 等接口变更时需要适配。
- 首屏闪烁:配置通过 settings RPC 返回后才应用壁纸,刷新时可能短暂看到默认背景。
- 第三方主题:表面色使用内置浅/深色值;第三方主题下若开启半透明表面,会覆盖其 base/sidebar 颜色。把表面不透明度设为 100% 可保留主题原色。
- body::before 层级:依赖当前 Web 壳的 body { isolation: isolate }。若未来移除,壁纸层可能落到根画布之后,需要改为真实 DOM 层。
- 设置共享:除本地图片外,外观设置连接同一 DSH 的浏览器共享。
- 非目标:按会话背景、视频壁纸、Host 本地文件路由、配置导入导出、独立主题市场。
开发
npm test # node --test
npm run check # node --check lib/.js
测试覆盖:
- bundle 注册、导出、默认值与 lib/defaults.js 同步;
- normalizeSettings 的默认值、钳制、非法颜色/URL/渐变回退;
- validateImageUrl、isValidGradient;
- buildRuntimeCss 的壁纸/遮罩/模糊/自定义 CSS 输出;
- buildTokenOverrides 的 light/dark 成对覆盖、accent/radius 独立生效;
- buildSettingsOps 的 base-aware set/unset 与“只写已编辑字段”;
- validateSettings 的错误/警告;
- zh/en 字典键一致;
- apply 用 mock ctx 验证设置页注册、样式注入、token 覆盖与 dispose 清理;
- 设置页 ready 分支的渲染冒烟(含图片链接控件);
- package/patch/node --check。
GitHub Actions 在 Node 20/22/24 上跑同一套测试。
离线验证 Host schema
不碰真实 profile,复制一份到临时 DSH_HOME,加入 custom-ui 行后再 dump schema:
CHECK="$(mktemp -d)"
mkdir -p "$CHECK/profiles"
cp -a "${DSH_HOME:-$HOME/.dsh}/profiles/web" "$CHECK/profiles/web"
ln -sfn "$PWD" "$CHECK/profiles/web/node_modules/dsh-plugin-custom-ui"
cat >> "$CHECK/profiles/web/cordis.patch.yml" <<'YAML'
- insert:
- id: custom-ui
name: 'dsh-plugin-custom-ui'
YAML
DSH_HOME="$CHECK" dsh --profile web --dump-config-schema
没有 dsh 命令时:npx @deepseek-ai/dsh --profile web --dump-config-schema
确认输出里出现 custom-ui 行、14 个字段和默认值,且没有针对该行的 diagnostics。
在线验证
DSH_WEB_URL="${DSH_WEB_URL:-http://127.0.0.1:3080}"
curl -sN --max-time 3 "$DSH_WEB_URL/plugins/events" | grep -o 'dsh-plugin-custom-ui[^"]*' | head
从 graph 里取该插件的 url,用 curl 拉取,返回内容应以 window.__ModuleLoader__.load({ id: "dsh-plugin-custom-ui" 开头。
安全与隐私
- 本地图片只存在浏览器 localStorage,不经过 Host 网络。
- 外观设置写入 DSH profile 的 settings 文档;自定义 CSS 是用户自己提供的全局 CSS,可能加载外部资源。
- 发现安全问题请按 SECURITY.md 私下报告,不要开公开 issue。
贡献
欢迎 issue / PR。开始前请读 CONTRIBUTING.md;改动用户可见行为时请同步更新中英文 README。
许可
MIT。独立社区项目,与 DeepSeek 官方无关。
文件
| 文件 | 作用 |
| lib/index.js | Host 入口、Config schema、关闭自动配置页 |
| lib/defaults.js | 默认值与枚举,供 Host schema 和测试使用 |
| lib/client.js | 懒加载 CJS 客户端 bundle:运行时、设置页、纯函数 |
| cordis.patch.yml | bundle 形态的默认插入行 |
| test/client.test.mjs | bundle/运行时/设置的单元与接线测试 |
| test/package.test.mjs | package/patch/语法检查 |
| .github/workflows/test.yml | GitHub Actions 测试矩阵 |预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cyk1009/dsh-plugin-custom-ui
自定义背景、强调色与圆角,注入 CSS 换肤
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1
这是你的仓库?认领条目