前言¶
用 DSH(DeepSeek Harness)做日常开发,web 界面是盯得最久的地方。默认只有一套外观,想用深色模式、想跟随系统切换、想把自己在 VS Code 里用了多年的主题搬过来,通常只能手改样式,改完重启就没了。
DSH 的理念是「一切皆插件」,外观这件事也可以交给插件来做。下面介绍的 dsh-themes 就是这样一个插件:内置调色板、明 / 暗 / 跟随系统外观模式、Open VSX 搜索安装、VS Code 主题导入,主题库持久化,重启后恢复。
这是什么¶
dsh-themes 是 DSH 运行时的外观与主题插件,由 MangMax 维护,license 为 MIT,package.json 中版本为 0.1.8。它覆盖 DSH 设计平台的 95 个颜色 token,从表面层级到按钮、滚动条、Toast/Tooltip 全部随主题切换,而不是只换一个 accent 色。
主题引擎(语义角色映射、双种子生成、对比度求解、OKLCH 感知导入映射)的架构灵感来自 t3code(github.com/pingdotgg/t3code)。
核心功能¶
主题卡片模型¶
每个主题含明色 / 暗色两个变体槽,槽内聚合全部明色 / 暗色变体可选;导入的扩展聚合为一个主题卡片。DSH 原生外观本身也是一张默认主题卡片——删除使用中的导入主题,或点击「恢复默认主题」,都会回退到它。
变体选择器与外观模式¶
变体选择器是一列多色融合球:选中放大(固定槽位不跳动)、溢出时左右箭头导航、悬停显示变体名。
外观模式支持跟随系统 / 浅色 / 深色三种,明暗变体随模式自动切换;主题库默认未指定时由 DSH 默认主题兜底。
搜索安装(Open VSX)¶
单请求搜索,结果展示图标 / 作者 / 许可证 / 评分 / 更新时间;悬浮名称或图标查看详情卡片,点击可打开扩展页或仓库。点「导入」一步完成下载、解析(include 合并)与聚合导入,版本化缓存让重复导入秒开。
VS Code 主题导入¶
三种入口:本地扩展扫描、URL 获取、粘贴 JSON。本地扫描的目录包括:
~/.vscode/extensions
~/.vscode-insiders/extensions
~/.cursor/extensions
导入使用 OKLCH 感知引擎派生表面,workbench 指定值有对比度门控,操作色独立于 accent。
完整 token 覆盖与颜色编辑器¶
DSH 设计平台 95 个颜色 token 全部随主题覆盖:表面层级(bg-layer-1~3 / 浮层 / 遮罩)、文字层级(primary~caption)、交互反馈、按钮、Markdown、状态补充、滚动条、Toast/Tooltip、侧栏与菜单等专用 token。运行状态点阵(--dsh-state-ongoing → --dsw-static-deepseek-450)也跟随主题。
主题卡片「修改」进入二级页面:改名、明暗切换、按语义分组的 token 色块与 hex 编辑(即时生效)、重置修改。
持久化与跨平台¶
主题库保存到 ~/.dsh/dsh-themes.json,重启后恢复;持久化数据保持语言中立,展示时按 DSH 语言设置(设置 → 通用 → Language)自动本地化,切换即时生效。设置面板「主题」菜单图标替换为调色板图标,取自 reicon 图标集(github.com/dqev/reicon)。
Windows / macOS / Linux 均可用:网络与本地文件操作全部在宿主进程内完成(全局 fetch + node 内置模块 + fflate 内存解压),不依赖 shell 的 curl/mkdir/unzip 等 Unix 命令,Windows(pwsh)下同样可用。
安装与启用¶
方式一,从 npm registry 安装(README 标注为已发布后可用):
dsh plugin --profile web add dsh-themes
方式二,本地一键构建安装,适合开发迭代:
bash scripts/install.sh
两种方式安装后均需重启 dsh web,然后进入 设置 → 主题 使用。
卸载:
dsh plugin --profile web remove dsh-themes
或删除 profile 依赖后重启 dsh web。卸载后调色板覆盖层自动移除,外观恢复默认。
典型用法¶
先做基础设置:进入 设置 → 主题,选好外观模式(跟随系统 / 浅色 / 深色),再挑主题。
1、明暗独立归属:点击变体只设置该侧外观的主题,不切换外观模式,浅色与暗色可以来自不同主题;点击卡片名称,则明暗两侧同时使用该主题。
2、编辑自定义主题:内置主题不可直接修改,先点「复制」生成自定义副本,再进「修改」改名并编辑分组 token 的 hex 值,改动即时生效,不满意可重置修改。
3、从 VS Code 导入:选择扫描本地扩展、URL 获取或粘贴 JSON 三种方式之一,导入的主题可继续修改、删除。
4、搜索安装:在 Open VSX 中搜索,查看卡片内简介与链接,一键导入,重复导入走缓存秒开。
开发相关¶
源码为 TypeScript 模块,由 VitePlus(vp)打包为 DSH 插件函数体。常用命令:
bash scripts/install.sh --pack-only # 只构建并打包,不安装
vp pack # 仅构建 dist/client/index.cjs 与 dist/host/index.cjs
vp check # 语法检查
代码分为 client / host 两半区:client 负责设置页 UI 与调色板引擎,host 负责 RPC 侧的扫描、读取、搜索、安装与持久化。
适用场景与注意¶
适合的用户:长时间使用 DSH web、需要深色模式或跟随系统外观的人;想把 VS Code / Cursor 里已有主题带过来的人;想为 DSH 定制一套完整配色的团队。
使用前注意:
1、插件以当前 dsh 进程的权限运行,安装前建议先检查源码(github.com/MangMax/dsh-themes)与许可证(MIT)。
2、npm 发布状态以实际为准:README 中方式一标注「已发布后」可用,若尚未发布,用 bash scripts/install.sh 本地构建安装即可。
3、社区插件目录(https://www.skillhub.cn/plugins/MangMax/dsh-themes)是独立站点,与 DeepSeek、幻方无官方从属关系。
经过上面的步骤,DSH 的外观就从一套固定样式变成了可搜索、可导入、可编辑、可持久化的主题库。插件目录见 https://www.skillhub.cn/plugins/MangMax/dsh-themes ,源码见 https://github.com/MangMax/dsh-themes 。