deepseek-gruvbox-themes:爲 DeepSeek Harness 提供七套 Gruvbox 配色

前言

在 DeepSeek Harness(DSH)里長時間寫提示詞、看 diff 和終端輸出時,界面對比度和語法着色會直接影響可讀性。內置 Appearance 只有 light、dark、system 三種底色調,第三方若直接註冊七個新 theme id,還會在 profile 設置回寫時被內置主題服務覆蓋掉選擇。

下面介紹的 deepseek-gruvbox-themes 由維護者 kuzmin-lemmi 發佈,分類爲趣味換裝。它在不改動 Harness 源碼、不寫瀏覽器 storage 的前提下,用 token 覆蓋層疊在 built-in 底色調之上,並在 Settings → General 提供可預覽、可持久化的 Gruvbox 主題選擇器;同時支持跟隨系統深淺色,以及通過 Host 側 agent 工具在對話裏切換主題。

這是什麼

deepseek-gruvbox-themes 是面向 DSH Client UI 的主題插件(npm 包名 deepseek-gruvbox-themes,當前資料中版本爲 1.0.5,許可證 MIT)。它提供七套 Gruvbox 配色,每套覆蓋約 130 個 design token:背景與表面、側欄、邊框、各級文本、品牌與按鈕、交互態、成功/警告/錯誤態、菜單、Composer、滾動條、Markdown 與 diff 色、Shiki 變量,以及經 --dsw-alias-bg-base / --dsw-alias-label-primary 接好的終端色。強調色用在鏈接、焦點環、@ 引用芯片、當前設置行、設置卡片邊框與側欄品牌 lockup 等位置,大面積保持中性。

社區目錄頁:https://www.skillhub.cn/plugins/kuzmin-lemmi/deepseek-gruvbox-themes
源碼與說明:https://github.com/kuzmin-lemmi/deepseek-gruvbox-themes

七套主題一覽

資料中的主題 id、深淺底與強調色如下(Base / Accent 爲十六進制色值):

Id Scheme Base Accent
gruvbox-dark-hard dark #1d2021 #fe8019
gruvbox-dark-medium dark #282828 #fabd2f
gruvbox-dark-soft dark #32302f #d3869b
gruvbox-light-hard light #f9f5d7 #9d0006
gruvbox-light-medium light #fbf1c7 #af3a03
gruvbox-light-soft light #f2e5bc #b57614
gruvbox-whale dark #282828 #83a598

切換時,在引擎支持 view transitions 的情況下約爲 180 ms 交叉淡化;新 palette 會在 base scheme 翻轉前安裝,避免深淺切換時把舊 light token 畫在 dark 畫布上。

實現方式:token 層而非第三方 theme id

DSH 安裝的主題服務在 ui-theme.preference 裏只持久化 light、dark、system;第三方 theme id 僅是進程內值,且在 profile 更新時可能被內置服務 reconcile 掉。本插件因此保持 built-in 的 light/dark/system 偏好,通過 @deepseek-ai/dsh-client-ui-theme 的 ctx.theme.overrideTokens() 疊 Gruvbox 色板; durable 的 theme 與 followSystem 存在插件自己的 settings 條目中。

這樣做的效果是:顏色在設置回寫與重啓後仍可保留;開啓 Follow system appearance 時把 base 設爲 system,Host 翻轉 scheme 而 token 層已攜帶對應深淺兩套色;內置 Appearance 行仍可使用,在那裏改選會卸掉 Gruvbox 層而回到標準主題。

實現僅使用文檔化擴展點(資料中在與 DeepSeek Harness 0.2.2-rc.1 上構建驗證):ctx.theme.getTheme() / setTheme() / overrideTokens()、ctx.configForms.get(entryId)、Host settings 上的 schemastery Config(字段爲 .volatile())、webserver/index-inject 做預插件背景/scheme 繪製,以及 ctx.tools.register() 註冊可選的 gruvbox_theme 工具。不修改 Harness 源碼,不直接改 profile 文件,不用 localStorage。

