dsh-skin-live:为 DSH Web 铺一层可调的图片/视频背景

前言

长时间盯着默认的 DSH Web 界面,背景往往是纯色或主题自带的渐变,和聊天、设置区域绑在一起,很难单独换一张图或一段循环视频,又不希望动布局、把侧栏和主区域拆成两套皮肤。社区里也有更重的皮肤中心类插件,功能多,但和「只改底层背景、面板做半透明玻璃」的需求并不完全重合。

下面介绍 dsh-skin-live:在页面最底层挂固定画布,把应用底色透明化,主区域与侧栏共用同一张背景;卡片、输入框、弹层仍在原位置,仅通过主题 token 调成半透明。参数与本地素材留在浏览器里,插件本体不主动联网。目录分类为「趣味换装」,维护者在 SkillHub 上为 kimo-si;实现与安装说明以仓库 README 为准(当前安装标识为 github:zhaochaorui-study/dsh-skin-live)。

这是什么

dsh-skin-live 是面向 DSH Web 客户端的全局皮肤插件:用图片或视频铺满整个 Web 界面,只改背景,不动布局。支持本地上传、拖拽,或直接填写图片/视频 URL;提供面板不透明度、素材不透明度、模糊、暗化四项独立调节。停用或卸载后移除背景层并还原主题变量。

  • 图片:PNG、JPG、JPEG、WebP、GIF、AVIF、BMP、SVG
  • 视频:MP4、WebM、OGV、MOV、M4V、MKV(静音、循环、自动播放)
  • 许可:MIT(见仓库 LICENSE)
  • 包版本(资料中的 package.json):1.0.0

核心功能

背景层与界面关系

插件在 document.body 上挂 position: fixed; z-index: -1、pointer-events: none 的独立节点,垫在整个应用之下,不抢占点击。侧栏属于全局背景画布,与主区域共用背景;「面板不透明度」只作用于卡片、输入框、弹层等面板表面,不会单独把侧栏盖成另一套色块。

设置项(设置 → 皮肤)

控件 范围 作用
启用皮肤 开 / 关 临时关掉背景层并还原主题,素材和参数保留
背景来源 文件 / URL 本地文件进 IndexedDB;URL 由浏览器按地址加载
铺满方式 铺满 / 完整 / 拉伸 对应 object-fit: cover / contain / fill
面板不透明度 0–100% 面板表面透明度;0% 全透明,100% 为主题原色
素材不透明度 10–100% 背景图/视频本身透明度
模糊 0–40px 只模糊背景层;实现上会略放大背景避免边缘露白
暗化 0–80% 背景上叠黑色蒙版,深色主题下更易读

数据与隐私

  • 参数:localStorage 键 dsh-skin-live:settings:v1
  • 本地素材:IndexedDB 库 dsh-skin-live:media,仓库 blobs,键 current
  • 插件不发起网络请求、不上报数据;填 URL 时由浏览器直接请求该地址

兼容与共存

README 记载在 DSH 0.2.0-rc.2 + Web / PWA 上已实测;Desktop(--profile desktop)未验证。插件依赖客户端的 slots、theme、locale 服务;未声明 peerDependencies,服务缺失或接口变化时会退化为无背景,不拖垮主界面。

若与另一套皮肤系统(例如 @linxin666/dsh-client-ui-skin-center)同时启用,两边都会改背景和主题变量,会互相覆盖,建议只保留一套。

安装与启用

DSH 自带插件管理器,任选一种方式即可,无需手改配置文件。

方式一:Web 插件页(推荐)

  1. 打开 DSH Web(默认 http://127.0.0.1:3080)。
  2. 左侧进入 插件(Plugins)。
  3. 在安装输入框粘贴下面一行并确认安装:
github:zhaochaorui-study/dsh-skin-live
  1. 安装后默认启用;若未启用,在列表里打开开关。
  2. 刷新页面(Cmd/Ctrl + R),设置 中会出现「皮肤」。

方式二:命令行

dsh plugin --profile web add github:zhaochaorui-study/dsh-skin-live

README 说明:发布到 npm 之后也可使用包名(以当时文档为准):

dsh plugin --profile web add dsh-skin-live

桌面版将 --profile web 换成 --profile desktop(README 标注尚未验证)。

方式三:离线 .tgz

从 Releases 下载 dsh-skin-live-1.0.0.tgz,然后:

dsh plugin --profile web add /绝对路径/dsh-skin-live-1.0.0.tgz

也可在插件页选择本地文件安装。

验证安装

dsh plugin --profile web list | grep dsh-skin-live
dsh --profile web --dump-config | grep -A2 'dsh-skin-live'

预期能看到依赖项,以及 id: dsh-skin-live 的加载项。

典型用法

路径:设置 → 皮肤。

  1. 选择背景 — 点「选择文件」上传,或把图片/视频拖进虚线框;或在输入框粘贴素材 URL。
  2. 调节参数 — 拖动滑块,画面实时变化。
  3. 自动保存 — 参数写入 localStorage,素材写入 IndexedDB,刷新或重启 DSH 后自动恢复。

首版完整流程即:安装插件 → 选择背景 → 调整模糊和暗化(以及面板/素材不透明度、暗化等按需微调)。

卸载与回滚

停用(保留数据):在插件页关开关,或在设置里关「启用皮肤」,背景立刻还原,数据仍保留。

彻底卸载:

dsh plugin --profile web remove dsh-skin-live

在插件页确认已移除并刷新。若要清理本地数据,可在浏览器控制台执行:

localStorage.removeItem('dsh-skin-live:settings:v1');
indexedDB.deleteDatabase('dsh-skin-live:media');

适用场景与注意

适合希望在 DSH Web 上快速换壁纸、用视频做氛围背景、又不想改布局或装一整套皮肤中心的用户。插件以轻量 bundle 为主(README 称本体几十 KB、不带内置素材),素材由用户自备。

安装前建议自行查看仓库源码与 MIT 许可证。插件随当前 DSH 进程与 Web 客户端权限运行;使用 URL 背景时,浏览器会按你填写的地址发起请求,请注意素材来源与跨域策略。SkillHub 目录与 GitHub 为社区分发渠道,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,是否安装由你自己评估。

结尾

dsh-skin-live 把「铺满界面的图/视频 + 半透明面板 + 本地存储」收在一个设置页里,停用或卸载即可回到默认外观。目录页:SkillHub — kimo-si/dsh-skin-live;代码与详细说明:GitHub — kimo-si/dsh-skin-live(安装标识与 Releases 链接见 README 中的 zhaochaorui-study/dsh-skin-live)。

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

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

小夜