lyq326/dsh-ink-green:一套纯 token 覆盖的 DSH 墨绿配色

前言

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