dsh-mpkg-wallpaper 3.5.3 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +41 -9
- package/README.md +41 -9
- package/lib/client.js +594 -322
- package/lib/index.js +193 -53
- package/package.json +8 -2
package/README.en.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
A plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web UI (dsh web) that adds background wallpapers: **Wallpaper Engine `.mpkg` parsing, Steam Workshop raw folders, video/web/image wallpapers, time-of-day switching, a full-screen frosted blur suite, theme-color & glass appearance, a local wallpaper library, timed rotation and one-click updates**. Nearly every visual detail is adjustable.
|
|
8
8
|
|
|
9
|
-
> **One-liner**: video/image/web wallpapers play directly; **time-variation wallpapers support multi-slot auto-switching + manual slot lock**; **some web wallpapers with built-in options (e.g. Live2D portraits — resolution/language/volume) are wired into the plugin settings page and can be edited in the collapsible "Adjustable options" area**; Scene wallpapers get static-frame extraction + layer compositing as partial solutions.
|
|
9
|
+
> **One-liner**: video/image/web wallpapers play directly; **time-variation wallpapers support multi-slot auto-switching + manual slot lock**; **some web wallpapers with built-in options (e.g. Live2D portraits — resolution/language/volume) are wired into the plugin settings page and can be edited in the collapsible "Adjustable options" area**; **video/web wallpapers support one-click pause/play (no replay when unrelated settings change) + 3-tier power saving (hidden/blurred/battery)**; Scene wallpapers get static-frame extraction + layer compositing as partial solutions.
|
|
10
10
|
|
|
11
11
|
## Core Features
|
|
12
12
|
|
|
@@ -33,7 +33,7 @@ A plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harn
|
|
|
33
33
|
**🎨 Theme color & glass appearance (Aqua experiment, off by default)**
|
|
34
34
|
- **Theme color (accent)**: color picker + 6 presets driving brand buttons/sliders/selected items/links/send button (`--dsw-alias-brand-*` tokens)
|
|
35
35
|
- **Unified fog** (full-screen mask with one fog color, strength slider), **panel wallpaper-matching color** (auto sample + strength slider + custom picker), **adaptive text + blue cleanup** (brand unified, custom picker), **dark-background text readability**, **todo-list frost**
|
|
36
|
-
- Appearance tab also has: floating cards, clock,
|
|
36
|
+
- Appearance tab also has: floating cards, etc. (the clock is a runtime-compat item — old configs still show it, but there is no settings toggle)
|
|
37
37
|
|
|
38
38
|
**🧩 dsh-better-sidebar adaptation (shown when that plugin is detected)**
|
|
39
39
|
- When [dsh-better-sidebar](https://github.com/) is installed, an **adaptation section** appears in the "Appearance / Other" tabs with a master toggle + sub-toggles:
|
|
@@ -44,6 +44,21 @@ A plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harn
|
|
|
44
44
|
- Font follow (bsFont) and other sub-toggles
|
|
45
45
|
- The host `/ping` endpoint auto-detects whether better-sidebar is installed; the section is hidden when it is not
|
|
46
46
|
|
|
47
|
+
**⏯️ Playback control & power saving**
|
|
48
|
+
- **Pause / Play button**: when the current wallpaper is a video/web type, the settings page shows a **Pause/Play** button (click to freeze the image, click again to resume). The paused state is **synced in real-time** (the button follows the actual video state); **adjusting unrelated settings (mute/brightness/blur etc.) does NOT trigger a replay** — the root cause ("video.src" compared as an absolute URL to a relative one → every settings apply reloaded the media source) has been fixed.
|
|
49
|
+
- **Power saving (3-tier pause)**: the "Other" tab has three independent toggles:
|
|
50
|
+
- **Pause when the page is hidden** (`visibilitychange`)
|
|
51
|
+
- **Pause when the window loses focus** (`blur/focus`)
|
|
52
|
+
- **Pause on battery power** (`getBattery`; silently skipped if the API is absent)
|
|
53
|
+
- Any tier triggers a pause; only when all are released does it resume; power-saving pause and manual pause don't interfere (both respect the same gate)
|
|
54
|
+
|
|
55
|
+
**🧊 Liquid glass (⚠️ experimental, off by default, not recommended for regular use)**
|
|
56
|
+
> ⚠️ **Note**: liquid glass is currently **experimental** — the effect is not final and may have layout/performance side effects. **Not recommended for daily use**; it is off by default. If you try it, back up your settings first; if anything breaks, restore all defaults from the "Other" tab.
|
|
57
|
+
- Based on CSS `backdrop-filter`: semi-transparent + blur + edge highlight (**no longer the WebGL refraction version** — WebGL was removed in v3.6.0, see below). Four toggles:
|
|
58
|
+
- **lgTest (test mode)**: keeps only wallpaper + floating + layout, and overrides no DSH token (otherwise a translucent base makes the chat box transparent without blur)
|
|
59
|
+
- **lgComposer / lgSidebar / lgHeader**: add a liquid-glass overlay to the message-bubble area / sidebar / title bar respectively (the sidebar can only be semi-transparent + edge highlight because of the settings dialog's render hierarchy — it **cannot** use backdrop-filter, or it would squash the settings dialog into the sidebar — historical pitfall)
|
|
60
|
+
- **History**: early versions used real WebGL refraction (`lib/liquid-glass/` library + `liquid-glass-bundle.js` 107KB); v3.6.0 removed the WebGL runtime (unstable + large) in favor of pure CSS. `lib/liquid-glass/*.js`, `liquid-glass-bundle.js`, `tools/liquid-demo/` **remain in the package but are no longer referenced at runtime** (leftover dead files, can be cleaned later).
|
|
61
|
+
|
|
47
62
|
**🎬 Lens & picture**
|
|
48
63
|
- Lens zoom (10–2000%) & pan, brightness (50–150%), light sharpen, Deep diving background box
|
|
49
64
|
|
|
@@ -54,7 +69,8 @@ A plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harn
|
|
|
54
69
|
- mpkg streams to the DSH host → disk storage → HTTP Range streaming, **>600MB files supported**, low memory usage
|
|
55
70
|
|
|
56
71
|
**🖼️ Local wallpaper library**
|
|
57
|
-
- **Steam auto-discovery** + **custom folder** (any directory + cross-platform folder picker; .mpkg files and workshop folders can be mixed freely)
|
|
72
|
+
- **Steam auto-discovery** + **custom folder** (any directory + cross-platform folder picker; .mpkg files and workshop folders can be mixed freely; images/videos/`scene.pkg`/`.mov` accepted)
|
|
73
|
+
- **Native WE playlist import**: the Steam scan also parses Wallpaper Engine's `config.json` (`general.playlists`) into **rotation lists**, mapping items to this plugin's `steam|`/`custom|` keys
|
|
58
74
|
- **Switching & rotation**: prev/next one-click, timed auto-rotation (interval adjustable); rotation-list checkboxes keep scroll position (no jump-to-top), and unnamed lists get auto-numbered (`Unnamed list N`) so they never collide
|
|
59
75
|
|
|
60
76
|
**🛡️ Safety & coexistence**
|
|
@@ -78,6 +94,16 @@ A plugin for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harn
|
|
|
78
94
|
- **Lazy loading prevents OOM**: time-variation wallpapers extract only the current slot; hybrid streams large files with minimal memory
|
|
79
95
|
- **Weak-device throttling**: heavy compositing (full-screen backdrop-filter over streaming video) is globally throttled; for extreme WebView combos, Edge / desktop browsers still give the best experience
|
|
80
96
|
|
|
97
|
+
**🌐 Browser compatibility (tested reference)**
|
|
98
|
+
| Browser | Rating | Behavior & notes |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| Chrome / Chromium (desktop) | ⭐⭐⭐ Strong | Most complete: best `backdrop-filter` & `color-mix`, `iframe.muted` works, muted autoplay allowed |
|
|
101
|
+
| Edge (desktop) | ⭐⭐⭐ Strong | Video wallpapers use a **dedicated canvas render path** (avoids the Edge hover toolbar); pause/resume/replay all fixed (CSS first-frame + src equality). Some versions show only a static first frame (not blank/crash) |
|
|
102
|
+
| Firefox | ⭐⭐ Medium | Full feature support (backdrop-filter 103+, auto-transcode fallback for unsupported codecs); three deductions: backdrop-filter is slower than Chromium (low-end drops frames when many blurs are on), `iframe.muted` unsupported (**audio web wallpapers may be blocked from autoplay on first load — the error is iframe-isolated so the main UI is unaffected**), `color-mix` needs 113+ (older versions only lose appearance) |
|
|
103
|
+
| Android WebView / mobile | ⭐⭐ Medium-weak | autoplay policy depends on the host app's WebView config (muted is usually allowed but Firefox-based / some WebViews block, leaving the video on its first frame); `getBattery` may be missing (guarded); for extreme combos prefer static image/GIF or blur off |
|
|
104
|
+
|
|
105
|
+
> Note: the source degrades gracefully for each browser (rAF fallback without `requestVideoFrameCallback`, guards around `ResizeObserver`/`getBattery`, all `play()` calls have `.catch`, `backdrop-filter` detected with `CSS.supports` and falls back to opaque). **No browser-specific high-risk point that would cause a blank page / freeze / crash was found.** The only medium item still to be tested is Firefox's "audio web wallpaper autoplay blocked"; Chrome/Edge are recommended for the fullest experience.
|
|
106
|
+
|
|
81
107
|
## Supported Types & Status
|
|
82
108
|
|
|
83
109
|
| Type | Web behavior | Notes |
|
|
@@ -126,7 +152,7 @@ The plugin offers these partial solutions (chosen automatically by scene content
|
|
|
126
152
|
- **🌐external**: depends on external SDK/CDN (e.g. miHoYo event pages) — may fail to load
|
|
127
153
|
- Tested: webm-video-based web wallpapers (light) work; Spine skeletal ones depend on device performance; **Live2D portraits with a `loadJson.json` are wired into the plugin options** (above)
|
|
128
154
|
|
|
129
|
-
## Settings Tabs
|
|
155
|
+
## Settings Tabs (8 total)
|
|
130
156
|
|
|
131
157
|
- **Source**: master switch, hybrid, mpkg file, image/video files, custom folder (can point at the workshop root), local library (Steam scan), switching/rotation, **time-variation slot lock**
|
|
132
158
|
- **Wallpaper**: mute, mirror flip (horizontal/vertical), video playback speed, adjustable options (mpkg read-only / web wallpapers editable), decode fps cap, resolution cap, ffmpeg status
|
|
@@ -134,7 +160,8 @@ The plugin offers these partial solutions (chosen automatically by scene content
|
|
|
134
160
|
- **Unified blur**: full-screen blur + sidebar/title-bar fog, chat follow, new-chat follow
|
|
135
161
|
- **UI blur**: dialog/settings/popup/popover/mask/sidebar frost each independent
|
|
136
162
|
- **Aqua**: unified fog / panel tint / adaptive text experiment toggles
|
|
137
|
-
- **
|
|
163
|
+
- **Liquid glass**: lgTest / lgComposer / lgSidebar / lgHeader (CSS version, **experimental, not recommended**; with a separate demo page, see the "Liquid glass" section above)
|
|
164
|
+
- **Other**: power-saving 3-tier (hidden/blur/battery), new style/sharpen/round-compat, update check/apply, **backup & restore**, restore all defaults, submit feedback; the better-sidebar **adaptation section** appears here when that plugin is installed (clock is a runtime-compat item, no settings toggle)
|
|
138
165
|
|
|
139
166
|
## Installation
|
|
140
167
|
|
|
@@ -202,7 +229,7 @@ Please include:
|
|
|
202
229
|
|
|
203
230
|
## Security
|
|
204
231
|
|
|
205
|
-
- **No outbound network requests**: the plugin never contacts external networks; the only
|
|
232
|
+
- **No passive outbound network requests by default**: the plugin never **actively** contacts external networks; everyday wallpaper playback only talks to the **local DSH host** (127.0.0.1). The only exceptions are **user-initiated** actions: Check update / Apply update accesses GitHub (`raw.githubusercontent.com`, `api.github.com`); downloading ffmpeg accesses GitHub Releases / the npm binary mirror (`registry.npmmirror.com`) — both fire only after the user clicks, never automatically. User-entered network image URLs and resources loaded by web wallpapers themselves are also external access.
|
|
206
233
|
- **No secrets**: no paths, keys, tokens or personal info in the source
|
|
207
234
|
- **Open-source deps only**: DSH's own react + official slots/locale APIs; the scene.pkg extractor is adopted from [elysia395/dsh-wallpaper-engine](https://github.com/elysia395/dsh-wallpaper-engine) (MIT, credited in the file header)
|
|
208
235
|
- References: [dsh-bg-image](https://github.com/lyh9712/dsh-bg-image) (MIT, template), [unmpkg](https://github.com/aqnya/unmpkg) (GPL-3.0, mpkg format reference), [repkg](https://github.com/notscuffed/repkg) (GPL, .tex format research)
|
|
@@ -214,14 +241,19 @@ Please include:
|
|
|
214
241
|
dsh-mpkg-wallpaper/
|
|
215
242
|
├── package.json # dsh.bundle + dsh.client declarations
|
|
216
243
|
├── cordis.patch.yml # plugin install declaration
|
|
244
|
+
├── LICENSE # MIT license
|
|
217
245
|
├── lib/
|
|
218
246
|
│ ├── index.js # host: upload/streaming + Steam discovery + custom folders + scene routes + settings persistence
|
|
219
|
-
│ ├── client.js # browser: mpkg parsing + settings page + bg DOM + blur suite + library + time-variation/web options
|
|
220
|
-
│
|
|
221
|
-
├──
|
|
247
|
+
│ ├── client.js # browser: mpkg parsing + settings page + bg DOM + blur suite + library + time-variation/web options + playback control/power saving
|
|
248
|
+
│ ├── pkg-extract.js# scene.pkg static-frame/layer extraction (PKG+LZ4+TEX, MIT, from elysia395)
|
|
249
|
+
│ ├── liquid-glass/ # WebGL liquid-glass library (**leftover, no runtime ref**; CSS version since v3.6.0)
|
|
250
|
+
│ └── liquid-glass-bundle.js # liquid-glass bundle (107KB, **unused dead file**, ships by redundancy)
|
|
251
|
+
├── tools/ # mpkg/tex/mdl reverse-engineering + lg build/inline scripts + liquid-demo page (for developers)
|
|
252
|
+
├── screenshots/ # effect screenshots
|
|
222
253
|
├── README.md # Chinese
|
|
223
254
|
└── README.en.md # English
|
|
224
255
|
```
|
|
256
|
+
> Note: `lib/liquid-glass/` and `lib/liquid-glass-bundle.js` still ship in the npm package because of `files: ["lib"]`, but the **client no longer references them** (WebGL was removed in v3.6.0 in favor of the CSS version).
|
|
225
257
|
|
|
226
258
|
## Acknowledgements
|
|
227
259
|
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web 界面(dsh web)添加背景壁纸的插件:**Wallpaper Engine `.mpkg` 解析、Steam 创意工坊原始目录、视频/网页/图片壁纸、时间变化壁纸的多时段切换、整屏虚化体系、主题色与玻璃外观、本地壁纸库、定时轮换、一键更新**。几乎每一个外观细节都可以调节。
|
|
8
8
|
|
|
9
|
-
> **一句话版本**:视频/图片/网页壁纸直接播放;**时间变化壁纸(Time Variation)支持多时段自动切换 + 手动锁定时段**;**带设置项的部分网页壁纸(如 Live2D
|
|
9
|
+
> **一句话版本**:视频/图片/网页壁纸直接播放;**时间变化壁纸(Time Variation)支持多时段自动切换 + 手动锁定时段**;**带设置项的部分网页壁纸(如 Live2D 立绘类,含分辨率/语言/音量)已接入插件设置页,可在「可调参数」折叠区直接修改**;**视频/网页壁纸支持一键暂停播放(调无关设置不重播)+ 省电三档(隐藏/失焦/电池)**;场景(Scene)壁纸提供静态帧提取 + 图层合成两个折中方案。
|
|
10
10
|
|
|
11
11
|
## 核心能力
|
|
12
12
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
**🎨 主题色与玻璃外观(Aqua 实验模式,默认全关)**
|
|
34
34
|
- **主题颜色(accent)**:取色盘 + 6 预置,驱动按钮/滑条/选中项/链接/发送键等品牌色(`--dsw-alias-brand-*` 系列 token)
|
|
35
35
|
- **统一雾**(全屏遮罩统一雾色,强度独立滑条)、**面板匹配壁纸色**(自动取色 + 强度滑条 + 自定义取色盘)、**自适应文字色 + 蓝色清理**(品牌色统一,带自定义取色盘)、**深底文字可读增强**、**任务列表磨砂**
|
|
36
|
-
- 外观 tab
|
|
36
|
+
- 外观 tab 里还有:悬浮卡片等(时钟为运行时兼容项——旧配置仍会显示,但设置页无开关)
|
|
37
37
|
|
|
38
38
|
**🧩 dsh-better-sidebar 适配(检测到该插件后显示)**
|
|
39
39
|
- 已安装 [dsh-better-sidebar](https://github.com/) 时,「外观 / 其他」tab 自动出现**适配分类**:总开关 + 子开关:
|
|
@@ -44,6 +44,21 @@
|
|
|
44
44
|
- 字体跟随(bsFont)等其余子开关
|
|
45
45
|
- 主机端 `/ping` 自动探测 better-sidebar 是否安装;未安装时该分类隐藏
|
|
46
46
|
|
|
47
|
+
**⏯️ 播放控制与省电**
|
|
48
|
+
- **暂停 / 播放按钮**:当前壁纸为视频/网页类时,设置页「壁纸设置」下方出现**暂停/播放**按钮(点击停住画面,再点恢复)。暂停状态**实时同步**(按钮反映视频实际播放状态);**调整无关设置(静音/亮度/模糊等)不会触发重播**——已修复「video.src 用绝对 URL 判等恒不等 → 每次应用设置都重载媒体源」的根因。
|
|
49
|
+
- **省电(遮挡暂停三档)**:「其他」tab 提供三档独立开关:
|
|
50
|
+
- **页面隐藏时暂停**(`visibilitychange`)
|
|
51
|
+
- **窗口失焦时暂停**(`blur/focus`)
|
|
52
|
+
- **电池供电时暂停**(`getBattery`,API 不存在则静默跳过)
|
|
53
|
+
- 任一档触发即暂停壁纸、全部恢复才继续;省电暂停与用户手动暂停互不干扰(都尊重同一套门控)
|
|
54
|
+
|
|
55
|
+
**🧊 液态玻璃(⚠️ 实验中,默认全关,建议不要启用)**
|
|
56
|
+
> ⚠️ **注意事项**:液态玻璃目前仍是**实验性功能**,效果不定且可能存在布局/性能副作用。**不建议日常启用**——默认全关。如需体验请先备份设置,启用后若出现异常,回到「其他」tab「恢复所有默认设置」即可。
|
|
57
|
+
- 基于 CSS `backdrop-filter` 的半透明 + 模糊 + 边缘高光(**不再是 WebGL 折射版**——WebGL 液态玻璃已在 v3.6.0 移除,见下)。分四个开关:
|
|
58
|
+
- **lgTest(测试模式)**:只保留壁纸 + 悬浮 + 布局,不覆盖任何 DSH token(否则背景读半透明会让聊天框透明无模糊)
|
|
59
|
+
- **lgComposer / lgSidebar / lgHeader**:分别给聊天气泡区、侧边栏、标题栏加液态玻璃叠加层(侧边栏因设置弹窗渲染层级限制,只能做半透明 + 边缘高光,**不能加 backdrop-filter**,否则会把设置弹窗压缩进侧边栏——历史踩坑)
|
|
60
|
+
- **历史说明**:早期版本用的是 WebGL 真折射(`lib/liquid-glass/` 库 + `liquid-glass-bundle.js` 107KB);因不稳定且体积大,v3.6.0 已删掉 WebGL 运行时,改用纯 CSS 版。`lib/liquid-glass/*.js`、`liquid-glass-bundle.js`、`tools/liquid-demo/` 等**仍留在包里但无运行时引用**,属遗留死文件(后续可清)。
|
|
61
|
+
|
|
47
62
|
**🎬 镜头与画面**
|
|
48
63
|
- 镜头缩放(10–2000%)与平移、画面亮度(50–150%)、轻度锐化、Deep diving 背景框
|
|
49
64
|
|
|
@@ -54,7 +69,8 @@
|
|
|
54
69
|
- mpkg 流式上传到 DSH 宿主 → 磁盘存储 → HTTP Range 流式播放,**>600MB 大文件也支持**,内存占用极低
|
|
55
70
|
|
|
56
71
|
**🖼️ 本地壁纸库**
|
|
57
|
-
- **Steam 自动发现** + **自定义目录**(任意文件夹 + 跨平台目录选择器;mpkg 文件与 workshop
|
|
72
|
+
- **Steam 自动发现** + **自定义目录**(任意文件夹 + 跨平台目录选择器;mpkg 文件与 workshop 文件夹混合放置都能识别;图片/视频/`scene.pkg`/`.mov` 均可)
|
|
73
|
+
- **WE 原生播放列表导入**:Steam 扫描时自动解析 Wallpaper Engine 的 `config.json`(`general.playlists`)为**轮播列表**,项映射到本插件的 `steam|`/`custom|` key
|
|
58
74
|
- **壁纸切换与轮换**:上一个/下一个一键切换、定时自动轮换(间隔可调);轮换列表勾选后滚动保持不跳顶,未命名列表自动加序号(`未命名列表 N`)不重名
|
|
59
75
|
|
|
60
76
|
**🛡️ 安全与共存**
|
|
@@ -78,6 +94,16 @@
|
|
|
78
94
|
- **懒加载防 OOM**:时间变化壁纸只提取当前时段;hybrid 大文件流式播放内存占用极低
|
|
79
95
|
- **弱设备降级**:对高负载合成(全屏 backdrop-filter + 流媒体视频叠加)做了整体节流优化;不同 WebView 的极端组合问题仍建议用 Edge / 桌面浏览器获得最佳体验
|
|
80
96
|
|
|
97
|
+
**🌐 浏览器兼容性(实测参考)**
|
|
98
|
+
| 浏览器 | 推荐度 | 表现与注意 |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| Chrome / Chromium(桌面) | ⭐⭐⭐ 强 | 功能最完整:`backdrop-filter` 与 `color-mix` 实现最佳、`iframe.muted` 生效、muted 自动播放放行 |
|
|
101
|
+
| Edge(桌面) | ⭐⭐⭐ 强 | 视频壁纸走**独立 canvas 渲染路径**(规避 Edge 悬浮工具栏);暂停/恢复/重播均已修复(CSS 首帧 + src 判等)。个别版本仅有首帧静态(非空白/崩溃) |
|
|
102
|
+
| Firefox | ⭐⭐ 中 | 功能全支持(backdrop-filter 103+、编码不支持自动转码兜底);三点减分:backdrop-filter 性能弱于 Chromium(多模糊同开低端机掉帧)、`iframe.muted` 不支持(**有声 web 壁纸首次可能被自动播放策略拦截停首帧**,错误被 iframe 隔离不影响主界面)、`color-mix` 需 113+(旧版仅外观回退) |
|
|
103
|
+
| Android WebView / 移动端 | ⭐⭐ 中偏弱 | autoplay 政策取决于宿主 App 的 WebView 配置(muted 通常放行但 Firefox 系/部分 WebView 会拦截,此时视频停首帧);`getBattery` 可能缺失(有守卫跳过);极端组合建议用静态图/GIF 或关 blur |
|
|
104
|
+
|
|
105
|
+
> 注:源码已为各浏览器做了降级(无 `requestVideoFrameCallback` 时回退 rAF、`ResizeObserver`/`getBattery` 有守卫、全部 `play()` 带 `.catch`、`backdrop-filter` 用 `CSS.supports` 检测并降级为不透明)。**未发现会导致整页白屏/卡死/崩溃的浏览器高濒点**。Firefox 的「有声 web 壁纸自动播放被拦截」是唯一待实测的中等项,建议首选 Chrome/Edge 获得完整体验。
|
|
106
|
+
|
|
81
107
|
## 支持类型与现状
|
|
82
108
|
|
|
83
109
|
| 类型 | Web 端表现 | 说明 |
|
|
@@ -126,7 +152,7 @@
|
|
|
126
152
|
- **🌐外网**:依赖外网 SDK/CDN(如米哈游事件页),加载可能失败
|
|
127
153
|
- 实测:webm 视频类网页壁纸(轻量)正常;Spine 骨骼动画类视设备性能而定;**带 `loadJson.json` 设置项的 Live2D 立绘类已接入插件可改**(见上文)
|
|
128
154
|
|
|
129
|
-
## 设置分组(顶部 Tab
|
|
155
|
+
## 设置分组(顶部 Tab,共 8 个)
|
|
130
156
|
|
|
131
157
|
- **背景来源**:总开关、hybrid、mpkg 文件、图片/视频文件、自定义目录(可指 workshop 主目录)、本地壁纸库(Steam 扫描)、壁纸切换/轮换、**时间变化壁纸的时段锁定**
|
|
132
158
|
- **壁纸设置**:静音、镜像翻转(水平/垂直)、视频倍速、可调参数(mpkg 只读 / 网页壁纸可改)、解码帧率上限、分辨率上限、ffmpeg 状态
|
|
@@ -134,7 +160,8 @@
|
|
|
134
160
|
- **统一虚化**:整屏虚化 + 侧边栏/标题栏白雾、聊天区跟随、新会话跟随
|
|
135
161
|
- **界面虚化**:对话框/设置面板/弹窗/弹层/遮罩/侧边栏磨砂各自独立
|
|
136
162
|
- **Aqua**:统一雾/面板取色/自适应文字等实验开关
|
|
137
|
-
-
|
|
163
|
+
- **液态玻璃**:lgTest / lgComposer / lgSidebar / lgHeader(CSS 版,**实验中,建议不启用**;附独立演示页,见上方「液态玻璃」小节)
|
|
164
|
+
- **其他**:省电三档(隐藏/失焦/电池)、新样式/锐化/圆角兼容、更新检查/热更新、**备份与恢复**、恢复所有默认设置、前往反馈;安装 better-sidebar 时此处出现**适配分类**(时钟为运行时兼容项,无设置开关)
|
|
138
165
|
|
|
139
166
|
## 安装
|
|
140
167
|
|
|
@@ -202,7 +229,7 @@ git clone https://github.com/XHR666/dsh-mpkg-wallpaper.git $DSH_HOME/profiles/no
|
|
|
202
229
|
|
|
203
230
|
## 安全说明
|
|
204
231
|
|
|
205
|
-
-
|
|
232
|
+
- **默认无被动对外网络请求**:插件后台**不主动**访问任何外部网络;日常壁纸播放仅与**本机 DSH 宿主**(127.0.0.1)HTTP 通信。唯一的例外是**用户显式触发的功能**:检查更新 / 一键更新访问 GitHub(`raw.githubusercontent.com`、`api.github.com`)、下载 ffmpeg 访问 GitHub Releases / npm 二进制镜像(`registry.npmmirror.com`)——均在用户点按后发起,不自动发生。此外用户手动输入的网络图片 URL、网页壁纸自身加载的资源也属外部访问。
|
|
206
233
|
- **无敏感内容**:源码不含路径、密钥、令牌、个人信息
|
|
207
234
|
- **开源依赖**:仅 DSH 自带 react + 官方 slots/locale 接口;scene.pkg 提取器采用 [elysia395/dsh-wallpaper-engine](https://github.com/elysia395/dsh-wallpaper-engine)(MIT,文件头已署名)
|
|
208
235
|
- 参考项目:[dsh-bg-image](https://github.com/lyh9712/dsh-bg-image)(MIT,模板)、[unmpkg](https://github.com/aqnya/unmpkg)(GPL-3.0,仅参考 mpkg 二进制格式)、[repkg](https://github.com/notscuffed/repkg)(GPL,仅研究 .tex 格式)
|
|
@@ -214,14 +241,19 @@ git clone https://github.com/XHR666/dsh-mpkg-wallpaper.git $DSH_HOME/profiles/no
|
|
|
214
241
|
dsh-mpkg-wallpaper/
|
|
215
242
|
├── package.json # dsh.bundle + dsh.client 声明
|
|
216
243
|
├── cordis.patch.yml # 插件安装声明(dsh plugin add 使用)
|
|
244
|
+
├── LICENSE # MIT 许可证
|
|
217
245
|
├── lib/
|
|
218
246
|
│ ├── index.js # 宿主端:上传/流式播放 + Steam 发现 + 自定义目录 + 场景提取路由 + 设置持久化
|
|
219
|
-
│ ├── client.js # 浏览器端:mpkg 解析 + 设置页 + 背景 DOM + 虚化体系 + 壁纸库 + 时间变化/网页设置
|
|
220
|
-
│
|
|
221
|
-
├──
|
|
247
|
+
│ ├── client.js # 浏览器端:mpkg 解析 + 设置页 + 背景 DOM + 虚化体系 + 壁纸库 + 时间变化/网页设置 + 播放控制/省电
|
|
248
|
+
│ ├── pkg-extract.js# scene.pkg 静态帧/图层提取(PKG+LZ4+TEX,MIT,来自 elysia395)
|
|
249
|
+
│ ├── liquid-glass/ # 液态玻璃 WebGL 库(**遗留,无运行时引用**,v3.6.0 已改 CSS 版)
|
|
250
|
+
│ └── liquid-glass-bundle.js # 液态玻璃打包产物(107KB,**无引用死文件**,随包冗余)
|
|
251
|
+
├── tools/ # mpkg/tex/mdl 逆向解析 + lg 构建/内联脚本 + liquid-demo 演示页(供开发者)
|
|
252
|
+
├── screenshots/ # 效果截图
|
|
222
253
|
├── README.md # 本文件(中文)
|
|
223
254
|
└── README.en.md # 英文说明
|
|
224
255
|
```
|
|
256
|
+
> 注:`lib/liquid-glass/`、`lib/liquid-glass-bundle.js` 因 `files: ["lib"]` 仍会打进 npm 包,但**客户端不再引用**(WebGL 已在 v3.6.0 移除,改用 CSS 版)。
|
|
225
257
|
|
|
226
258
|
## 致谢
|
|
227
259
|
|