DSH 採用插件化架構。開發者常需要切換 Web UI 風格以適配不同場景。手動修改配置或源碼效率較低。dsh-skin-switcher 旨在解決這一痛點,提供一個無侵入的切換方案。
插件簡介¶
這是一個不修改 DSH 核心源碼的純 Cordis 插件。它通過右上角懸浮按鈕實現一鍵切換,並支持自動發現社區皮膚。安裝後,普通 dsh web 命令會自動加載該插件。
安裝與啓用¶
使用官方 CLI 進行安裝:
dsh plugin --profile web add dsh-skin-switcher
dsh web
安裝完成後刷新頁面即可使用。
核心功能¶
該插件提供以下能力:
- 無侵入架構:不修改 DSH 核心源碼,完全基於 Cordis 插件機制運行。
- 快捷切換:右上角懸浮按鈕,點擊即可秒切皮膚。
- 狀態記憶:選擇“記住”後,下次打開界面仍保持上次選中的皮膚。
- 自動發現:自動掃描並識別社區發佈的
style/link注入型皮膚,新皮膚裝上後會自動冒出切換按鈕。 - 徹底還原:切走皮膚時,會清理樣式表、body 屬性以及 theme token 覆蓋,確保界面恢復乾淨。
典型用法¶
刷新頁面後,DSH 右上角會出現膠囊按鈕組:
- 默認:恢復 DSH 原生界面。
- 鯨魚娘:深海女僕工坊(maid-atelier)皮膚。
- 終末地:工業風工作臺(endfield-ui)皮膚。
- Aqua:玻璃擬態毛玻璃主題(需先安裝該皮膚包)。
- 其他自動發現的皮膚:點擊即可單獨啓用,其餘皮膚自動關閉。
如需卸載,執行:
dsh plugin --profile web remove dsh-skin-switcher
自動發現機制¶
插件會監聽 DOM 變化,掃描 <head> 中帶 data-plugin 標記的 <style> 或 <link> 元素:
- 跳過規則:跳過
@deepseek-ai/官方前綴的包;跳過已內置適配的皮膚。 - 識別規則:名稱包含
skin、theme、maid、whale、aqua等關鍵詞的元素會被收編爲切換按鈕。
限制:對於依賴 theme token 覆蓋、overlay 插槽或素材路由等複雜機制的皮膚(如終末地),自動發現機制存在限制,需要爲它編寫專屬適配邏輯。
內置適配邏輯¶
以下皮膚擁有深度適配邏輯,切換時能實現完整的清理與還原:
@dsh-external/dsh-client-ui-skin-maid-atelier(鯨魚娘/深海女僕工坊):通過 body 屬性data-dsh-maid-atelier開關控制。@rison/dsh-endfield-ui(終末地工作臺):管理樣式表 link 開關及 71 個 theme token 的覆蓋/清理。@deepseek-ai/dsh-client-ui-aqua(Aqua 毛玻璃):由於該包在官方 scope 下且自動發現會跳過,故通過內置適配實現。
適用場景與注意¶
- 適用人羣:需要頻繁在多種 UI 風格間切換的開發者或用戶。
- 注意:複雜皮膚(如終末地)需要內置適配邏輯以實現深度清理。若遇到自動發現失效,需檢查是否爲複雜皮膚或是否已內置適配。安裝前請檢查源碼與許可證。
該插件維護者:tsdfy。