dsh-liya-skin-plugin: 本地自建 DSH 皮膚插件

DSH 插件化架構允許開發者擴展 WebUI。若需自定義壁紙或增加視覺裝飾層,直接修改源碼成本較高。本地自建插件 dsh-liya-skin-plugin 提供了一套解決方案:既支持目錄化的壁紙管理(含透明度調節與狀態持久化),也內置了自繪 SVG 的“莉婭星月”裝飾層。

核心功能

壁紙管理

插件通過 wallpapers/ 目錄管理壁紙。支持 png、jpg、webp、gif、svg 格式。WebUI 提供縮略圖網格,點擊即可動態切換壁紙,無需重啓進程。

透明度與持久化

提供 0-100 的透明度滑條(默認 100),該滑條僅作用於壁紙圖片本身(body::before 的 opacity)。圖片選擇與透明度設置由 host 層持久化,保存在 $DSH_HOME/liya-wallpaper-state.json。刷新 WebUI 後狀態自動恢復。

莉婭星月裝飾層

這是一個自繪 SVG 裝飾層,包含三部分:
1. 頂部星帶:跟隨側欄寬度移動。
2. 底部星軌:響應對話狀態,對話激活時 (data-liya-chat-active) 星軌會退下。
3. 標題欄徽標:在標題欄顯示“莉婭”彎月標誌。

裝飾層支持在設置頁獨立開關,卸載時通過 effect 銷燬器完整還原 CSS、樣式變量與 DOM 節點,不留殘留。

配置方式

配置項(皮膚層總開關及分項)通過“設置 → 插件 → 本插件”入口管理,保存即時生效。

安裝

使用 DSH CLI 安裝插件。請將 <dsh> 替換爲實際的 CLI 調用方式,將 <profile> 替換爲當前使用的配置文件名,<本插件目錄> 替換爲插件所在路徑。

<dsh> plugin --profile <profile> add <本插件目錄>

使用步驟

  1. 準備素材:從倉庫克隆或下載插件源碼。插件目錄下無預設圖片,需自行準備圖片並放入 wallpapers/ 目錄。
  2. 刷新列表:進入 WebUI 的“設置 → 壁紙”頁面,點擊刷新按鈕(🔄),縮略圖列表會重新加載。
  3. 選擇壁紙:在縮略圖中點擊選擇,或拖動透明度滑條。
  4. 配置裝飾:進入“設置 → 插件 → 本插件”,開啓/關閉星帶、星軌或標題欄徽標。

注意事項

  • 素材自備:倉庫不包含任何壁紙圖片,需用戶自行準備。
  • 透明度限制:半透明層固定 alpha 爲 0.6,某些深色的系統面板可能無法透出背景。
  • 安全防護:圖片服務接口 /liya-wallpaper/file/<name> 對文件名進行了 basename 和 startsWith 校驗,防止路徑穿越攻擊。
  • 交互遮擋:裝飾層設置了 pointer-events: none 以確保不阻擋交互。但由於 z-index 爲 20,在少數全屏浮層下可能會被遮擋。
  • 許可協議:代碼部分採用 MIT 許可證;文檔部分採用 CC BY 4.0 許可證。

生態鏈接

羽毛球分组比赛记分
小程序二维码

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

小夜