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 搜索。

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

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

小夜