前言¶
DSH 本身是「一切皆插件」的宿主,界面主题这类东西天然是社区插件的活。问题是这类插件通常要么只给一套深色、要么要改配置文件改很久,「想换个合并看看」这一步很轻的的事,做起来很重。dsh-theme-material 解决的就是这件事:它把八套 Material / 类 Material 的配色塞进一个插件,设置页里点一张色卡就换,深浅都有,装完不用改任何配置文件。下面介绍这个插件。
它由 heinrich0505 维护,放在社区目录的「趣味换装」分类下,目录页标注星标为 0,是一个很新的小插件。它不扩展功能、不改工作流,只是把界面颜色这一层交给用户控制。
这是什么¶
一句话定位:给 DeepSeek Harness Web 界面提供八套预设配色主题的皮肤包,深浅各几套,在设置里切换。
它解决的问题有两个:一是默认配色不一定合每个人眼睛的习惯,二是挨个调 CSS 变量的成本太高、且容易调出读不清的低对比度组合。这个插件把这两件事变成「点一下」。
八套主题¶
README 给了一张表,每套列出底色、强调色和一句说明。下面照录,色值可以作为挑选依据。
| 主题 | 底色 | 强调色 | 说明 |
|---|---|---|---|
| 夜紫 Palenight | #292D3E |
#80CBC4 |
Material 最有名的一套,靛蓝灰底、青绿强调,侧栏和正文同色 |
| 幽蓝 Ocean | #0F111A |
#80CBC4 |
压到近黑的深蓝,状态色是屏幕上唯一还亮着的东西 |
| 墨灰 Darker | #212121 |
#80CBC4 |
中性纯灰,不带色相,最不抢眼 |
| 素白 Lighter | #FAFAFA |
#26A69A |
Material 唯一的浅色主题:冷白纸面、蓝灰字、青绿强调 |
| 奶咖 Latte | #EFF1F5 |
#8839EF |
Catppuccin 的浅色:灰紫底、紫强调 |
| 青苔 Vitesse | #FFFFFF |
#1C6B48 |
近乎纯白的极简底加一抹墨绿,彩度全场最低 |
| 霓光 Snazzy | #FAFBFC |
#09A1ED |
冷白底配亮青强调 |
| 灰阶 GitHub Gray | #F0F0F0 |
#005CC5 |
整屏灰底配纯黑字,README 里说的加的那套 |
其中「灰阶 GitHub Gray」就是维护者在简介里提到的 github light gray 那一套,相比其余七套的原作者描述,这套是在 GitHub Light Gray 基础上改的 GitHub 灰版。
安装¶
README 给出两种方式。应用内打开「插件 → 添加插件」,填入:
github:heinrich0505/dsh-theme-material
也可以走命令行,网页端 profile 直接加:
dsh plugin --profile web add github:heinrich0505/dsh-theme-material
装好按提示刷新窗口,插件才会生效。
package.json 里的声明值得先看一眼:dsh.engines.dsh 是 >=0.2.0-rc.1 <0.3.0-0,compatibility.platform 只有 web,client.immediately 为 true。换句话说它只保证在 Web 端按插件机制加载,对应版本区间是 DSH 0.2.x 的 rc 到 0.3 之前;版本明显不在这个区间要先确认兼容性再装。
换主题¶
换主题不需要命令,进 设置 → 通用 → 主题,点一张色卡即可。深色主题有夜紫、幽蓝、墨灰三套,选它们时插件会把「外观」一起切到深色;其余五套浅色主题会切回浅色。之后如果你手动改「外观」,就以你的为准,插件不再接管。
选中的主题记在浏览器本地,而不是服务端。这意味着同一台机器上用不同浏览器的人可以各自用一套,互相不覆盖。
配色是怎么算出来的¶
这套插件值得看的地方不是八张表,而是它怎么把这么少的定义变成一整套颜色。每套主题在 src/skins.mjs 里只写十个输入:底色、卡片面、正文、注释、强调色、次强调,以及几个状态色的来源。其余按钮、输入框、边框、代码块、提示条的颜色,由 src/derive.mjs 按用途推导出来,package.json 里描述的是「一套 token 引擎按 appearance 推导 126 个 --dsw-* 颜色 token」。
推导时会保证读得清:正文对比度不低于 7:1,次要文字和按钮上的字不低于 4.5:1;达不到就把颜色往黑或往白调到最近的能满足的值。npm run verify 会把每套主题的对比度打出来,哪一对不够清楚直接标出来。
每套主题只定义它原生的那一面(深色或浅色),另一面自动补:深色主题的浅色版统一用 Material Lighter;浅色主题的深色版是中性夜色加这套主题自己的强调色。想自己做一套,照抄 src/skins.mjs 里任意一段改颜色,然后跑上面的 verify 命令验一遍即可。
适用场景与注意¶
适合这两类人:一是想把自己的 DSH 界面调成顺手习惯、但不想每次改 CSS 变量的人;二是需要给多套主题做对比、或者想抄它的 token 推导逻辑写自己主题的人,它的 skins.mjs + derive.mjs + verify 这条链路可以直接当参考实现。
几点必须清楚:
- 插件运行时以当前 DSH 进程的权限工作,装之前应先检查源码(尤其是它对
cordis.patch.yml的 patch 和client的加载声明)再决定要不要启用。 - 许可证是 MIT,源码可以自由查看和修改。
- 它只做配色,不提供功能扩展,期望「装了插件 DSH 就变强」是不合适的。
- 版本 0.4.2,星标 0,属于刚起步的小项目,更新窗口和技术依赖要有预期。
结尾¶
把它当作一个干净的配色层来看比较合适:八套主题、深浅都有、点一下就换,同时它自带的 token 推导和对比度校验让「自己再做一套」这件事成本很低。目录页在 https://www.skillhub.cn/plugins/heinrich0505/dsh-theme-material,源码在 https://github.com/heinrich0505/dsh-theme-material。
需要说明的是,这个目录站是社区站点,与 DeepSeek / 幻方没有官方从属关系,不是应用商店。