前言¶
DeepSeek Harness(DSH)的 Web GUI 内建外观只有 浅色 / 深色 / 跟随系统 三档。如果你在编辑器和终端里用惯了 Catppuccin、Nord 这类配色,切到 DSH 界面时多少会觉得颜色不是自己的。直接改样式表当然可行,但改动会和内建样式搅在一起,上游一升级就得重新对一遍。下面介绍的 dsh-theme-pack 走的是另一条路:不碰样式表,只通过 DSH 的主题契约注册语义 token,就能让 Web GUI 换上 16 套社区流行配色。
这是什么¶
dsh-theme-pack 是由 math-lrz 维护的 DSH 插件,MIT 协议,面向 DSH 的 web profile,提供 16 套第三方主题皮肤。它解决的就是上面这个问题:给 Web GUI 多一批现成的外观选项,点选即时生效,且不侵入 DSH 本身的样式体系。
主题清单¶
16 套主题来自这些配色家族,源调色板定义了明暗变体的,明 / 暗两版都有:
- Catppuccin Mocha / Latte
- Gruvbox Dark / Light
- Everforest
- Rosé Pine / Dawn
- Solarized Dark / Light
- Kanagawa
- Tokyo Night / Tokyo Night Storm
- Night Owl
- Nord
- Dracula
- One Dark
核心特性¶
零侵入。 不重写任何样式表,只覆盖 DSH 主题契约暴露的 --dsw-alias-* / --dsw-specific-* 语义 token,每套 80 个;未覆盖的 token 自动回落内建调色板,皮肤不会和基础样式打架。
免构建链。 客户端 bundle 是手写的 lazy CJS(window.__ModuleLoader__.load),直接可装载,不需要 tsdown / vite。
自带选择器。 在 设置 → 通用 注入「主题皮肤(16 套)」面板,色点立方点选即换肤,中英文案齐全。
数据源单一。 16 套主题的全部颜色只由 src/palettes.mjs 一份调色板文件派生,映射规则集中在 src/tokens.mjs。
工作原理¶
DSH 的主题契约提供 ThemeRuntime.register({ id, colorScheme, tokens }) 用于注册第三方主题。本插件的客户端 bundle 用它注册 16 套主题,每次注册都挂在 ctx.effect 上,插件卸载时会逆序回收。host 半侧的 lib/index.mjs 是一个 no-op 插件,存在的意义只是让 cordis Loader 有一条可加载的条目。
安装与启用¶
前提:已安装 DSH 并有 web profile(dsh web 可用)。
1、把插件装进 web profile。git 依赖安装走 pnpm:
dsh plugin --profile web add git+https://github.com/math-lrz/dsh-theme-pack.git
也可以走 npm 安装,装完自动挂载,无需手动 insert:
dsh plugin --profile web add dsh-theme-pack
2、如需手动挂载,编辑 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml,追加一条 loader 插入。注意 name 必须是包名,不能写 file:/// 路径:
- insert:
- id: dsh-theme-pack
name: 'dsh-theme-pack'
3、刷新浏览器页面。patch 改动会触发热重挂,通常不需要重启 dsh web。
日常使用¶
经过上面的步骤,打开 设置 → 通用 → 外观,下方会出现「主题皮肤(16 套)」面板:16 个色点立方,点击立即换肤。内建的 浅色 / 深色 / 跟随系统 三档继续可用,随时可以切回。
想加一套自己的主题¶
得益于数据源单一的设计,扩展成本很低:
1、在 src/palettes.mjs 里追加一个调色板对象;
2、运行 node scripts/build.mjs。
token 映射、选择器、文案、预览页全部自动派生。
已知限制¶
- 主题选择不持久化(上游限制):
ui-theme.preference的内建设置 schema 只认light / dark / system,第三方主题 id 只在进程内有效。刷新页面后会回到内建外观,需要重新点选。 - 远程(非本机)浏览器同样可以选主题,但同样不持久。
- 遮罩类 token(
--dsw-alias-bg-mask-*)刻意沿用内建默认值,未纳入皮肤映射。
适用场景与注意事项¶
适合谁:
- 日常使用 DSH Web GUI、想把编辑器里的配色习惯带过来的人;
- 想多几个外观选项、但不想重写样式表的人;
- 想按自己的口味加主题、从一份调色板文件起步的人。
注意事项:
- 插件以当前 dsh 进程的权限运行,安装前建议先浏览仓库源码,确认代码与许可没问题再装。本插件为 MIT 协议;各主题调色板的版权归原主题作者(Catppuccin、Gruvbox、Everforest、Rosé Pine、Solarized、Kanagawa、Tokyo Night、Night Owl、Nord、Dracula、One Dark 等开源配色的维护者)。
- 由于上游设置 schema 的限制,主题选择目前不能持久化,刷新页面要重新点选,使用前要有这个预期。
结尾¶
一句话总结:一条安装命令加一段 patch,DSH Web GUI 就能换上 16 套社区流行配色;不碰样式表、不需要构建链,卸载时注册的主题也会被逆序回收。
- GitHub 仓库:https://github.com/math-lrz/dsh-theme-pack
- 社区插件目录页:https://www.skillhub.cn/plugins/math-lrz/dsh-theme-pack