前言¶
在 DSH 的 Web GUI 裏,皮膚通常以客戶端插件形式安裝。如果本地已經安裝了多個 dsh-client-ui-skin-* 皮膚,日常使用中會出現一個比較具體的問題:如何在默認界面和這些皮膚之間快速切換。
tiantyu/dsh-skin-toggle 就是爲這個場景準備的 DSH 插件:在頁面上提供一個可拖動的鯨魚按鈕,用來恢復默認界面或選擇已安裝皮膚。
這是什麼¶
tiantyu/dsh-skin-toggle 是一個 DSH Web GUI 的皮膚管理器,採用 MIT 許可。它不直接提供皮膚本體,而是在頁面中增加一個管理入口:
- 左鍵恢復默認界面;
- 右鍵列出已安裝皮膚並切換;
- 自動識別符合包名約定的客戶端皮膚;
- 只在展示層控制皮膚顯隱,不觸達模型請求。
核心功能¶
下面介紹已覈實的能力。
1. 懸浮按鈕¶
按鈕默認位於頁面右上角,也可以按住左鍵拖到界面上任意位置;鬆手後固定,並記住位置。刷新後位置保持。
2. 恢復默認界面¶
左鍵點擊按鈕,恢復默認界面(無皮膚)。按鈕顏色也會體現當前狀態:金色表示有皮膚生效,灰色表示默認界面。
3. 切換已安裝皮膚¶
右鍵點擊按鈕,會彈出皮膚面板,列出所有已安裝皮膚。點選即可切換。皮膚互斥,同一時間只生效一個。
4. 自動檢測皮膚¶
插件從 Cordis Loader 檢測符合 dsh-client-ui-skin-<id> 包名約定的皮膚,並把它們作爲可選皮膚。
5. 狀態保存¶
當前皮膚選擇保存在 localStorage,刷新後保持。
6. 啓動時修復加載順序¶
啓動時會有約 9 秒的短時重述,用來修復皮膚與本插件之間的加載順序競態。
7. 純客戶端展示層¶
插件屬於展示層工具,不觸達模型請求;不修改插件狀態,只控制皮膚顯隱。Loader 只讀。皮膚顯示名爲包名中的 id;宿主不對外提供 skin.json,因此無法取本地化名稱。
安裝與啓用¶
安裝¶
在可以訪問 dsh 命令的環境中執行:
dsh plugin --profile web add https://github.com/tiantyu/dsh-skin-toggle
啓用¶
安裝後需要重啓 dsh web,並在瀏覽器中硬刷新:
Ctrl+Shift+R
經過上面的步驟,如果頁面上出現鯨魚按鈕,說明插件已加載。
移除¶
如需移除,可以執行:
dsh plugin --profile web remove dsh-skin-toggle
典型用法¶
1、安裝插件:
dsh plugin --profile web add https://github.com/tiantyu/dsh-skin-toggle
2、重啓 dsh web,然後硬刷新瀏覽器(Ctrl+Shift+R)。
3、如果默認右上角不方便,按住左鍵將鯨魚按鈕拖到界面上任意位置,鬆手後固定並記住位置。
4、左鍵點擊按鈕,恢復默認界面。
5、右鍵點擊按鈕,彈出皮膚面板,從已安裝皮膚列表中選擇要切換的皮膚。
6、如果不再需要,執行移除命令:
dsh plugin --profile web remove dsh-skin-toggle
適用場景與注意¶
適合使用 DSH Web GUI、並且希望快速管理多個已安裝皮膚的人。它解決的是“切換皮膚”和“恢復默認”的操作問題,不提供模型側功能。
使用前注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證; - 本插件爲
MIT許可;皮膚本體各自遵循其許可,見各皮膚NOTICE; - 插件只控制皮膚顯隱,不修改插件狀態,也不觸達模型請求;
- 皮膚顯示名爲包名
id,無法從宿主獲取本地化名稱; - 安裝後必須重啓
dsh web並硬刷新瀏覽器才能看到按鈕。
結尾¶
tiantyu/dsh-skin-toggle 的價值很集中:給 DSH Web GUI 提供一個簡單的皮膚管理入口,左鍵回默認,右鍵切皮膚,位置可拖動且記住選擇。
倉庫地址:
https://github.com/tiantyu/dsh-skin-toggle
如果當前環境接入了 DSH 插件目錄,可檢索包名 dsh-skin-toggle。