package.json 中 engines 要求 Node >=20,DSH >=0.2.2-0 <0.3.0。

安裝與啓用

通過 DSH 插件管理器安裝。README 給出的等價命令如下(desktop 爲隨包 Web profile 名,可按實際 profile 替換):

dsh plugin --profile desktop add github:kuzmin-lemmi/deepseek-gruvbox-themes

其他支持形式:

# 本地路徑(示例爲相對目錄名)
dsh plugin --profile desktop add ./deepseek-gruvbox-themes

# npm 發佈後按包名安裝
dsh plugin --profile desktop add deepseek-gruvbox-themes

卸載:

dsh plugin --profile desktop remove deepseek-gruvbox-themes

包內含 bundle manifest 與瀏覽器側 dsh.client,由 dsh plugin 同時接好 Host 與 Web 兩端。若自行管理 profile,可在依賴列表中加入 bundle 並重啓 Host;bundle patch 會插入 id: deepseek-gruvbox-themes 條目(見 README「Manual install」)。

安裝前建議閱讀倉庫源碼與 MIT 許可證。插件在當前 DSH 進程的權限下運行,與任意社區插件一樣,應對來源與行爲自行評估。

典型用法

圖形界面

  1. 打開側欄底部的 Settings(齒輪)。
  2. 進入 General,在 Host Appearance 行下方找到 Gruvbox themes。
  3. 點擊任一預覽卡片:界面立即換色,選中卡片顯示 ring 與勾選標記;保存會立刻開始,行上可能顯示 Saving…、Saved 或具體失敗信息。
  4. 打開 Follow system appearance:在操作系統深淺變化時,在所選家族的 light/dark 成員間切換(gruvbox-whale 無 light counterpart,保持 dark)。
  5. 點 Use standard theme 移除 Gruvbox 層,恢復內置主題。

若 profile 拒絕寫入設置,界面會提示只讀,主題僅當前會話有效。

持久化示例(存在於 profile settings 文檔中插件對應行):

- id: deepseek-gruvbox-themes
  name: deepseek-gruvbox-themes
  config:
    theme: gruvbox-dark-medium
    followSystem: false

應用固定主題時,會把內置 ui-theme.preference 設爲與該 palette 匹配的 light 或 dark;followSystem: true 時設爲 system。選擇不寫 localStorage、cookie 或外部服務。

Agent 工具 gruvbox_theme

Host 側註冊工具,與選擇器寫入相同配置字段,對話中的變更經 settings 文檔同步到已連接的 Web 客戶端。請求體示例:

{ "action": "status" }
{ "action": "list" }
{ "action": "set", "theme": "gruvbox-dark-soft", "followSystem": true }
{ "action": "reset" }

適用場景與注意

適合已經在 DSH 桌面或 Web profile 上日常開發、希望統一 Gruvbox 視覺、又需要與系統深淺同步的開發者。側欄品牌與 Markdown/代碼區着色一併調整,長時間閱讀 diff 與終端時對比 README 中的 token 範圍即可判斷是否符合個人習慣。

應注意:插件依賴 DSH 0.2.2 一代的 Client UI theme API;主版本升到 0.3.0 前需對照 engines.dsh 與上游 release。社區目錄 skillhub.cn 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;星標與傳播數據以各站點當時頁面爲準,本文不羅列未在資料中出現的用戶案例。

結尾

deepseek-gruvbox-themes 把 Gruvbox 的七套配色做成可預覽、可持久化、可跟系統的 token 覆蓋層,並保留內置 Appearance 與標準主題一鍵恢復。安裝與配置以 README 爲準;進一步瞭解可在 SkillHub 目錄頁 跳轉,或在 GitHub 倉庫 查看截圖、CI 狀態與 issue。

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

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

小夜