dsh-theme-quartet:四套可切换的 DSH Web 界面皮肤

前言

DeepSeek Harness(DSH)桌面版的 Web 界面自带明暗主题,但「light / dark / system」之外,宿主设置里的主题字段有白名单,自定义主题 id 存不进去。若只想换配色和装饰、不动聊天逻辑和布局,改宿主源码或硬改全局样式成本高,也容易和大版本升级冲突。社区插件 dsh-theme-quartet(维护者 RZ-0410,分类:趣味换装)走另一条路:在界面之上叠一层设计令牌(--dsw-alias-* / --dsw-specific-*)和装饰 CSS,提供樱风、褐东风、潮汐、月壤四套预设,用悬浮面板切换,明暗仍跟随宿主。

这是什么

主题四合 · dsh-theme-quartet 是给 DSH 桌面版 Web 界面用的换肤插件。不修改宿主源码、不替换渲染逻辑;四套皮肤各含 light / dark 色板,切换宿主明暗时自动换值。皮肤选择写在浏览器 localStorage(键 dsh-theme-quartet.skin),不进 DSH 设置文档,因此入口在右下角换肤圆钮,而不是「设置 → 主题」。

皮肤 配色 气质 圆角
樱风(JK) 藏青 / 制服红 / 奶油粉 制服、樱花、细格纹 偏软(16px)
褐东风 青铜 / 焦褐 / 仪表金 云纹铜构、仪表盘 收紧(4px)
潮汐 深青 / 靛蓝 / 浪白 青海、水平波纹 放大(20px)
月壤 月岩灰 / 星蓝 / 银紫 陨野、星点、银晕 最大(30px)

README 中的预览截图来自 preview.html 的宿主替身,装进 DSH 后布局由宿主决定,配色与底图思路一致。

核心功能

下面介绍插件在运行时的主要能力,均来自仓库说明与实现描述。

  1. 令牌叠层:通过 ctx.theme.overrideTokens("dsh-theme-quartet", tokens) 覆盖令牌;ctx.effect 在卸载时整层摘除,换肤时同一 source 再调一次即可替换,避免闪回原生色。
  2. 装饰底图:底图只画在 [data-conversation-scroll] 上,用 90° 渐变做「中间纸面、两侧透气」的纱幕;侧栏、输入框、代码块保持不透明表面,长文阅读不受影响。
  3. 换肤面板:Shadow DOM 隔离样式;配色仍读 --dsw-alias-*,面板会随当前皮肤变化。无主题服务时降级为 body 上的 !important 变量表,功能保留,换肤动画可能略少。
  4. 与其它皮肤插件:同一套令牌被多个插件覆盖时,后注册的一层逐令牌胜出;与 dsh-joi-channel-theme 等同时启用可能出现混色,建议一次只开一个皮肤插件。

package.json 声明依赖 dsh >= 0.1.7-rc.1、Node >= 20;客户端注入依赖 @deepseek-ai/dsh-client-ui-theme。当前发布版本 0.1.0,许可证 MIT。

安装与启用

官方推荐用 DSH CLI 一条命令安装(profile 为 web):

dsh plugin --profile web add dsh-theme-quartet

装完后完全退出并重启 DSH。右下角应出现换肤圆钮;Alt + Shift + S 也可开关面板。

若要锁定 Release 版本、或不走 npm,可安装 GitHub 上的 tgz(示例为 v0.1.0):

dsh plugin --profile web add "https://github.com/RZ-0410/dsh-theme-quartet/releases/download/v0.1.0/dsh-theme-quartet-0.1.0.tgz"

桌面 profile 还有本地脚本、手动改 cordis.patch.yml、以及 dsh plugin --profile desktop add "<本目录绝对路径>" 等方式,细节见仓库 README。无论哪种方式,loader 组合变更后都需要完全重启 DSH;之后若只改 bundle,刷新页面即可。

关闭本插件:从 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml 移除对应的 insert: theme-quartet 条目后重启。

典型用法

经过上面的安装与重启,可按下面方式操作(与 README「使用」一节一致)。

  1. 右下角圆钮:打开 2×2 换肤卡片,点选即生效;圆钮画面反映当前皮肤。
  2. Alt + Shift + S:开关面板。
  3. 面板打开时按 1 / 2 / 3 / 4:直接切换到四套皮肤之一。
  4. 双击圆钮:恢复原生外观,并把圆钮位置复位。
  5. 拖动圆钮:位置会记住,便于避开其它悬浮控件。
  6. 面板底部「恢复原生外观」:摘掉整层令牌,界面回到未装插件时的样子。

未安装插件时,可用仓库里的 preview.html 离线预览四套皮肤;开发者改色板后执行 node build.mjs 生成 lib/client.js 与预览页,色板唯一数据源为 src/skins.mjs。

适用场景与注意

适合长期在 DSH 桌面 Web 界面工作、希望多套视觉风格可快速切换、又不愿 fork 宿主的开发者。插件以当前 DSH 进程及其配置的权限运行;安装前应在 GitHub 仓库 查看源码与 MIT 许可证,并确认与本地 DSH 版本满足 engines 要求。

已知限制(来自 README):宽窗口下底图可能被正文列挤到两侧;面板位置按像素记忆,小窗口会被夹回可视区;宿主大版本若改动 --dsw-* 令牌名,需同步 src/skins.mjs 映射。底图透明度可在 src/skins.mjs 的 normalize() 里调整 veil,更强人物感会牺牲文字对比度。

社区目录 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系;星标等元数据以各站点当时展示为准。

结尾

dsh-theme-quartet 用纯令牌与装饰层给 DSH Web UI 提供四套可切换皮肤,交互集中在右下角面板与快捷键,不碰宿主主题白名单。需要安装命令、Release 包路径、自定义构建与共存说明时,以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/RZ-0410/dsh-theme-quartet
  • GitHub:https://github.com/RZ-0410/dsh-theme-quartet
羽毛球分组比赛记分
小程序二维码

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

小夜