前言¶
DSH(DeepSeek Harness)的界面主题同样走插件化这条路。想给 Web 端换一套配色,常见做法是直接改宿主文件或者写一堆覆盖用的 CSS 选择器;前者会污染源码,后者容易顾此失彼、碰到写死的颜色就失效。
下面介绍的 lyq326/dsh-ink-green 是另一种思路:它只做 token 层的覆盖,把背景、文字、边框、强调色统一换成低饱和的墨绿灰,界面上真正跳出来的只有一个高饱和亮绿。整份插件没有布局改动,也没有 !important。
这是什么¶
lyq326/dsh-ink-green 由 lyq326 维护,是面向 DSH Web 端(--profile web)的自建墨绿配色插件。它在社区目录里的分类是「趣味换装」,解决的问题很简单:让你在不掉进改样式泥潭的前提下,把 Web 界面的整体色调交给一套受控的色值。
它的实现方式是纯 token 覆盖:宿主定义的 --dsw-alias-* 与 --dsw-specific-* 全部覆盖,另有 --shiki-* 与 --dsw-static-* 兜底,合计 146 个 token。插件本身零依赖,不引入布局层,也不改宿主文件。
配色思路¶
配色的核心约束是色相统一。所有绿色落在 140–150°,饱和度压在 8–12%,只留一个高饱和亮绿作为强调色(--dsw-alias-brand-primary,唯一跳到 55% 的角色)。因此界面观感是「墨绿灰的底」,绿色只出现在按钮、选中态和焦点环上。
亮/暗双色的完整角色对照如下:
| 角色 | DSH token | 亮色 | 暗色 |
|---|---|---|---|
| 背景 | --dsw-alias-bg-base |
#EFF5F1 |
#222A26 |
| 卡片 / 浮层 | --dsw-alias-bg-layer-1/2 |
#FCFDFC |
#2A322E / #303A34 |
| 正文 | --dsw-alias-label-primary |
#17261F |
#D1DBD5 |
| 次要文字 | --dsw-alias-label-secondary |
#576B61 |
#99A89E |
| 次级背景 | --dsw-alias-markdown-code-block |
#E0EBE4 |
#343D38 |
| 边框 | --dsw-alias-border-l* |
rgba(23,38,31,.10–.28) |
rgba(209,219,213,.08–.24) |
| 强调色 | --dsw-alias-brand-primary |
#22774D |
#41C885 |
| 强调色上的字 | --dsw-alias-label-primary-foreground |
#F8FBF9 |
#17261F |
| 侧栏 | --dsw-specific-sidebar-fill |
#E8F1EC |
#1F2823 |
对比度方面,亮色正文/背景约 14:1,暗色约 10.4:1。作者在 README 里说明暗色刻意没拉满,是为了长时间使用时不累眼。
安装与启用¶
安装命令取自插件 README。先添加插件,再重启 DSH 进程:
dsh plugin --profile web add github:lyq326/dsh-ink-green
systemctl --user restart dsh
如果不方便走 GitHub,也可以用本地打包产物:
npm pack
dsh plugin --profile web add ./dsh-ink-green-1.0.0.tgz
对应的卸载命令是:
dsh plugin --profile web remove dsh-ink-green
目标机前置条件:Node ≥ 20、dsh 0.2.x、pnpm 在 PATH 里。插件自身零依赖,npm pack 后安装的是副本,删掉源目录不影响已安装的实例。
改颜色¶
需要调整色值时,不要直接改 lib/client.js——它是构建产物。正确路径是改生成它的常量定义,再重新生成:
$EDITOR tools/build.py # 修改 LIGHT / DARK 两组,或 TOKENS 表
python3 tools/build.py # 重新生成 lib/client.js
改完后刷新 DSH 页面即可,bundle 的 rev 会随内容变化,无需重启宿主。
换一台机器¶
分发到其他机器有三种方式:
- GitHub:
dsh plugin --profile web add github:lyq326/dsh-ink-green - tarball:先
npm pack,把.tgz拷到目标机,再dsh plugin add <路径>,装的是副本 - 目录同步:先
rsync到目标机,再dsh plugin add ./dsh-ink-green,装的是link:,该目录不能删
如果改了颜色,记得先 npm version patch 再发布,否则 pnpm 可能判断没有变化。
已知边界¶
插件 README 明确列出了几条限制,使用前应了解:
- 没有首屏预着色:首帧仍用宿主原生色,脚本加载后才换成墨绿,深色下可能闪一帧黑灰。
- 只覆盖 token:组件里写死的颜色不会被改动。
- 不碰布局:没有 DOM 覆盖、没有
!important、未改宿主文件。 - 仅在 Web profile 实测;桌面端是内嵌 Web UI,理论上可用但未验证。
适用场景与注意¶
适合想把 DSH Web 界面整体调成墨绿风格、又不想改宿主源码的人。如果你的需求是精细调整某个组件的写死颜色或布局行为,这套插件覆盖不到。
需要说明的是,插件以当前 dsh 进程的权限运行。安装前建议先核对源码内容,确认你接受项目的授权方式;该项目使用 MIT 许可证,内容为纯色值加一层 token,README 说明不含第三方素材。
结尾¶
dsh-ink-green 的价值在于边界清晰:它只做 token 覆盖,把一套受控的墨绿色值交给 DSH Web 界面,改色有明确的生成流程,也如实列出了未覆盖的区域。
- 目录页:https://www.skillhub.cn/plugins/lyq326/dsh-ink-green
- GitHub:https://github.com/lyq326/dsh-ink-green