前言¶
用 DSH(DeepSeek Harness)做日常開發,web 界面是盯得最久的地方。默認只有一套外觀,想用深色模式、想跟隨系統切換、想把自己在 VS Code 裏用了多年的主題搬過來,通常只能手改樣式,改完重啓就沒了。
DSH 的理念是「一切皆插件」,外觀這件事也可以交給插件來做。下面介紹的 dsh-themes 就是這樣一個插件:內置調色板、明 / 暗 / 跟隨系統外觀模式、Open VSX 搜索安裝、VS Code 主題導入,主題庫持久化,重啓後恢復。
這是什麼¶
dsh-themes 是 DSH 運行時的外觀與主題插件,由 MangMax 維護,license 爲 MIT,package.json 中版本爲 0.1.8。它覆蓋 DSH 設計平臺的 95 個顏色 token,從表面層級到按鈕、滾動條、Toast/Tooltip 全部隨主題切換,而不是隻換一個 accent 色。
主題引擎(語義角色映射、雙種子生成、對比度求解、OKLCH 感知導入映射)的架構靈感來自 t3code(github.com/pingdotgg/t3code)。
核心功能¶
主題卡片模型¶
每個主題含明色 / 暗色兩個變體槽,槽內聚合全部明色 / 暗色變體可選;導入的擴展聚合爲一個主題卡片。DSH 原生外觀本身也是一張默認主題卡片——刪除使用中的導入主題,或點擊「恢復默認主題」,都會回退到它。
變體選擇器與外觀模式¶
變體選擇器是一列多色融合球:選中放大(固定槽位不跳動)、溢出時左右箭頭導航、懸停顯示變體名。
外觀模式支持跟隨系統 / 淺色 / 深色三種,明暗變體隨模式自動切換;主題庫默認未指定時由 DSH 默認主題兜底。
搜索安裝(Open VSX)¶
單請求搜索,結果展示圖標 / 作者 / 許可證 / 評分 / 更新時間;懸浮名稱或圖標查看詳情卡片,點擊可打開擴展頁或倉庫。點「導入」一步完成下載、解析(include 合併)與聚合導入,版本化緩存讓重複導入秒開。
VS Code 主題導入¶
三種入口:本地擴展掃描、URL 獲取、粘貼 JSON。本地掃描的目錄包括:
~/.vscode/extensions
~/.vscode-insiders/extensions
~/.cursor/extensions
導入使用 OKLCH 感知引擎派生表面,workbench 指定值有對比度門控,操作色獨立於 accent。
完整 token 覆蓋與顏色編輯器¶
DSH 設計平臺 95 個顏色 token 全部隨主題覆蓋:表面層級(bg-layer-1~3 / 浮層 / 遮罩)、文字層級(primary~caption)、交互反饋、按鈕、Markdown、狀態補充、滾動條、Toast/Tooltip、側欄與菜單等專用 token。運行狀態點陣(--dsh-state-ongoing → --dsw-static-deepseek-450)也跟隨主題。
主題卡片「修改」進入二級頁面:改名、明暗切換、按語義分組的 token 色塊與 hex 編輯(即時生效)、重置修改。
持久化與跨平臺¶
主題庫保存到 ~/.dsh/dsh-themes.json,重啓後恢復;持久化數據保持語言中立,展示時按 DSH 語言設置(設置 → 通用 → Language)自動本地化,切換即時生效。設置面板「主題」菜單圖標替換爲調色板圖標,取自 reicon 圖標集(github.com/dqev/reicon)。
Windows / macOS / Linux 均可用:網絡與本地文件操作全部在宿主進程內完成(全局 fetch + node 內置模塊 + fflate 內存解壓),不依賴 shell 的 curl/mkdir/unzip 等 Unix 命令,Windows(pwsh)下同樣可用。
安裝與啓用¶
方式一,從 npm registry 安裝(README 標註爲已發佈後可用):
dsh plugin --profile web add dsh-themes
方式二,本地一鍵構建安裝,適合開發迭代:
bash scripts/install.sh
兩種方式安裝後均需重啓 dsh web,然後進入 設置 → 主題 使用。
卸載:
dsh plugin --profile web remove dsh-themes
或刪除 profile 依賴後重啓 dsh web。卸載後調色板覆蓋層自動移除,外觀恢復默認。
典型用法¶
先做基礎設置:進入 設置 → 主題,選好外觀模式(跟隨系統 / 淺色 / 深色),再挑主題。
1、明暗獨立歸屬:點擊變體只設置該側外觀的主題,不切換外觀模式,淺色與暗色可以來自不同主題;點擊卡片名稱,則明暗兩側同時使用該主題。
2、編輯自定義主題:內置主題不可直接修改,先點「複製」生成自定義副本,再進「修改」改名並編輯分組 token 的 hex 值,改動即時生效,不滿意可重置修改。
3、從 VS Code 導入:選擇掃描本地擴展、URL 獲取或粘貼 JSON 三種方式之一,導入的主題可繼續修改、刪除。
4、搜索安裝:在 Open VSX 中搜索,查看卡片內簡介與鏈接,一鍵導入,重複導入走緩存秒開。
開發相關¶
源碼爲 TypeScript 模塊,由 VitePlus(vp)打包爲 DSH 插件函數體。常用命令:
bash scripts/install.sh --pack-only # 只構建並打包,不安裝
vp pack # 僅構建 dist/client/index.cjs 與 dist/host/index.cjs
vp check # 語法檢查
代碼分爲 client / host 兩半區:client 負責設置頁 UI 與調色板引擎,host 負責 RPC 側的掃描、讀取、搜索、安裝與持久化。
適用場景與注意¶
適合的用戶:長時間使用 DSH web、需要深色模式或跟隨系統外觀的人;想把 VS Code / Cursor 裏已有主題帶過來的人;想爲 DSH 定製一套完整配色的團隊。
使用前注意:
1、插件以當前 dsh 進程的權限運行,安裝前建議先檢查源碼(github.com/MangMax/dsh-themes)與許可證(MIT)。
2、npm 發佈狀態以實際爲準:README 中方式一標註「已發佈後」可用,若尚未發佈,用 bash scripts/install.sh 本地構建安裝即可。
3、社區插件目錄(https://www.skillhub.cn/plugins/MangMax/dsh-themes)是獨立站點,與 DeepSeek、幻方無官方從屬關係。
經過上面的步驟,DSH 的外觀就從一套固定樣式變成了可搜索、可導入、可編輯、可持久化的主題庫。插件目錄見 https://www.skillhub.cn/plugins/MangMax/dsh-themes ,源碼見 https://github.com/MangMax/dsh-themes 。