dsh-wallpaper_share 26.9.4 → 26.9.8
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.md +55 -21
- package/README.zh-CN.md +26 -7
- package/lib/client.js +2188 -497
- package/lib/client.js.map +1 -1
- package/lib/index.js +2187 -225
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# dsh-wallpaper_share
|
|
2
|
-
|
|
2
|
+
已适配 harness 0.1.2-rc
|
|
3
3
|
<!-- Hero -->
|
|
4
4
|
<div align="center">
|
|
5
|
-
<b style="font-size: 1.15em;">把 Wallpaper Engine 的壁纸实时同步为 DSH Web
|
|
5
|
+
<b style="font-size: 1.15em;">把 Wallpaper Engine 的壁纸实时同步为 DSH Web 界面背景,并附带主题壁纸</b><br /><br />
|
|
6
6
|
<a href="https://www.npmjs.com/package/dsh-wallpaper_share"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-wallpaper_share" /></a>
|
|
7
7
|
<a href="https://www.npmjs.com/package/dsh-wallpaper_share"><img alt="npm downloads" src="https://img.shields.io/npm/dm/dsh-wallpaper_share" /></a>
|
|
8
8
|
<a href="https://github.com/YRN-playmaker/dsh-wallpaper_share/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/YRN-playmaker/dsh-wallpaper_share" /></a>
|
|
9
9
|
<a href="https://opensource.org/licenses/GPL-3.0"><img alt="License: GPL-3.0" src="https://img.shields.io/badge/License-GPL--3.0-blue.svg" /></a>
|
|
10
|
-
<a href="https://github.com/YRN-playmaker/dsh-wallpaper_share/releases"><img alt="插件版本 v26.9.
|
|
10
|
+
<a href="https://github.com/YRN-playmaker/dsh-wallpaper_share/releases"><img alt="插件版本 v26.9.8" src="https://img.shields.io/badge/v26.9.8-4d6bfe" /></a><br /><br />
|
|
11
11
|
<img alt="壁纸同步" src="https://img.shields.io/badge/-%E5%A3%81%E7%BA%B8%E5%90%8C%E6%AD%A5-4d6bfe" /> <img alt="场景渲染" src="https://img.shields.io/badge/-%E5%9C%BA%E6%99%AF%E6%B8%B2%E6%9F%93-4d6bfe" /> <img alt="DWP 市场" src="https://img.shields.io/badge/-DWP%20%E5%B8%82%E5%9C%BA-4d6bfe" /> <img alt="眼动追踪" src="https://img.shields.io/badge/-%E7%9C%BC%E5%8A%A8%E8%BF%BD%E8%B8%AA-4d6bfe" /> <img alt="专注模式" src="https://img.shields.io/badge/-%E4%B8%93%E6%B3%A8%E6%A8%A1%E5%BC%8F-4d6bfe" /> <img alt="多显示器" src="https://img.shields.io/badge/-%E5%A4%9A%E6%98%BE%E7%A4%BA%E5%99%A8-4d6bfe" /><br /><br />
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -15,10 +15,6 @@
|
|
|
15
15
|
🌏 <a href="#中文"><b>中文</b></a> · <a href="#english">English</a> · 纯中文长文见 <a href="README.zh-CN.md"><code>README.zh-CN.md</code></a>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
<div align="center">
|
|
19
|
-
<video src="https://github.com/user-attachments/assets/4461d385-de62-42be-8420-7edce5606f44"
|
|
20
|
-
muted autoplay loop playsinline controls width="100%"></video>
|
|
21
|
-
</div>
|
|
22
18
|
|
|
23
19
|
把 Wallpaper Engine 当前显示的壁纸实时同步为 DeepSeek Harness Web 界面的背景,并提供 `wallpaper_share` 标签页用于调整渲染模式、视觉效果、专注模式与壁纸库。支持场景壁纸的完整动效与应用壁纸的导入。
|
|
24
20
|
|
|
@@ -61,6 +57,8 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
61
57
|
|
|
62
58
|
需要 WE 正在运行且已应用壁纸;否则背景留空、面板显示"尚未应用壁纸"。诊断入口:`http://127.0.0.1:3080/we-sync/diag`(仅本机可访问;端口以启动日志为准,默认 3080)。
|
|
63
59
|
|
|
60
|
+
> **零配置**:无需 API Key、无需注册、无需任何额外配置,安装即用。(注意:开头「无敏感信息」是隐私声明——代码中不含 Steam 用户名 / 令牌,并非需要你提供这些信息。)
|
|
61
|
+
|
|
64
62
|
## ✨ 功能一览
|
|
65
63
|
|
|
66
64
|
- **实时同步**:在 WE 切换壁纸后,页面背景约 2 秒内自动跟随
|
|
@@ -69,7 +67,8 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
69
67
|
- **原生 scene 捕获渲染器**:随包内置 Rust 编写的 `we-capture.exe`,用 Windows Graphics Capture 抓取 WE 正在渲染的桌面,镜像 WE 自身输出 → GLSL / SceneScript / 关键帧 / 粒子等**所有 WE 效果天然全覆盖**
|
|
70
68
|
- **专注模式**:叠加一个圆心清晰、圆外模糊的阅读窗;默认跟随鼠标,开专注即生效
|
|
71
69
|
- **眼动追踪(实验)**:可选,用摄像头推断注视点让透镜跟随视线;9 点校准、文字吸附、抗抖动
|
|
72
|
-
-
|
|
70
|
+
- **应用启动器**:壁纸库新增「应用启动器」分类——粘贴软件包 `http(s)` 直链(`.zip`/`.7z`/`.exe`,**加密压缩包填解压密码**)或**中国移动云盘分享链接**(`yun.139.com/shareweb/#/w/i/…`,提取码填在密码框),DSH 自动 下载 → 解包 → 探测可执行入口 → 封装成**类 WE app 格式**(自动生成 `project.json` + 预览图卡片)并入库;卡片一键「▶ 启动」(每次弹确认),也支持卸载 / 更新预览 / 多入口切换。装到 `~/.dsh/storages/we-sync-apps`(自动注册进壁纸读取位置),不依赖 WE 运行、不受新版 WE 取消应用类壁纸影响。加密 zip(ZipCrypto / WinZip AES)纯 JS 解密、密码不落盘;`.7z` 需系统装有 7-Zip 或将 `7za.exe` 放入插件 `bin/`(`CONFIG.launcherSevenZipPath` 可指定路径)。139 分享的元数据解析匿名可用(提取码即密码框值),**原始文件下载需登录态**:登录 yun.139.com 后 F12 复制任意请求的 `Authorization` 头,粘贴到面板「139 登录态」行(存 `~/.dsh/storages/we-sync-139-auth.json`,可随时清除;缺登录态时面板自动展开该行)
|
|
71
|
+
- **壁纸库 · 本地 / 市场**:按**本地**与**市场**两大分类浏览。本地一栏管理已装内容——`dwp壁纸`(点击即挂载为全局背景,已挂载再点取消)与 `we 应用`(点击打开所在文件夹,含「▶ 启动」),带标题搜索、缩略图与计数;市场一栏浏览 `dwp-registry` 目录,支持名称 / 作者搜索、标签筛选与**安装 / 更新 / 卸载**
|
|
73
72
|
- **DWP 壁纸与全局背景渲染**:`dwp/1.0` 协议包(纯文本 / solid / 粒子 / mesh 图层 + 12 种混合模式 + 3 种动画 + 11 种效果,确定性渲染);挂载后经 WebGL2 真实渲染为 DSH 全局背景(低配 Canvas2D 降级),同时暂停 WE 同步避免冲突,刷新后自动恢复
|
|
74
73
|
- **沉浸模式**:一键隐去会话头部、正文与输入栏,让壁纸独占视野;网页 / 应用类壁纸在沉浸下可直接鼠标交互(详见[沉浸模式](#-沉浸模式与任务指示))
|
|
75
74
|
- **视觉效果**:面板透明度 0–100% / 背景模糊 0–30px / 阴影深度 0–100%,即时生效
|
|
@@ -80,13 +79,13 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
80
79
|
|
|
81
80
|
## 🧭 面板导览
|
|
82
81
|
|
|
83
|
-
`wallpaper_share`
|
|
82
|
+
`wallpaper_share` 标签页采用**双页虚拟滚动**:「设置 ⇄ 壁纸库」两页纵向叠放、中间留断层,一套滚轮全接管——页内跟手滚动 + 惯性阻尼,滚到页界继续滚即**蓄力翻页**(250ms 无输入弹回防误触),右缘页签显示当前页(黄色高亮)与蓄力进度,点击可直达;所有操作即时生效、无需保存:
|
|
84
83
|
|
|
85
84
|
| 卡片 | 内容 |
|
|
86
85
|
| --- | --- |
|
|
87
86
|
| **壁纸状态** | 壁纸名(标题行**右缘为插件版本号**,一键整段选中便于反馈问题);下方副标题只承载诊断信息——scene 壁纸显示当前渲染通路(`场景 · 预览图 / 捕获 live 30fps / 浏览器模型渲染 / 回退:<原因>`),未应用壁纸时显示引导文案,其余类型整行不占;多显示器时出现「背景显示器」下拉;`⏻ 同步开启 / 关闭 / 暂停(DWP)` 三态按钮 |
|
|
88
87
|
| **视觉效果** | 三档渲染模式分段按钮;「专注模式」及其展开条(眼动追踪 / 校准视线 / 文字吸附 / 实时状态);透明度 · 模糊 · 阴影三个滑块(**专注开启时滑块隐藏**,改由任务态与透镜接管) |
|
|
89
|
-
| **壁纸库** |
|
|
88
|
+
| **壁纸库** | 「壁纸读取位置」可添加自定义壁纸目录(指向单个壁纸目录或集合文件夹),启动器安装位置也并入这里(带「(启动器安装位置)」标记,可更改 / 迁移);「本地 / 市场 / 应用启动器」三栏切换,本地按 `dwp壁纸` / `we 应用` 筛选 + 标题搜索 + 分页(显示更多 +60),市场支持安装 / 更新 / 卸载,**应用启动器**支持直链安装(`.zip`/`.7z`/`.exe`,加密包可填解压密码)与 **139 分享链接**(提取码填密码框;原始文件下载需粘贴一次 Authorization 登录态),自动封装类 WE app(json + 预览图)与一键启动(每次弹确认) |
|
|
90
89
|
|
|
91
90
|
两点与宿主 UI 的约定:
|
|
92
91
|
|
|
@@ -126,7 +125,9 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
126
125
|
|
|
127
126
|
**原生捕获器原理**:WE 的 DX11 渲染窗口是 Progman 子窗口、WGC 不接受子窗口,故捕获其顶层根 Progman / WorkerW,BGRA→JPEG 按外部渲染器协议输出到 stdout。因为镜像的是 **WE 自身的渲染结果**,无需在 JS 端复刻那套 ~500KB 软渲染引擎,效果 100% 覆盖。多显示器下顶层根窗横跨整个虚拟桌面,捕获器按锁定的那块 WPE 子窗矩形用 `CopySubresourceRegion` + `D3D11_BOX` 只回读目标屏区域再编码(换算经 `ClientToScreen` / `GetClientRect` 归一化,DPI 缩放非 100% 同样正确)→ 输出严格是单块屏。`bin/we-capture.exe`(约 540KB,Windows-only)随包发布,Rust 源码在 `native/we-capture/`(`cargo build --release` 可重建,含 `--selftest` 诊断模式);DSH 侧 `probeRenderer` 自动发现,`sceneRenderMode='auto'` 检测到原生渲染器即走 external,否则回退 browser。
|
|
128
127
|
|
|
129
|
-
完整链路与各层实现见 **[docs/scene-fallback.md](docs/scene-fallback.md)**;pkg / 纹理 / puppet 格式见 **[docs/scene-format.md](docs/scene-format.md)**、**[docs/tex-format-findings.md](docs/tex-format-findings.md)**、**[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**。
|
|
128
|
+
完整链路与各层实现见 **[docs/scene-fallback.md](docs/scene-fallback.md)**;pkg / 纹理 / puppet 格式见 **[docs/scene-format.md](docs/scene-format.md)**、**[docs/tex-format-findings.md](docs/tex-format-findings.md)**、**[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**、**[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**。
|
|
129
|
+
|
|
130
|
+
**骨骼动画(完整档)**:puppet 部件按 MDLS 绑定 + MDLA 逐骨骼动画做全骨骼链乘蒙皮,`animationlayers` 多层合成(普通层 mix / additive 层以自身帧 0 为参考 / rate 倍速 / 30fps),MDAT 具名锚点(含中文名)跟随骨骼最终世界位姿。26.9.8 定案 MDLA0006 连续流布局(骨骼窗口跨段延伸、每骨骼 +2 浮点漂移、fc+1 行含闭合行),并钳制末骨越界帧——修复人物每循环抽动一次与蒙皮异常形变(如 3465215190);58 个本地 MDL 端到端校验(帧0≈bind + 闭环平滑度)全部通过。
|
|
130
131
|
|
|
131
132
|
## 🔍 专注模式与眼动追踪
|
|
132
133
|
|
|
@@ -157,17 +158,31 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
157
158
|
| --- | --- | --- |
|
|
158
159
|
| 🟢 **小白** | 不纠结版本,直接拉当前主流 Harness 环境的推荐版 | `dsh plugin --profile web add dsh-wallpaper_share` |
|
|
159
160
|
| 🔵 **rc(稳定版本)** | 适配 harness 为 rc 架构的推荐版本,新功能适配较慢 | `dsh plugin --profile web add dsh-wallpaper_share@rc` |
|
|
160
|
-
| 🟣 **alpha(新版本)** | 适配 harness 为 alpha 架构的推荐版本 | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
161
161
|
| 🟡 **test(测试版本)** | 用于测试的版本,可能有未完成功能 | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
162
162
|
|
|
163
|
+
### 🔧 其他安装方式
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# 从 Git 克隆(仓库自带预构建 lib/,克隆后无需构建):
|
|
167
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
168
|
+
cd dsh-wallpaper_share
|
|
169
|
+
pnpm pack # 打包为 dsh-wallpaper_share-<version>.tgz
|
|
170
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# 作为 npm 依赖引入(可选):
|
|
175
|
+
pnpm add dsh-wallpaper_share
|
|
176
|
+
```
|
|
177
|
+
|
|
163
178
|
```bash
|
|
164
179
|
# 任选其一:
|
|
165
180
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
166
181
|
# 从 GitHub 安装(仓库自带预构建 lib/,不需要构建许可;main = 最新档)
|
|
167
182
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
168
183
|
# 从 npm 安装(默认 = latest 最新档)
|
|
169
|
-
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.
|
|
170
|
-
# 本地 tarball 安装(26.9.
|
|
184
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.8.tgz
|
|
185
|
+
# 本地 tarball 安装(26.9.8)
|
|
171
186
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
172
187
|
# 从 GitHub 安装 test 分支(测试档,含壁纸特效优化、页面功能更新等)
|
|
173
188
|
```
|
|
@@ -245,7 +260,7 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
245
260
|
|
|
246
261
|
## 🆕 已知问题
|
|
247
262
|
|
|
248
|
-
> 适用版本:插件 `v26.9.
|
|
263
|
+
> 适用版本:插件 `v26.9.8` / Harness `0.1.2-rc.1`。
|
|
249
264
|
|
|
250
265
|
### 兼容性(Harness 0.1.2 破坏性变更 · 已适配)
|
|
251
266
|
|
|
@@ -312,6 +327,8 @@ You get three things:
|
|
|
312
327
|
|
|
313
328
|
WE must be running with a wallpaper applied; otherwise the background stays empty and the panel says so. Diagnostics: `http://127.0.0.1:3080/we-sync/diag` (localhost only; use the port printed at startup — 3080 by default).
|
|
314
329
|
|
|
330
|
+
> **Zero-config**: no API Key, no signup, no extra setup of any kind — install and go. (Note: the no-sensitive-data notice at the top is a privacy statement — the code contains no Steam username or token; you are never asked to provide one.)
|
|
331
|
+
|
|
315
332
|
## ✨ Features
|
|
316
333
|
|
|
317
334
|
- **Real-time sync**: the page background follows WE's current wallpaper within ~2s
|
|
@@ -331,13 +348,13 @@ WE must be running with a wallpaper applied; otherwise the background stays empt
|
|
|
331
348
|
|
|
332
349
|
## 🧭 Panel Tour
|
|
333
350
|
|
|
334
|
-
|
|
351
|
+
The `wallpaper_share` tab uses **two-page virtual scrolling**: "Settings ⇄ Library" stacked vertically with a gap between pages, one wheel handler for everything — momentum scrolling with inertia inside a page, and a **charge-to-flip** zone when you keep scrolling at a page boundary (springs back after 250ms idle to prevent accidents). The right-edge tab strip shows the current page (yellow highlight) plus charge progress and supports click-to-jump. Everything applies instantly — there is no save button.
|
|
335
352
|
|
|
336
353
|
| Card | Contents |
|
|
337
354
|
| --- | --- |
|
|
338
355
|
| **Wallpaper status** | Wallpaper name, with the **plugin version at the right edge of the title row** (single-click selects it whole, handy in bug reports); below it a subtitle reserved for diagnostics — the active render path for scene wallpapers (`Scene · preview image / capture live 30fps / browser model render / fallback: <reason>`), a hint when no wallpaper is applied, and nothing at all otherwise; a monitor dropdown when more than one display is present; the `⏻` sync button with three states |
|
|
339
356
|
| **Visual effects** | The 3-mode segmented control; the focus-mode button with its flyout (eye tracking / calibration / text-line snap / live status); opacity · blur · shadow sliders — **hidden while focus mode is on**, where task state and the lens take over |
|
|
340
|
-
| **Library** | "Wallpaper read locations" for custom folders (a single wallpaper dir or a collection root); Local / Market tabs, `dwp` / `we app` filters, title search, paging (+60), and market install / update / uninstall |
|
|
357
|
+
| **Library** | "Wallpaper read locations" for custom folders (a single wallpaper dir or a collection root); launcher-installed apps merge into this list (tagged "launcher install location", rename / migrate supported); Local / Market tabs, `dwp` / `we app` filters, title search, paging (+60), and market install / update / uninstall; the **App Launcher** tab installs from direct links (`.zip`/`.7z`/`.exe`, password field for encrypted archives) and **139 share links** (passcode in the password field; raw-file download needs a one-time Authorization paste), auto-wraps into WE-app-style entries (json + preview image) with one-click launch (confirmation every time) |
|
|
341
358
|
|
|
342
359
|
Two host-UI conventions worth knowing:
|
|
343
360
|
|
|
@@ -377,7 +394,9 @@ Which layer is live is shown in the panel subtitle (see [Panel Tour](#-panel-tou
|
|
|
377
394
|
|
|
378
395
|
**How the capture renderer works**: WE's DX11 window is a child of Progman and WGC rejects child windows, so it captures the top-level Progman / WorkerW root, converts BGRA→JPEG and emits frames over stdout via the external-renderer protocol. Because it mirrors **WE's own rendering**, no ~500KB JS reimplementation is needed and effects are 100% covered. With multiple monitors the top-level root window spans the whole virtual desktop, so the capture renderer crops to the locked WPE child-window rect via `CopySubresourceRegion` + `D3D11_BOX` before encoding (normalized through `ClientToScreen` / `GetClientRect`, correct under non-100% DPI scaling) → the output is strictly one display. `bin/we-capture.exe` (~540KB, Windows-only) ships in the package; Rust source in `native/we-capture/` (`cargo build --release`, with a `--selftest` mode); DSH's `probeRenderer` auto-discovers it and `sceneRenderMode='auto'` prefers external when found, else browser.
|
|
379
396
|
|
|
380
|
-
Full chain & per-layer implementation in **[docs/scene-fallback.md](docs/scene-fallback.md)**; pkg / texture / puppet formats in **[docs/scene-format.md](docs/scene-format.md)**, **[docs/tex-format-findings.md](docs/tex-format-findings.md)**, **[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**.
|
|
397
|
+
Full chain & per-layer implementation in **[docs/scene-fallback.md](docs/scene-fallback.md)**; pkg / texture / puppet formats in **[docs/scene-format.md](docs/scene-format.md)**, **[docs/tex-format-findings.md](docs/tex-format-findings.md)**, **[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**, **[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**.
|
|
398
|
+
|
|
399
|
+
**Bone animation (Full mode)**: puppet parts are skinned with full-bone chain multiplication from MDLS binds + per-bone MDLA animation; `animationlayers` composite (normal layers mix / additive layers reference their own frame 0 / rate multiplier / 30fps); MDAT named anchors (Chinese names included) follow the bone's final world pose. Version 26.9.8 pins down the MDLA0006 continuous-stream layout (bone windows span segment boundaries, +2-float drift per bone, fc+1 rows incl. a closing row) and clamps out-of-range tail frames — fixing the once-per-cycle twitch and skin deformation (e.g. wallpaper 3465215190); all 58 local MDLs pass the end-to-end check (frame 0 ≈ bind + closed-loop smoothness).
|
|
381
400
|
|
|
382
401
|
## 🔍 Focus Mode & Eye Tracking
|
|
383
402
|
|
|
@@ -411,14 +430,29 @@ When the sidebar is **collapsed**, a 34px round light appears on the left edge (
|
|
|
411
430
|
| 🟣 **alpha (new)** | Recommended build for a Harness on the alpha architecture | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
412
431
|
| 🟡 **test (testing)** | For testing only; may contain unfinished features | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
413
432
|
|
|
433
|
+
### 🔧 Other install methods
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
# From a Git clone (repo ships prebuilt lib/, no build needed):
|
|
437
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
438
|
+
cd dsh-wallpaper_share
|
|
439
|
+
pnpm pack # → dsh-wallpaper_share-<version>.tgz
|
|
440
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
# As an npm dependency (optional):
|
|
445
|
+
pnpm add dsh-wallpaper_share
|
|
446
|
+
```
|
|
447
|
+
|
|
414
448
|
```bash
|
|
415
449
|
# pick one:
|
|
416
450
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
417
451
|
# install from GitHub (repo ships prebuilt lib/, no build permission needed; main = latest tier)
|
|
418
452
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
419
453
|
# install from npm (default = latest tier)
|
|
420
|
-
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.
|
|
421
|
-
# install from a local tarball (26.9.
|
|
454
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.8.tgz
|
|
455
|
+
# install from a local tarball (26.9.8)
|
|
422
456
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
423
457
|
# install the test branch (test tier, latest dev build)
|
|
424
458
|
```
|
|
@@ -496,7 +530,7 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
496
530
|
|
|
497
531
|
## 🆕 Known Issues
|
|
498
532
|
|
|
499
|
-
> Applies to plugin `v26.9.
|
|
533
|
+
> Applies to plugin `v26.9.8` / Harness `0.1.2-rc.1`.
|
|
500
534
|
|
|
501
535
|
### Compatibility (breaking changes in Harness 0.1.2 — adapted)
|
|
502
536
|
|
package/README.zh-CN.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<div align="center">
|
|
6
6
|
<a href="https://www.npmjs.com/package/dsh-wallpaper_share"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-wallpaper_share" /></a>
|
|
7
7
|
<a href="https://opensource.org/licenses/GPL-3.0"><img alt="License: GPL-3.0" src="https://img.shields.io/badge/License-GPL--3.0-blue.svg" /></a>
|
|
8
|
-
<a href="https://github.com/YRN-playmaker/dsh-wallpaper_share/releases"><img alt="插件版本 v26.9.
|
|
8
|
+
<a href="https://github.com/YRN-playmaker/dsh-wallpaper_share/releases"><img alt="插件版本 v26.9.8" src="https://img.shields.io/badge/v26.9.8-4d6bfe" /></a>
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
[中文](README.zh-CN.md) | [English → README.md](README.md#english)
|
|
@@ -53,6 +53,8 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
53
53
|
|
|
54
54
|
需要 WE 正在运行且已应用壁纸;否则背景留空、面板显示"尚未应用壁纸"。诊断入口:`http://127.0.0.1:3080/we-sync/diag`(仅本机可访问;端口以启动日志为准,默认 3080)。
|
|
55
55
|
|
|
56
|
+
> **零配置**:无需 API Key、无需注册、无需任何额外配置,安装即用。(注意:开头「无敏感信息」是隐私声明——代码中不含 Steam 用户名 / 令牌,并非需要你提供这些信息。)
|
|
57
|
+
|
|
56
58
|
## ✨ 功能一览
|
|
57
59
|
|
|
58
60
|
- **实时同步**:在 WE 切换壁纸后,页面背景约 2 秒内自动跟随
|
|
@@ -72,13 +74,13 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
72
74
|
|
|
73
75
|
## 🧭 面板导览
|
|
74
76
|
|
|
75
|
-
`wallpaper_share`
|
|
77
|
+
`wallpaper_share` 标签页采用**双页虚拟滚动**:「设置 ⇄ 壁纸库」两页纵向叠放、中间留断层,一套滚轮全接管——页内跟手滚动 + 惯性阻尼,滚到页界继续滚即**蓄力翻页**(250ms 无输入弹回防误触),右缘页签显示当前页(黄色高亮)与蓄力进度,点击可直达;所有操作即时生效、无需保存:
|
|
76
78
|
|
|
77
79
|
| 卡片 | 内容 |
|
|
78
80
|
| --- | --- |
|
|
79
81
|
| **壁纸状态** | 壁纸名(标题行**右缘为插件版本号**,一键整段选中便于反馈问题);下方副标题只承载诊断信息——scene 壁纸显示当前渲染通路(`场景 · 预览图 / 捕获 live 30fps / 浏览器模型渲染 / 回退:<原因>`),未应用壁纸时显示引导文案,其余类型整行不占;多显示器时出现「背景显示器」下拉;`⏻ 同步开启 / 关闭 / 暂停(DWP)` 三态按钮 |
|
|
80
82
|
| **视觉效果** | 三档渲染模式分段按钮;「专注模式」及其展开条(眼动追踪 / 校准视线 / 文字吸附 / 实时状态);透明度 · 模糊 · 阴影三个滑块(**专注开启时滑块隐藏**,改由任务态与透镜接管) |
|
|
81
|
-
| **壁纸库** |
|
|
83
|
+
| **壁纸库** | 「壁纸读取位置」可添加自定义壁纸目录(指向单个壁纸目录或集合文件夹),启动器安装位置也并入这里(带「(启动器安装位置)」标记,可更改 / 迁移);「本地 / 市场 / 应用启动器」三栏切换,本地按 `dwp壁纸` / `we 应用` 筛选 + 标题搜索 + 分页(显示更多 +60),市场支持安装 / 更新 / 卸载,**应用启动器**支持直链安装(`.zip`/`.7z`/`.exe`,加密包可填解压密码)与 **139 分享链接**(提取码填密码框;原始文件下载需粘贴一次 Authorization 登录态),自动封装类 WE app(json + 预览图)与一键启动(每次弹确认) |
|
|
82
84
|
|
|
83
85
|
两点与宿主 UI 的约定:
|
|
84
86
|
|
|
@@ -120,7 +122,9 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
120
122
|
|
|
121
123
|
**原生捕获器原理**:WE 的 DX11 渲染窗口是 Progman 子窗口、WGC 不接受子窗口,故捕获其顶层根 Progman / WorkerW,BGRA→JPEG 按外部渲染器协议输出到 stdout。因为镜像的是 **WE 自身的渲染结果**,无需在 JS 端复刻对面那套 ~500KB 软渲染引擎,效果 100% 覆盖。多显示器下顶层根窗横跨整个虚拟桌面,捕获器按锁定的那块 WPE 子窗矩形用 `CopySubresourceRegion` + `D3D11_BOX` 只回读目标屏区域再编码(换算经 `ClientToScreen` / `GetClientRect` 归一化,DPI 缩放非 100% 同样正确)→ 输出严格是单块屏。`bin/we-capture.exe`(约 540KB,Windows-only)随 npm 包发布,Rust 源码在 `native/we-capture/`(`cargo build --release` 可重建,含 `--selftest` 诊断模式);DSH 侧 `probeRenderer` 自动发现,`sceneRenderMode='auto'` 检测到原生渲染器即走 external(捕获档),否则回退 browser。JPEG 编码器用 SIMD 的 `jpeg-encoder`,1080p 编码仅约 11ms。
|
|
122
124
|
|
|
123
|
-
完整链路与各层实现见 **[docs/scene-fallback.md](docs/scene-fallback.md)**;pkg / 纹理 / puppet 格式见 **[docs/scene-format.md](docs/scene-format.md)**、**[docs/tex-format-findings.md](docs/tex-format-findings.md)**、**[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**。
|
|
125
|
+
完整链路与各层实现见 **[docs/scene-fallback.md](docs/scene-fallback.md)**;pkg / 纹理 / puppet 格式见 **[docs/scene-format.md](docs/scene-format.md)**、**[docs/tex-format-findings.md](docs/tex-format-findings.md)**、**[docs/mdl-skinning-findings.md](docs/mdl-skinning-findings.md)**、**[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**。
|
|
126
|
+
|
|
127
|
+
**骨骼动画(完整档)**:puppet 部件按 MDLS 绑定 + MDLA 逐骨骼动画做全骨骼链乘蒙皮,`animationlayers` 多层合成(普通层 mix / additive 层以自身帧 0 为参考 / rate 倍速 / 30fps),MDAT 具名锚点(含中文名)跟随骨骼最终世界位姿。26.9.8 定案 MDLA0006 连续流布局(骨骼窗口跨段延伸、每骨骼 +2 浮点漂移、fc+1 行含闭合行),并钳制末骨越界帧——修复人物每循环抽动一次与蒙皮异常形变(如 3465215190);58 个本地 MDL 端到端校验(帧0≈bind + 闭环平滑度)全部通过。
|
|
124
128
|
|
|
125
129
|
## 🔍 专注模式与眼动追踪
|
|
126
130
|
|
|
@@ -154,14 +158,29 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
154
158
|
| 🟣 **alpha(新版本)** | 适配 harness 为 alpha 架构的推荐版本 | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
155
159
|
| 🟡 **test(测试版本)** | 用于测试的版本,可能有未完成功能 | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
156
160
|
|
|
161
|
+
### 🔧 其他安装方式
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 从 Git 克隆(仓库自带预构建 lib/,克隆后无需构建):
|
|
165
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
166
|
+
cd dsh-wallpaper_share
|
|
167
|
+
pnpm pack # 打包为 dsh-wallpaper_share-<version>.tgz
|
|
168
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# 作为 npm 依赖引入(可选):
|
|
173
|
+
pnpm add dsh-wallpaper_share
|
|
174
|
+
```
|
|
175
|
+
|
|
157
176
|
```bash
|
|
158
177
|
# 任选其一:
|
|
159
178
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
160
179
|
# 从 GitHub 安装(仓库自带预构建 lib/,不需要构建许可;main = 最新档)
|
|
161
180
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
162
181
|
# 从 npm 安装(默认 = latest 最新档)
|
|
163
|
-
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.
|
|
164
|
-
# 本地 tarball 安装(26.9.
|
|
182
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.8.tgz
|
|
183
|
+
# 本地 tarball 安装(26.9.8)
|
|
165
184
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
166
185
|
# 从 GitHub 安装 test 分支(测试档,含壁纸特效优化、页面功能更新等)
|
|
167
186
|
```
|
|
@@ -239,7 +258,7 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
239
258
|
|
|
240
259
|
## 🆕 已知问题
|
|
241
260
|
|
|
242
|
-
> 适用版本:插件 `v26.9.
|
|
261
|
+
> 适用版本:插件 `v26.9.8` / Harness `0.1.2-rc.1`。
|
|
243
262
|
|
|
244
263
|
### 兼容性(Harness 0.1.2 破坏性变更 · 已适配)
|
|
245
264
|
|