dsh-plugin-theme-workbench:为 DSH Web 客户端提供五套可落盘的明暗配色

前言

DeepSeek Harness(DSH)的 Web 客户端自带「外观」一行:浅色、深色、跟随系统,三个选项在界面里是写死的。社区里若用 ctx.theme.register() 注册第三方主题,不仅进不了官方选择器,ctx.theme.setTheme(第三方id) 在实现里也只会把 light|dark|system 写进设置,其余 id 重启即失。上游 README 对第三方主题的表述是:扩展点存在,但不是一等产品能力。

若你只想换一套更顺眼的配色、又希望明暗偏好和系统切换照常工作,需要一条不跟 register() 抢死路的实现。下面介绍维护者 kjx-talesofai 发布的 dsh-plugin-theme-workbench(SkillHub 分类:趣味换装):五套主题,每套各含浅色与深色两套色板,选择写入 Host 偏好而非浏览器 localStorage。

这是什么

dsh-plugin-theme-workbench 是 DSH Web 客户端的主题插件。它在「设置 → 通用」中增加一行 主题 选择器,提供五套可选配色;你仍在同一页的 外观 里切换浅色 / 深色 / 跟随系统,插件在当前内置主题之上叠一层 token,明暗模式会切换到对应色板。

插件未发布到 npm registry,通过 DSH「添加插件」或 CLI 从 GitHub 指定 release 安装即可。

核心功能

五套主题与明暗双 palette

每套主题由浅色、深色各三个种子色(画布 canvas、文字 ink、强调 accent)推导约 117 个 token,而不是手工填表,避免配色偏离同一色相。

主题 id 中文名(README) 特点概要
cream(默认) 米白 暖米白纸感,默认选项
novel 书卷 旧纸棕墨
calm 静谧 柔和鼠尾草绿
modern-classic 现代经典 冷调纸白 + 深蓝点缀
deep-work 深度工作 近黑白

切换 外观 的浅色 / 深色 / 系统时,当前所选主题的对应 palette 会生效,无需为「只支持一种模式」的主题单独再装插件。

实现方式:overrideTokens,而非 register

插件使用官方通道 ctx.theme.overrideTokens(),在当前生效的内置主题之上叠一层以包 id 为 key 的 token;重新应用会替换而非堆叠,卸载时可 retract。因此:

  • 明暗偏好与 OS 配色切换保持 DSH 原有行为;
  • 不依赖 ctx.theme.register() 那条「不可见且不落盘」的路径。

同时插件自行绘制设置行(settings.general.item,order: 13),并把选择存为 Host 侧 .volatile() Config,与 DSH 其它设置一样进入 profile 的 cordis.patch.yml(命名空间与 Loader 行 id 对应)。

能力边界

README 明确说明:这是 palette 插件,不是整站换肤。以下不在范围内:

  • 字体、圆角、语法高亮、壁纸;
  • 通过改阴影配方做层次(DSH 在 body, body * 上声明阴影,body 级覆盖无效;发丝线颜色可随主题变);
  • macOS 侧边栏为系统 vibrancy,插件 token 只能部分「染色」,无法改成不透明纯色块而不损观感。

首屏:持久化的主题 id 经 webserver/index-inject 以 global 注入 globalThis.__DSH_THEME_WORKBENCH__,避免先默认 schema 再闪刷。

安装与启用

在 DSH 桌面端打开「添加插件」,填入下列之一,安装后需重启桌面端(Host 半边仅在启动时加载)。换主题本身不需要再重启或刷新页面。

GitHub(钉住当前可用 release):

github:kjx-talesofai/dsh-plugin-theme-workbench#v0.1.4

本地开发目录(须为绝对路径,相对路径会被 DSH 拒绝):

/absolute/path/to/dsh-plugin-theme-workbench

CLI 等价命令(profile 为 desktop 时):

dsh plugin --profile desktop add github:kjx-talesofai/dsh-plugin-theme-workbench#v0.1.4

升级时:先卸载再安装新版本;不支持在已有条目上直接覆盖重装。

典型用法

  1. 打开 设置 → 通用 → 主题。
  2. 点击色块:左侧为浅色 palette、右侧为深色,中间点为强调色。
  3. 在 设置 → 通用 → 外观 切换浅色 / 深色 / 跟随系统,查看同一主题的另一套配色。

也可在 profile 的 cordis.patch.yml 中直接写配置(与 UI 等价):

- id: theme-workbench
  name: 'dsh-plugin-theme-workbench'
  config:
    theme: cream # cream | novel | calm | modern-classic | deep-work

卸载:在 DSH「插件」列表卸载 dsh-plugin-theme-workbench 后重启。若需清除残留配置,可编辑 profile 的 cordis.patch.yml,删除 - id: theme-workbench 对应段落。

适用场景与注意事项

适合谁

  • 日常使用 DSH Desktop Web 客户端,希望界面配色更贴近纸感、低对比或专注场景,且要与系统明暗联动;
  • 了解 DSH 插件生态(社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系),愿意从 GitHub 指定 release 安装未上 npm 的插件。

运行与信任

插件以当前 DSH 进程权限运行。安装前建议浏览仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

环境与限制(来自 README 自述)

  • 非 loopback 访问时,DSH 将部分设置放在内存作用域,主题本次生效,刷新后可能丢失。
  • 维护者在 macOS(Apple Silicon)+ DSH Desktop 0.2.0-rc.2 上做过端到端验证;在 0.2.1-rc.2 上核对过 token 名与设置行仍存在。Windows / Linux 未测;DSH 小版本升级可能改变上游契约,需自行关注仓库 Compatibility 说明。

结尾

dsh-plugin-theme-workbench 用 overrideTokens 与自建设置行,补上了第三方主题「进不了官方外观、选了也不落盘」的缝隙:五套可推导的明暗配色,与 DSH 内置浅色 / 深色 / 系统开关并存。若你需要的是换字体或整页 reskin,应另找其它扩展;若只需要稳定、可写入 profile 的配色方案,可按上文命令安装并在「设置 → 通用 → 主题」中选用。

羽毛球分组比赛记分
小程序二维码

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

小夜