dsh-liya-skin-plugin: Self-Hosted DSH Skin Plugin

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 许可证。

生态链接

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

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

Xiaoye