前言¶
DeepSeek Harness(DSH)的 Web GUI 內建外觀只有 淺色 / 深色 / 跟隨系統 三檔。如果你在編輯器和終端裏用慣了 Catppuccin、Nord 這類配色,切到 DSH 界面時多少會覺得顏色不是自己的。直接改樣式表當然可行,但改動會和內建樣式攪在一起,上游一升級就得重新對一遍。下面介紹的 dsh-theme-pack 走的是另一條路:不碰樣式表,只通過 DSH 的主題契約註冊語義 token,就能讓 Web GUI 換上 16 套社區流行配色。
這是什麼¶
dsh-theme-pack 是由 math-lrz 維護的 DSH 插件,MIT 協議,面向 DSH 的 web profile,提供 16 套第三方主題皮膚。它解決的就是上面這個問題:給 Web GUI 多一批現成的外觀選項,點選即時生效,且不侵入 DSH 本身的樣式體系。
主題清單¶
16 套主題來自這些配色家族,源調色板定義了明暗變體的,明 / 暗兩版都有:
- Catppuccin Mocha / Latte
- Gruvbox Dark / Light
- Everforest
- Rosé Pine / Dawn
- Solarized Dark / Light
- Kanagawa
- Tokyo Night / Tokyo Night Storm
- Night Owl
- Nord
- Dracula
- One Dark
核心特性¶
零侵入。 不重寫任何樣式表,只覆蓋 DSH 主題契約暴露的 --dsw-alias-* / --dsw-specific-* 語義 token,每套 80 個;未覆蓋的 token 自動回落內建調色板,皮膚不會和基礎樣式打架。
免構建鏈。 客戶端 bundle 是手寫的 lazy CJS(window.__ModuleLoader__.load),直接可裝載,不需要 tsdown / vite。
自帶選擇器。 在 設置 → 通用 注入「主題皮膚(16 套)」面板,色點立方點選即換膚,中英文案齊全。
數據源單一。 16 套主題的全部顏色只由 src/palettes.mjs 一份調色板文件派生,映射規則集中在 src/tokens.mjs。
工作原理¶
DSH 的主題契約提供 ThemeRuntime.register({ id, colorScheme, tokens }) 用於註冊第三方主題。本插件的客戶端 bundle 用它註冊 16 套主題,每次註冊都掛在 ctx.effect 上,插件卸載時會逆序回收。host 半側的 lib/index.mjs 是一個 no-op 插件,存在的意義只是讓 cordis Loader 有一條可加載的條目。
安裝與啓用¶
前提:已安裝 DSH 並有 web profile(dsh web 可用)。
1、把插件裝進 web profile。git 依賴安裝走 pnpm:
dsh plugin --profile web add git+https://github.com/math-lrz/dsh-theme-pack.git
也可以走 npm 安裝,裝完自動掛載,無需手動 insert:
dsh plugin --profile web add dsh-theme-pack
2、如需手動掛載,編輯 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml,追加一條 loader 插入。注意 name 必須是包名,不能寫 file:/// 路徑:
- insert:
- id: dsh-theme-pack
name: 'dsh-theme-pack'
3、刷新瀏覽器頁面。patch 改動會觸發熱重掛,通常不需要重啓 dsh web。
日常使用¶
經過上面的步驟,打開 設置 → 通用 → 外觀,下方會出現「主題皮膚(16 套)」面板:16 個色點立方,點擊立即換膚。內建的 淺色 / 深色 / 跟隨系統 三檔繼續可用,隨時可以切回。
想加一套自己的主題¶
得益於數據源單一的設計,擴展成本很低:
1、在 src/palettes.mjs 裏追加一個調色板對象;
2、運行 node scripts/build.mjs。
token 映射、選擇器、文案、預覽頁全部自動派生。
已知限制¶
- 主題選擇不持久化(上游限制):
ui-theme.preference的內建設置 schema 只認light / dark / system,第三方主題 id 只在進程內有效。刷新頁面後會回到內建外觀,需要重新點選。 - 遠程(非本機)瀏覽器同樣可以選主題,但同樣不持久。
- 遮罩類 token(
--dsw-alias-bg-mask-*)刻意沿用內建默認值,未納入皮膚映射。
適用場景與注意事項¶
適合誰:
- 日常使用 DSH Web GUI、想把編輯器裏的配色習慣帶過來的人;
- 想多幾個外觀選項、但不想重寫樣式表的人;
- 想按自己的口味加主題、從一份調色板文件起步的人。
注意事項:
- 插件以當前 dsh 進程的權限運行,安裝前建議先瀏覽倉庫源碼,確認代碼與許可沒問題再裝。本插件爲 MIT 協議;各主題調色板的版權歸原主題作者(Catppuccin、Gruvbox、Everforest、Rosé Pine、Solarized、Kanagawa、Tokyo Night、Night Owl、Nord、Dracula、One Dark 等開源配色的維護者)。
- 由於上游設置 schema 的限制,主題選擇目前不能持久化,刷新頁面要重新點選,使用前要有這個預期。
結尾¶
一句話總結:一條安裝命令加一段 patch,DSH Web GUI 就能換上 16 套社區流行配色;不碰樣式表、不需要構建鏈,卸載時註冊的主題也會被逆序回收。
- GitHub 倉庫:https://github.com/math-lrz/dsh-theme-pack
- 社區插件目錄頁:https://www.skillhub.cn/plugins/math-lrz/dsh-theme-pack