前言¶
在 DSH 的插件化擴展方式下,Web GUI 的外觀切換不只是換一個 CSS 文件。它會涉及多個皮膚包如何被發現、設置頁入口在哪裏、多個皮膚之間如何互斥、切換後的配置如何持久化,以及頁面刷新後是否能正常生效。
dsh-skin-manager 是面向 DeepSeek Harness web GUI 的輕量皮膚管理器。它把已安裝皮膚集中展示在設置頁中,並提供一鍵應用、默認外觀恢復和與 dsh-market 的聯動處理。
這是什麼¶
dsh-skin-manager 由 xiaoyangcheng84-svg 維護,許可證爲 MIT。它不是一個獨立換膚工具,而是掛載到 DSH web profile 的插件:發現已安裝皮膚、提供 Settings → Skins 頁面、切換活動皮膚,並在已安裝 dsh-market 時同步相關狀態。
它解決的問題可以概括爲三件:
- 不需要逐個手動維護皮膚包的啓用狀態。
- 不需要反覆重啓
dsh web來確認皮膚是否生效。 - 多個皮膚包並存時,需要明確哪些是活動狀態、哪些是禁用狀態。
核心功能¶
動態發現已安裝皮膚¶
它會發現已安裝的皮膚,包括帶 skin.json 的皮膚包,以及不帶 skin.json 的市場主題。
已覈實資料中給出的識別前提是:皮膚包需要滿足文檔中的 skin.json 或市場主題條件,並提供預構建的 client bundle。新安裝的皮膚不需要額外註冊或修改插件代碼。
獨立設置頁¶
插件在設置側欄中加入 Settings → Skins 頁面。該頁面會展示 Default 以及所有已安裝皮膚。
一鍵應用與熱更新¶
在設置頁中對某個皮膚點擊 Apply 後,插件會重寫 profile 中受管理的配置部分。DSH 的配置監聽會在數秒內熱加載變更;隨後按提示點擊 Refresh,皮膚即可生效。
互斥啓用¶
同一時間只啓用一個皮膚。選擇某個皮膚後,其他皮膚處於非活動狀態。
恢復默認外觀¶
頁面提供 Default 選項。對 Default 點擊 Apply,可以恢復 DeepSeek Harness 的默認外觀。
與 dsh-market 聯動¶
當環境中已安裝 dsh-market 時,從 dsh-skin-manager 應用一個皮膚,還會執行以下操作:
- 更新
.dsh-market/state.json,避免啓動時再次禁用剛選擇的皮膚; - 卸載可能與新皮膚重疊的過期
dsh-markethot mounts; - 在重寫 patch 前同步
dsh-market的內存 disabled 狀態。
API 路由¶
插件提供以下路由:
/api/skin-manager/list
/api/skin-manager/apply
/api/skin-manager/bundle
這些路由分別用於獲取皮膚列表、應用指定皮膚、提供皮膚的 client bundle。
安裝與啓用¶
使用 github: 源安裝時需要機器上可用 git:
dsh plugin --profile web add github:xiaoyangcheng84-svg/dsh-skin-manager
如果使用本地檢出目錄,可以用 link: 方式安裝:
dsh plugin --profile web add link:<path>
安裝後,可以重啓 dsh web,也可以依賴 dsh-market 的 hot install 機制。之後刷新頁面,打開 Settings → Skins。
典型用法¶
1、打開 Settings → Skins。
2、頁面中會看到 Default 以及已安裝皮膚列表。
3、對目標皮膚點擊 Apply。
4、出現提示時點擊 Refresh,皮膚生效。
5、如果希望恢復默認外觀,對 Default 點擊 Apply。
適用場景與注意¶
這個插件適合在 DSH web GUI 中安裝多個皮膚包、需要在設置頁中集中切換外觀,或希望與 dsh-market 保持狀態一致的場景。
使用前需要注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 - 許可證爲 MIT。
- 依賴方面,
peerDependencies包含react ^18.2.0以及多個@deepseek-ai包。 - 皮膚包識別依賴文檔中的
skin.json或市場主題條件,並且需要提供預構建 client bundle。 - 切換操作會重寫 profile 的
cordis.patch.yml中由插件管理的部分;非皮膚的用戶 patch 行會保持不變。
結尾¶
dsh-skin-manager 的價值在於把 DSH web GUI 的皮膚髮現、啓用、互斥和默認恢復收進同一個設置頁,並在已有 dsh-market 時處理狀態同步。
相關鏈接:
- GitHub:https://github.com/xiaoyangcheng84-svg/dsh-skin-manager
- 插件目錄線索:https://www.skillhub.cn/plugins/xiaoyangcheng84-svg/dsh-skin-manager