dsh-theme-dracula:爲 DeepSeek Harness 整站套用 Dracula 配色

前言

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 移除包名,然後重啓。

典型用法

  1. 完成上述安裝並重啓 DSH。
  2. 保持界面爲深色外觀(系統或應用內深色均可;淺色下插件不生效)。
  3. 進入 設置 → 通用設置,打開 Dracula 主題 開關。
  4. 側欄、聊天、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 內找插件可看 社區目錄頁。

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

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

小夜