前言¶
DeepSeek Harness(DSH)的 Web 界面有一套設計 token(--dsw-alias-*、--dsw-specific-* 等)驅動的深色外觀。若你長期用 Dracula 配色習慣 #20212B / #282A36 / #44475A 這類色值,僅靠瀏覽器用戶樣式很難完整覆蓋側欄、輸入框、菜單和 Shiki 代碼高亮——DSH 裏不少模塊走獨立 token 層,只改靜態變量會漏色。
下面介紹社區插件 dsh-theme-dracula(維護者 PuerJJJ):在 token 層重述整站顏色,並在 設置 → 通用設置 裏用開關切換,分類屬於 DSH 社區目錄中的「趣味換裝」。
這是什麼¶
dsh-theme-dracula 是面向 DeepSeek Harness 的 Dracula 深色皮膚插件。它不改業務邏輯,通過宿主注入 CSS 變量與客戶端設置項,把側欄、對話區、輸入框、菜單、設置頁和代碼高亮換成與 draculatheme.com 上的 DeepSeek 移植版 對齊的取值。
當前 package 版本爲 0.1.1,許可證 MIT。GitHub 倉庫:PuerJJJ/dsh-theme-dracula;社區目錄頁:skillhub.cn 插件頁(與 DeepSeek / 幻方無官方從屬,僅爲社區收錄站點)。
核心功能¶
整站 token 換膚¶
插件覆蓋四層變量,而不是隻改一層 alias:
- 101 個
--dsw-alias-*通用別名; - 11 個
--dsw-specific-*(側欄、輸入框、氣泡、菜單等模塊層;README 說明不改這層時側欄不會跟着變色); - 11 個
--shiki-token-*(DSH 代碼高亮走theme: "css-variables",改變量即可); - think 漸變、選區色,以及
--dsh-boot-bg等補充項。
首幀即是 Dracula,且不搶淺色¶
宿主半在每次頁面渲染時注入 <style> 與首幀腳本。腳本在客戶端 bundle 之前執行:讀 localStorage 開關、掛到 globalThis.__DSH_DRACULA__,再按 body[data-ds-dark-theme] 決定是否給 <body> 加 data-dsh-dracula,並用 MutationObserver 跟隨外觀切換,避免先閃一下內置深色再換膚。
只在 DSH 處於深色外觀時生效;用戶切到「淺色」後主題自動讓位。
設置頁開關,而非 ui-theme 第三方 id¶
客戶端半向 settings.general.item 槽位註冊一行(order 12):左側標題、描述與八色圓點,右側爲 Switch。開關寫回 localStorage,paint() 僅 toggling data-dsh-dracula。
README 明確說明:沒有註冊成 ui-theme 第三方主題——ui-theme 只持久化 light | dark | system,字體或外觀變更會把第三方 id 頂回內置值;本插件用 CSS 皮膚層跟隨外觀,行爲更穩。
零依賴實現¶
宿主半與客戶端半均爲手寫實現,宿主半隻使用 Node 內建模塊,不引入 @deepseek-ai/*,不需要構建步驟。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前請自行查看倉庫源碼與 MIT 許可證。社區目錄星標數以頁面展示爲準(線索中爲 0)。
插件市場(收錄後)¶
在 DeepSeek Harness 的「插件」頁搜索 dsh-theme-dracula,安裝後重啓應用。
本地安裝¶
在克隆或解壓得到的倉庫目錄下執行(命令來自倉庫 README):
cd dsh-theme-dracula
node scripts/install.mjs --profile desktop # dry-run:先看清要改什麼
node scripts/install.mjs --profile desktop --apply # 建軟鏈並登記到 dsh.profile.bundles
腳本只在 $DSH_HOME/profiles/<profile>/node_modules/ 下建立指向本包的軟鏈,並把包名追加進該 profile 的 dsh.profile.bundles;寫入前會備份 package.json.bak-dracula,不改 dependencies、不動 pnpm-lock.yaml。
重啓 DeepSeek Harness 後,打開 設置 → 通用設置,找到 「Dracula 主題」 並打開開關。
卸載¶
node scripts/install.mjs --profile desktop --uninstall --apply
或手動刪除 node_modules/dsh-theme-dracula 軟鏈、從 dsh.profile.bundles 移除包名,然後重啓。
典型用法¶
- 完成上述安裝並重啓 DSH。
- 保持界面爲深色外觀(系統或應用內深色均可;淺色下插件不生效)。
- 進入 設置 → 通用設置,打開 Dracula 主題 開關。
- 側欄、聊天、Composer、菜單與代碼塊應呈現 Dracula 調色板;再次關閉開關即恢復 DSH 默認 token 配色。
維護者提供的自檢命令(可選):
node scripts/verify.mjs
# 可選:對比內置 alias token 表
node scripts/verify.mjs --audit /tmp/dsh-probe/alias-table.txt
工作原理簡述¶
宿主半 lib/index.js 訂閱 webserver/index-inject,向頁面注入樣式與腳本。樣式寫在 :root:root body[data-dsh-dracula]{…} 下,用重複僞類提高特異度,壓過設計平臺運行時 append 的規則,不依賴注入順序。
客戶端半 lib/client.js 通過 window.__ModuleLoader__.load({ id: "dsh-theme-dracula", … }) 加載,inject = ["theme", "slots", "locale"]:監聽 theme/change,註冊設置項與中英文案。
與 draculatheme.com/deepseek 的關係:後者是給 chat.deepseek.com 的 Stylus 樣式,覆蓋 --dsw-static-* 與 Prism 類名;本插件在同一套配色下重述 DSH 的 alias、specific 與 Shiki token 三層,避免 Harness 內大面積漏色。
選區色未直接用 Dracula 的 #44475a(與行內代碼背景相同會糊在一起),改爲 #bd93f9 42% 疊底,便於在頁面與代碼塊中辨認選中內容。
適用場景與注意¶
- 適合:長期在 DSH Desktop/Web GUI 工作、偏好 Dracula 配色、希望側欄與代碼高亮一併統一、且接受在通用設置裏多一個開關的用戶。
- 注意:插件不替代 DSH 自帶的 light/dark/system 選擇;淺色模式下自動關閉視覺生效。本地安裝會修改 profile 下的
dsh.profile.bundles與node_modules軟鏈,建議先跑 dry-run。DSH 生態理念是「一切皆插件」;安裝來源以 GitHub 與社區目錄頁爲準,自行審計後再啓用。
結尾¶
dsh-theme-dracula 把 Dracula 配色落到 DSH 整站設計 token 上,深色下可開關、首幀不閃、代碼高亮一併跟隨。需要詳情與截圖見 GitHub README,在 Harness 內找插件可看 社區目錄頁。