DSH 的理念是「一切皆插件」。在開發或使用 DSH 時,調整界面觀感是常見需求。傳統的換膚方式往往需要直接修改源碼或手動管理樣式文件,容易引入副作用且難以維護。EAC-skin-loader 提供了一個標準化的加載器,內置 13 款皮膚,支持公約化遷移,旨在讓換膚過程更加可控和可恢復。
插件定位¶
EAC-skin-loader 是 DSH-EAC 維護的 UI 皮膚加載器。它遵循弱約束公約 dsh.ecosystem.ui-skin-loader/v1,作爲參考實現。插件包含一個加載器核心和 13 款皮膚製品:2 款內置示例(本倉原創)和 11 款公約化遷移皮膚。
其核心價值在於零副作用的加載機制。在未激活狀態下,插件僅登記元數據,不產生任何視覺或行爲上的副作用。只有在用戶手動激活後,纔會切換觀感;停用時則會徹底關閉,確保與未安裝時保持一致。
核心功能¶
加載器提供以下功能:
- 皮膚髮現與登記:自動掃描並登記已安裝的皮膚。
- 全局互斥切換:同一時刻僅允許一款皮膚生效。
- 持久化與跨重啓恢復:支持設置跨重啓自動恢復當前選中的皮膚。
- 故障隔離:激活失敗時自動回滾,關閉超時則如實標記疑似殘留。
- 跨標籤頁同步:確保在多標籤頁環境中觀感的一致性。
- 設置頁控制台:在 DSH 設置中提供可視化的換膚控制台(支持亮暗雙案自適應)。
兼容性與要求¶
- 適配宿主:
@deepseek-ai/dsh0.1.7-rc.2或0.2.0-rc.2。 - 運行時:Node.js >= 24。
- 當前版本:1.2.0。
安裝與啓用¶
推薦方式:Git 安裝¶
這是最高效的安裝方式,加載器會隨倉內嵌製品安裝,無需本地構建。
1、 執行安裝命令:
dsh plugin --profile web add github:DSH-EAC/EAC-skin-loader
2、 安裝後加載器自動啓動。它會根據 packages/loader/skin-manifest.json 檢查並補齊缺失的皮膚。該過程不會覆蓋你當前正在使用的皮膚,也不會切換觀感。
3、 打開 設置 → 皮膚,在底部的「皮膚自動補齊」分區可以查看各包的安裝狀態(已就緒 / 安裝中 / 失敗 / 已有其他版本 / 不再自動補回)。
構建安裝包¶
如果你需要離線安裝或控制構建流程:
1、 克隆倉庫並安裝依賴:
pnpm install
pnpm build
2、 在倉庫根目錄執行打包命令:
mkdir -p dist
npm pack --pack-destination dist
3、 在 packages/skins 下對每款皮膚目錄執行 npm pack,將產物移動到 dist 目錄。
4、 使用 dsh plugin add 逐個安裝產物(先加載器,後皮膚):
dsh plugin --profile web add <dist>/dsh-eac-ui-skin-loader-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-aurora-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-inkwash-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-trading-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-dragon-heir-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-whale-song-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-blue-fantasy-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-maid-atelier-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-miku-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-minecraft-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-qq98-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-ths-1.2.0.tgz
dsh plugin --profile web add <dist>/dsh-eac-skin-xp-1.2.0.tgz
使用方法¶
安裝完成後,重啓 DSH:
1、 打開 設置 → 皮膚,進入換膚控制台。
2、 點擊卡片上的 激活 按鈕。此時系統會應用該皮膚,並確保全局互斥(即舊皮膚會被移除)。
3、 在控制台中選擇 跨重啓自動恢復,下次啓動 DSH 時將保持當前觀感。
4、 若激活過程中發生錯誤,卡片內會顯示錯誤原文;若停用時檢測到異常,會如實標記爲「疑似殘留」。
5、 帶自定義設置的皮膚(如「極光之夜」)激活後,可在 設置 → 極光之夜 中進入其專屬設置分區。
皮膚清單¶
插件內置 13 款皮膚,包含 2 款內置示例和 11 款公約化遷移皮膚。許可邊界爲:工程骨架爲 MIT,觀感內容按其上游許可分發。
| 皮膚 | 包 | 皮膚 id | 許可 | 來源 |
|---|---|---|---|---|
| 極光之夜 | @dsh-eac/skin-aurora |
dsh-eac.skin.aurora |
MIT | 內置示例(本倉原創,帶自定義設置面) |
| 水墨青煙 | @dsh-eac/skin-inkwash |
dsh-eac.skin.inkwash |
MIT | 內置示例(本倉原創,無設置面) |
| 交易終端 | @dsh-eac/skin-trading |
dsh-eac.skin.trading |
MIT AND BSD-3-Clause | dsh-web-ui |
| 龍的傳人 | @dsh-eac/skin-dragon-heir |
dsh-eac.skin.dragon-heir |
MIT AND BSD-3-Clause | dsh-web-ui |
| 鯨吟 | @dsh-eac/skin-whale-song |
dsh-eac.skin.whale-song |
MIT AND BSD-3-Clause | dsh-web-ui |
| 藍色幻想 | @dsh-eac/skin-blue-fantasy |
dsh-eac.skin.blue-fantasy |
MIT AND BSD-3-Clause | dsh-web-ui |
| 深海女僕工坊 | @dsh-eac/skin-maid-atelier |
dsh-eac.skin.maid-atelier |
MIT AND CC-BY-NC-SA-4.0 | dsh-external |
| 初音未來 · 電子歌姬 | @dsh-eac/skin-miku |
dsh-eac.skin.miku |
MIT AND BSD-3-Clause | dsh-web-ui |
| Minecraft 方塊世界 | @dsh-eac/skin-minecraft |
dsh-eac.skin.minecraft |
MIT AND BSD-3-Clause | dsh-web-ui |
| QQ2008 懷舊版 | @dsh-eac/skin-qq98 |
dsh-eac.skin.qq98 |
MIT AND BSD-3-Clause | dsh-web-ui |
| 同花順風格 | @dsh-eac/skin-ths |
dsh-eac.skin.ths |
MIT AND BSD-3-Clause | dsh-web-ui |
| Windows XP (Luna) | @dsh-eac/skin-xp |
dsh-eac.skin.xp |
MIT AND BSD-3-Clause | dsh-web-ui |
| 鯨魚娘晝夜工坊 | @dsh-eac/skin-deep-whale-day-night |
dsh-eac.skin.deep-whale-day-night |
MIT AND CC-BY-NC-SA-4.0 | GGBond2424648901 |
注意事項¶
- 依賴關係:皮膚製品清單指向 GitHub Release 資產。如果在 Release 發佈前安裝,補齊狀態會如實顯示失敗原因(網絡/404),但加載器本體不受影響。
- 許可檢查:插件骨架爲 MIT,皮膚內容按上游許可。使用前請檢查源碼與許可證。
- 未納入項:部分功能插件(如音頻通知、診斷落盤)不屬於純皮膚遷移,暫未納入本次發佈。
通過 EAC-skin-loader,開發者可以在 DSH 中通過標準化的方式管理 UI 皮膚,享受公約帶來的便利與零副作用的安全體驗。項目地址:GitHub。