前言¶
DeepSeek Harness(DSH)的界面皮膚主要由設計令牌(design tokens)驅動,換一套配色往往要對着官方主題結構逐項改,或只能接受內置主題。若你已經在 tweakcn 或 shadcn 生態裏配好了一套 CSS 變量主題,更希望「複製 → 粘貼 → 明暗兩套一起生效」,而不是手寫映射表。
下面介紹社區插件 dsh-custom-theme(維護者 cndoin):把 tweakcn 導出的 CSS 解析爲 DSH 可用的亮色 / 暗色令牌,並可選壁紙與輸入區液態玻璃效果。插件歸類爲 SkillHub 上的「趣味換裝」,當前 GitHub 星標爲 0;版本 1.0.0,許可證 MIT。
這是什麼¶
dsh-custom-theme 面向使用 DSH web 配置檔(默認 web)或桌面端託管配置檔的開發者:在設置裏粘貼主題 CSS,覆蓋整機 UI 的別名層、具體表面、焦點環、圓角、字體等約 140–156 個設計令牌,外加 38 條靜態色階。數據來源聲明爲離線運行、無遙測。
它與「改模型輸出速度」無關:README 明確說明不會改寫對話渲染與 MarkdownText 流水線;玻璃與壁紙默認關閉時,不注入額外 CSS、SVG 濾鏡或令牌覆蓋。
核心功能¶
一次粘貼,明暗兩套色板¶
解析器從粘貼內容中只讀取 CSS 自定義屬性聲明,不把整段內容當作樣式表插入 DOM。約定上 :root { … } 映射亮色,:root.dark { … }(及多種常見暗色選擇器)映射暗色;單套主題時插件會按亮度推導配套方案。
對 url()、@import、expression()、javascript: 以及異常括號、分號等會拒絕,降低粘貼不可信 CSS 帶來的風險。
全界面令牌覆蓋¶
通過固定來源 id 調用 ctx.theme.overrideTokens('dsh-custom-theme', tokens),重複應用會替換同一層而非疊加。ThemePresenter 將令牌寫到 body.style.setProperty。
壁紙啓用時,僅允許兩個 shell 令牌變半透明(--dsw-alias-bg-base、--dsw-specific-sidebar-fill),避免把代碼塊、軌跡表等層的背景一起改糊;未應用自定義主題時不覆蓋任何 shell 令牌。
可選壁紙¶
支持圖片或視頻,提供 blur / dim / tint 滑塊;可選本地文件(存儲前縮放到 1920px 並重編碼爲 JPEG)。壁紙與主題粘貼相互獨立,改動即時生效,無需再次點 Apply。
可選液態玻璃輸入區¶
針對穩定屬性 [data-composer-card] 的磨砂輸入卡片,帶跟隨指針的高光;刻意不使用會擠壓佈局的 transform、composer 上的 SVG filter: url(...) 等(README 記錄了早期位移濾鏡導致卡頓的經驗並已移除)。
輸入格式兼容面¶
README 列出對 tweakcn v3/v4、多種顏色函數、shadcn registry JSON、{ light, dark } / cssVars、Markdown 代碼圍欄等格式的測試矩陣;npm test 在開發側包含 97 個單元測試及多項兼容性腳本(運行插件本身不需要本地構建,倉庫已提交生成的 client.js)。
安裝與啓用¶
環境要求¶
- DSH 使用 CLI 管理的 web 配置檔時,可按下列步驟安裝;desktop 配置檔由 Electron 應用管理,CLI 安裝會被拒絕。
- 開發與重建
client.js需要 Node.js ≥ 22.12.0;日常使用無需 build。
web 配置檔¶
先將插件源碼目錄放到 $HOME/.dsh/plugins/dsh-custom-theme(倉庫地址見文末鏈接),再執行 README 中的 link 安裝步驟:
dsh plugin --profile web add link:"$HOME/.dsh/plugins/dsh-custom-theme"
dsh plugin --profile web install
安裝後需重啓宿主進程(例如 dsh web),宿主側僅在進程啓動時掛載。
可用下面命令確認是否寫入 profile 的 bundle:
grep -A6 '"dsh"' "$HOME/.dsh/profiles/web/package.json
# 應在 dsh.profile.bundles 中看到 dsh-custom-theme
若出現 declares no dsh.bundle,README 說明 link: 依賴有時不會自動建好根鏈接,需在 profile 的 package.json 裏手動聲明 "dsh-custom-theme": "link:<絕對路徑>" 並重新執行 dsh plugin --profile web install(Windows 可用目錄 junction,其他系統用符號鏈接)。
desktop 配置檔¶
通過應用內插件管理器安裝時,重載(Ctrl+R)或重啓 Harness 後即可加載 client.js。狀態保存在瀏覽器 localStorage 的 dsh-custom-theme/v1,換機不同步。
卸載¶
dsh plugin --profile web remove dsh-custom-theme
典型用法¶
- 在 Harness 中打開 Settings → Custom theme(註冊在
settings.section,order: 32)。 - 在 tweakcn.com 選好主題,點 Copy theme,粘貼到文本框後點 Apply theme。
- 需要恢復時點 Restore default。
界面內置 Claude、Amethyst Haze、T3 Chat 三套示例格式,填充粘貼框但不會自動應用,須手動 Apply。壁紙與玻璃在獨立卡片中開關,默認均爲關閉。
若界面無變化,卡片底部 Run status JSON 會彙報開關狀態、URL 校驗、CSS 長度、DOM 層是否創建、令牌數量及 backdrop-filter 支持情況,可一併貼到 GitHub Issues。
適用場景與注意¶
適合:已在 tweakcn / shadcn 體系裏維護 CSS 變量主題、希望在 DSH web UI 裏快速試明暗配色,並可選壁紙或玻璃輸入區的個人或團隊開發者。
不適合:期望用客戶端插件逐字控制模型流式輸出節奏的場景——插件未暴露 per-chunk 鉤子,也不會替換官方 Markdown、工具卡片與引用交互。
安全與權限:插件以當前 DSH 進程及渲染進程權限運行,會讀寫本地 profile 與瀏覽器存儲。安裝前請自行審閱 cndoin/dsh-custom-theme 源碼與 MIT 許可證;社區目錄 SkillHub 插件頁 獨立於 DeepSeek / 幻方,並非官方應用商店。
經過上面的步驟,你可以在不大改 DSH 的前提下,把 tweakcn 主題落到整套界面上,並按需開啓壁紙或玻璃效果,且默認關閉時儘量不增加流式對話時的合成開銷。
- 目錄頁:https://www.skillhub.cn/plugins/cndoin/dsh-custom-theme
- GitHub:https://github.com/cndoin/dsh-custom-theme