八套配色。
一键换上。

DSH 自带浅色、深色和跟随系统。Theme Studio 在“设置 → 通用”里加入“主题”行,提供八套内置配色——悬停即预览,点击才应用,选 Default 则把颜色全部还给官方。

  • 每套配色都带浅色与深色两份数值
  • 预览是临时的,点击之前不落盘
  • 已在 Rivetdeck 中预装
Rivetdeck 设置对话框中的 Theme Studio 主题卡片:Default、Claude、Codex、Claude Cream、Graphite、OLED、Nordic、Paper 和 Warm。
“设置 → 通用”里的“主题”行和它的八张卡片。

八套内置配色

每套配色都带两种模式

Claude、Codex、Claude Cream、Graphite、OLED、Nordic、Paper、Warm——每套都带浅色和深色的 token 数值,跟随官方“外观”的模式解析。在这里就能试;数值直接取自插件的 presets。

预览外观

Nordic — 冷调蓝灰,搭配青蓝色强调色。 使用 Theme Studio 0.1.3 的配色值渲染。这是示意布局,不是截图。

选择器里的四色马赛克固定使用浅色样本——它是配色色板,不是模式指示器。

“主题”行

在“外观”和“字号”之间

这一行落在“设置 → 通用”中,样式对齐官方“语言”行:右侧的下拉选择器带着当前主题的四色马赛克和名称。

  • 菜单依次列出 Default 和八套内置配色,各带色板
  • 行与菜单跟随界面语言,中英双语
  • 未选择任何主题时,设置页与未安装插件的 Harness 逐项一致
  • 外观System
  • 主题Nordic
  • 字号13

先预览,再应用

悬停是临时的,点击才落盘。

悬停在菜单项上会临时套用它的颜色;关闭菜单——指针移出、点击外部、按 Esc 或再次点按选择器——都会恢复原状。只有点击或回车才会请求宿主保存,选择可跨重启、跨会话保留。

  • 预览不写盘:悬停不改动任何设置
  • Default 清除全部覆盖并保存 activeThemeId=null
  • 宿主拒绝保存时,该行会报告失败并恢复上一次被接受的选择

主题菜单的状态

  • Graphite已应用并保存
  • Nordic悬停 — 预览中
  • Default清除全部覆盖

边界

官方“外观”说了算

Theme Studio 刻意保持狭窄:它拓宽的是配色,不是设置模型。

  1. 1

    模式归上游

    浅色、深色、跟随系统仍是官方“外观”的职责;每套配色都带两种变体,模式解析不受影响。

  2. 2

    字体归上游

    字体和字号是官方设置——预览、应用、取消和 Default 都不会改写它们。

  3. 3

    只有 token

    插件只产出 overrideTokens;被接受的快照和 DOM 渲染都属于 ctx.theme。

  4. 4

    天生可移植

    声明 platform:web——不引入 Electron,不依赖 Node 客户端能力,不依赖桌面提供者,也不注册模型工具或提示词。

不做的保证

  • 只有八套内置配色:自定义 .dsh-theme.json 的导入导出和主题编辑器还在路线图上。
  • 对比度检查是诊断而不是门禁——有些配色低于阈值,既不自动修复也不阻止预览或应用。
  • 预览由悬停驱动:键盘聚焦不触发预览,直接按回车即应用。
  • 只读目录 ctx.themeStudio.catalog 只存在于客户端——不支持动态注册,也没有 Host RPC。

快速开始

两条命令,然后挑个颜色。

插件通过 DSH 插件管理器安装,共四种来源——在 Rivetdeck 中它已经预装,无需任何操作。

  1. 1

    安装插件包

    在受支持的 DSH 运行时中执行。Electron 桌面版请替换 profile。

    推荐。安装预构建产物;安装时不会有包内代码在你的机器上运行。

    install · npm
    $ dsh plugin --profile web add @dsh-electron/dsh-theme-studio$ dsh --profile web
  2. 2

    批准 GitHub 来源的构建步骤

    只有 github: 安装会在你的机器上构建——也就是包自己的 prepare。pnpm 以 ERR_PNPM_IGNORED_BUILDS 停下时,把这个包名加入该 profile 的 pnpm-workspace.yaml,再跑一次 add;建议锁定标签,使之后的推送不会改变实际运行的内容。

    pnpm-workspace.yaml
     allowBuilds:   '@dsh-electron/dsh-theme-studio': true
  3. 3

    打开“设置 → 通用”

    “主题”行就在官方“外观”和“字号”之间。

    点击选择器,悬停预览,点击应用——或选 Default 把所有覆盖还回去。

说明

  • Rivetdeck 预装了 Theme Studio;预装版本可能落后于 npm 最新版。如需新版,请安装到对应 profile。
  • 以上命令以 web profile 为例。Electron 桌面版把 --profile web 换成 --profile desktop。
  • 从源码检出运行 DSH?请用 pnpm dsh 代替 dsh。

兼容性

一份确切的清单,而不是一个范围。

设置服务和菜单图标在尚未稳定的版本之间会变形,所以插件中的白名单就是唯一的支持声明——下表每一行都在已发布的 v0.1.4 包中。

插件版本 0.1.4 支持的 DSH 版本
DSH 版本状态加入于说明
0.1.5-rc.2已验证v0.1.0白名单的基线版本。
0.1.5-rc.3已验证v0.1.0仅含 manifest 修订的重发版本;设置接口形态与 rc.2 相同。
0.1.6-alpha.1已验证v0.1.0旧版设置 register 通道。
0.1.6-alpha.2已验证v0.1.0对本插件而言设置形态与 alpha.1 相同。
0.1.7-alpha.1已验证v0.1.0Config / configure / configForms 取代 register / settingsScope。
0.1.7-alpha.2已验证v0.1.0接口形态与 alpha.1 相同。
0.1.7-rc.1已验证v0.1.1从该版本起安装时强制要求精确的 peerDependencies。
0.1.7-rc.2已验证v0.1.1接口形态与 rc.1 相同。
0.2.0-rc.1已验证v0.1.3DSH 0.2 候选版本;新增八个语义 token 已审计。
0.2.0-rc.2已验证v0.1.3对本插件而言接口形态与 rc.1 相同。
0.2.1-alpha.1已验证v0.1.4字体与字号保持由宿主管理,与覆盖并存。
0.2.1-alpha.2已验证v0.1.4插件的开发 pin。
其他任何版本不支持—未验证但不会被拒绝:插件在运行时没有门禁;安装时的 peer 范围仍可能拒绝。

插件在运行时不会自我门禁:未列出的版本只是未验证,混合安装也仍能启动;安装时的 peer 准入可能拒绝部分不匹配。证据与适配接缝见兼容性矩阵(在新标签页打开)。

把这扇窗换成你的配色。

一条命令安装——在 Rivetdeck 中则已就位。选回 Default,一切覆盖即刻消失。