前言¶
DeepSeek Harness(DSH)的界面默認以功能性配色爲主。若希望在長會話裏保留壁紙里人物的辨識度,同時又讓正文、側欄和彈窗讀得清楚,單純把整窗鋪一層半透明底色往往會出現兩個副作用:人物被整塊矇住,或文字仍壓在圖上發虛。dsh-client-ui-skin-saber 是維護者 IanGely 發佈的客戶端 UI 皮膚插件,在 SkillHub 分類爲「趣味換裝」;它用分層薄紗、磨砂和語義 token 覆蓋,實現亮/暗兩套壁紙並跟隨 DSH 外觀設置,無需前端構建步驟。
這是什麼¶
dsh-client-ui-skin-saber(npm 包名 dsh-client-ui-skin-saber,當前資料中版本爲 0.1.0,MIT 許可證)面向 DSH Web 端與桌面端。亮色主題使用白天插畫壁紙,暗色使用夜景插畫;外觀爲「亮色 / 暗色 / 跟隨系統」時,皮膚隨 body[data-ds-dark-theme] 自動切換。
實現上不是把圖片 base64 塞進 bundle,而是宿主註冊 /skin-saber/* 靜態路由、客戶端在窗口內掛 theme.css,必要時再給 HTTP 場景的 index 注入同一張樣式錶鏈接,因此客戶端 bundle 體積很小,換圖只需替換 assets/ 下 PNG。
核心功能¶
下面按界面區域說明已文檔化的行爲(均來自項目 README)。
晝夜壁紙與跟隨外觀 — assets/light.png、assets/dark.png 作爲全屏背景畫在 body 上,薄紗透明度在亮/暗兩套取值中區分,人物區域儘量保持清晰。
長會話閱讀區 — 正文落在左側約 820px 寬的閱讀底板上(底色約 55% 不透明度),列左對齊,右側留白給壁紙人物;輸入卡片寬度與閱讀列對齊。
插件頁等非會話整頁 — 無會話閱讀列的整頁內容鋪薄紗,避免文字直接壓在壁紙上。
側欄與右欄 — 左側欄鋪單層半透明並帶磨砂;右側欄默認保持透視,僅在啓動卡等區域提高不透明度以便閱讀。
設置彈窗與其它面板 — 對話框讀 --dsw-alias-bg-layer-2 等 token,本皮膚提高不透明度並對 [role="dialog"] 加磨砂,減輕壁紙透底導致的疊字。
與第三方佈局共存 — 對 dsh-better-sidebar 等帶 *_editor 後綴的編輯器、以及文件/代碼/文檔預覽面板,在打開時使用近實色底,文件樹/終端等未打開預覽時仍可透視。
改樣式無需重啓 DSH — 修改 assets/theme.css 或替換壁紙後,重開窗口或刷新頁面即可;插件表變更才需要重啓 Harness。
安裝與啓用¶
資料中的示例針對 macOS 桌面 profile,且使用本機插件目錄路徑,而非 github:owner/repo 形式的遠程一鍵安裝。先把倉庫放到可寫路徑(例如本機 .../dsh-client-ui-skin-saber),再執行 plugin add。
若系統 PATH 中沒有 dsh,可使用應用內置 CLI(README 原文):
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add /Users/angl/Documents/dsh/dsh-client-ui-skin-saber
已安裝 dsh 命令時,等價寫法爲:
dsh plugin --profile desktop add /Users/angl/Documents/dsh/dsh-client-ui-skin-saber
將路徑換成你本機存放插件的根目錄。寫入目標爲 ~/.dsh/profiles/desktop,需對該目錄有寫權限。
安裝後重啓 DeepSeek Harness,插件表變更在重啓後生效。可用下面命令確認條目是否寫入 profile:
grep -n "dsh-client-ui-skin-saber" ~/.dsh/profiles/desktop/package.json ~/.dsh/profiles/desktop/cordis.patch.yml
卸載(同樣需重啓):
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop remove dsh-client-ui-skin-saber
典型用法與迭代¶
日常使用¶
- 在 DSH 外觀設置中選擇亮色、暗色或跟隨系統。
- 打開長會話或插件頁,確認閱讀列、側欄與壁紙的層次是否符合預期。
- 若使用
dsh-better-sidebar等擴展,在打開編輯器或右欄預覽時檢查近實色底是否生效。
自定義壁紙與配色¶
| 改動目標 | 操作 | 是否重啓 DSH |
|---|---|---|
assets/theme.css(配色、薄紗、磨砂、壁紙位置) |
保存後重開窗口或刷新頁面 | 否 |
assets/light.png / assets/dark.png |
替換文件後刷新;必要時硬刷新以繞過圖片緩存 | 否 |
| 安裝/卸載插件、改 cordis 補丁 | 按安裝流程執行並重啓 Harness | 是 |
行寬與閱讀區可通過 theme.css 中的 --dsh-chat-user-width(默認 820px)、--skin-read-width 等變量調整,具體選擇器與分層表見倉庫 README 第 3 節。
目錄結構(便於排錯)¶
dsh-client-ui-skin-saber/
├── package.json
├── cordis.patch.yml # 插件 id:ui-skin-saber
├── lib/index.js # 宿主:/skin-saber 路由 + HTTP index 注入
├── lib/client.js # 客戶端:掛 theme.css
├── assets/
│ ├── light.png
│ ├── dark.png
│ └── theme.css # 皮膚主體
└── test/self-check.mjs
包內提供無依賴自檢腳本 test/self-check.mjs,用於覈對 bundle、路由與 index 注入等行爲。
適用場景與注意¶
適合誰 — 經常在 DSH 桌面端或瀏覽器直連 dsh web 里長時間對話、又希望界面有明確壁紙主題的開發者;願意通過編輯 theme.css 微調透明度與行寬的用戶。
運行環境與權限 — 插件以當前 DSH 進程權限運行,會向 profile 寫入補丁並對外提供本地靜態路由。安裝前應閱讀 lib/index.js、lib/client.js 與 assets/theme.css,並確認 MIT 許可證是否符合你的環境要求。
桌面端與 Web 端差異 — 桌面 Electron 窗口的 index.html 不經過 tapIndex,因此必須依賴客戶端 bundle 注入樣式;僅裝宿主半在桌面端不會生效。README 中對照了 dsh-app:// 轉發與社區其它主題插件的注入方式。
版本與 token — 資料註明皮膚覆蓋的是 ui-theme 在 0.1.0-rc.5 與 0.2.0-rc.2 間共存的 token;升級 DSH 後若佈局 token 更名,可能需要對照上游調整 theme.css。
生態說明 — DSH 奉行「一切皆插件」;SkillHub 目錄頁由社區維護,與 DeepSeek / 幻方無官方從屬關係。本插件 GitHub 星標數爲 0(以目錄線索爲準),不代表功能完整度,但以 README 與源碼爲準覈對行爲即可。
結尾¶
dsh-client-ui-skin-saber 把「壁紙 + 分層半透明 + 磨砂」收成一份可熱更新的 theme.css,並用宿主/客戶端雙半注入適配 Web 與桌面兩種取頁方式。若你要在 Harness 裏做晝夜雙壁紙且控制閱讀區與人物留白,可按上文路徑安裝到 desktop profile,再從 assets/theme.css 迭代視覺。