前言¶
在 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 進程的權限下運行,與任意社區插件一樣,應對來源與行爲自行評估。
典型用法¶
圖形界面¶
- 打開側欄底部的 Settings(齒輪)。
- 進入 General,在 Host Appearance 行下方找到 Gruvbox themes。
- 點擊任一預覽卡片:界面立即換色,選中卡片顯示 ring 與勾選標記;保存會立刻開始,行上可能顯示
Saving…、Saved或具體失敗信息。 - 打開 Follow system appearance:在操作系統深淺變化時,在所選家族的 light/dark 成員間切換(
gruvbox-whale無 light counterpart,保持 dark)。 - 點 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。