dsh-tint-theme:为 DSH Web GUI 增加皮肤选择器

前言

DeepSeek Harness(DSH)的 Web GUI 中,Models、Agent Presets、Plugins 等设置入口已经可以作为独立导航项使用。如果希望外观配置也有一个独立入口,并且让皮肤跟随系统明暗偏好自动切换,可以把换肤能力拆成插件来做。

dsh-tint-theme 是一个 DSH 插件,由 OneZero-Y 维护,为 DSH Web GUI 提供皮肤选择器,并包含 DSH 原生的开源编辑器颜色主题移植,以及 3 个插件原创设计。

这是什么

dsh-tint-theme 的定位可以概括为:为 DSH Web GUI 增加一个皮肤选择器。

它解决两个具体问题:

1、在 Settings 中提供一个专门的 Skins 入口,而不是把大量皮肤继续塞进普通外观设置中。

2、让用户选择某个皮肤家族后,插件根据系统 prefers-color-scheme 自动启用对应的 light 或 dark 皮肤,并在系统偏好变化时切换到同一家族的对应皮肤。

安装要求

安装前应确认 DSH 环境满足以下条件:

  • 有可用的 dsh web profile。
  • 使用 @deepseek-ai/dsh-client-ui-theme 0.1.0-rc.7 或更高版本。
  • 仅当从源码安装,或安装需要构建的 git 依赖时,需要 Node.js >= 22.19

安装与启用

先执行安装命令,其中 <your-profile> 替换为当前要使用的 DSH profile:

dsh plugin --profile <your-profile> add github:OneZero-Y/dsh-tint-theme

安装后重启该 profile,例如运行:

dsh web

然后刷新浏览器页面。

如果第一次从 git 安装时遇到 pnpm allowBuilds 错误,可以按以下步骤处理:

1、查看错误信息中提示的 exact package key。

2、在该 profile 的 pnpm-workspace.yaml 中,把这个 key 加到 allowBuilds

3、重新运行上面同一条 add 命令。

这个限制来自 pnpm 10+ 对 git 依赖构建脚本的安全检查,不代表插件本身损坏。

本地源码安装

如果需要从本地构建并安装,可以先执行以下步骤:

git clone https://github.com/OneZero-Y/dsh-tint-theme.git
cd dsh-tint-theme
npm install
npm run build
dsh plugin --profile <your-profile> add "$PWD"

这一步会先拉取源码、安装依赖并构建产物,再把当前目录作为本地插件加入指定 profile。

核心功能

安装完成后,Settings 导航中会新增一个 Skins 入口,与 Models / Agent Presets / Plugins 并列。

Skins 页面会显示一组皮肤家族瓦片,以及一个 Default 瓦片。选择某个皮肤家族后:

  • 插件根据当前系统 prefers-color-scheme 启用该家族的 light 或 dark 皮肤。
  • 如果系统颜色偏好发生变化,插件会自动切换到该家族对应的 light 或 dark 皮肤。
  • 用户选择的皮肤家族会保存到插件自己的 settings namespace,并在启动时重新应用。
  • 选择 Default 后,外观控制权会交回内置 Appearance 行。

皮肤来源

dsh-tint-theme 共包含 25 个皮肤家族:

  • 22 个皮肤家族移植自开源编辑器颜色主题。
  • 3 个皮肤家族为本插件原创设计:Aftertype、Signalwave、Quietloop。

Aftertype、Signalwave、Quietloop 不是对任何商业编辑器或 AI coding tool 的移植,也没有从属关系。

移植主题的完整列表、上游仓库和许可证信息见仓库中的 THIRD_PARTY_NOTICES.md

为什么要求 rc.7

这个插件要求 @deepseek-ai/dsh-client-ui-theme 0.1.0-rc.7 或更高版本,因为它需要把自己的皮肤选择持久化到插件 settings namespace。

早期针对 rc.6 及更低版本的发布无法保留自己的选择:宿主会把第三方 settings namespace 放在一个 allowlist 后面,插件自己的偏好存储无法被浏览器读回。rc.7 移除了这个 allowlist,因此插件才能保存用户选择,并在启动时重新应用。

卸载

执行下面的命令移除插件:

dsh plugin --profile <your-profile> remove @onezero-y/dsh-tint-theme

适用场景与注意

这个插件适合在 DSH Web GUI 中使用 dsh web profile,并希望把皮肤切换作为独立设置项的用户。

使用前需要注意:

  • 插件以当前 DSH 进程权限运行,安装前应检查源码、依赖和许可证。
  • 插件许可证为 MIT;移植主题的第三方许可证信息见 THIRD_PARTY_NOTICES.md
  • 从源码安装时,需要满足 Node.js >= 22.19 的要求。
  • DSH 插件生态中的社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不要把它理解为官方应用商店。

结尾

dsh-tint-theme 提供了一个可安装的 DSH Web GUI 皮肤选择器:新增 Skins 设置入口,跟随系统明暗偏好,保存用户选择,并覆盖 25 个皮肤家族。

GitHub 源码地址:

https://github.com/OneZero-Y/dsh-tint-theme

如果通过 DSH 社区目录浏览插件,可按插件名 dsh-tint-theme 搜索。

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

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

小夜