dsh-skin-manager:DSH Web GUI 皮膚管理器

前言

在 DSH 的插件化擴展方式下,Web GUI 的外觀切換不只是換一個 CSS 文件。它會涉及多個皮膚包如何被發現、設置頁入口在哪裏、多個皮膚之間如何互斥、切換後的配置如何持久化,以及頁面刷新後是否能正常生效。

dsh-skin-manager 是面向 DeepSeek Harness web GUI 的輕量皮膚管理器。它把已安裝皮膚集中展示在設置頁中,並提供一鍵應用、默認外觀恢復和與 dsh-market 的聯動處理。

這是什麼

dsh-skin-managerxiaoyangcheng84-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-market hot 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
羽毛球分组比赛记分
小程序二维码

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

小夜