dsh-wallpaper_share 26.9.4 → 26.9.10-T
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 +120 -114
- package/README.zh-CN.md +35 -10
- package/lib/client.js +3200 -558
- package/lib/client.js.map +1 -1
- package/lib/index.js +3011 -257
- package/package.json +3 -2
- package/vendor/dwp/README.md +89 -0
- package/vendor/dwp/packages/dwp-core/package.json +14 -0
- package/vendor/dwp/packages/dwp-core/src/anim.ts +119 -0
- package/vendor/dwp/packages/dwp-core/src/bones.ts +198 -0
- package/vendor/dwp/packages/dwp-core/src/compile.ts +148 -0
- package/vendor/dwp/packages/dwp-core/src/easing.ts +55 -0
- package/vendor/dwp/packages/dwp-core/src/effects.ts +153 -0
- package/vendor/dwp/packages/dwp-core/src/errors.ts +19 -0
- package/vendor/dwp/packages/dwp-core/src/eval.ts +275 -0
- package/vendor/dwp/packages/dwp-core/src/index.ts +13 -0
- package/vendor/dwp/packages/dwp-core/src/layout.ts +87 -0
- package/vendor/dwp/packages/dwp-core/src/particles.ts +223 -0
- package/vendor/dwp/packages/dwp-core/src/pool.ts +46 -0
- package/vendor/dwp/packages/dwp-core/src/types.ts +157 -0
- package/vendor/dwp/packages/dwp-core/src/vars.ts +71 -0
- package/vendor/dwp/packages/dwp-gl/package.json +17 -0
- package/vendor/dwp/packages/dwp-gl/src/blend.ts +38 -0
- package/vendor/dwp/packages/dwp-gl/src/browser.ts +136 -0
- package/vendor/dwp/packages/dwp-gl/src/gl-types.ts +130 -0
- package/vendor/dwp/packages/dwp-gl/src/index.ts +11 -0
- package/vendor/dwp/packages/dwp-gl/src/mat3.ts +35 -0
- package/vendor/dwp/packages/dwp-gl/src/program-cache.ts +67 -0
- package/vendor/dwp/packages/dwp-gl/src/renderer.ts +334 -0
- package/vendor/dwp/packages/dwp-gl/src/shaders.ts +227 -0
- package/vendor/dwp/packages/dwp-web/package.json +18 -0
- package/vendor/dwp/packages/dwp-web/src/assets.ts +94 -0
- package/vendor/dwp/packages/dwp-web/src/canvas2d.ts +125 -0
- package/vendor/dwp/packages/dwp-web/src/clock.ts +29 -0
- package/vendor/dwp/packages/dwp-web/src/index.ts +4 -0
- package/vendor/dwp/packages/dwp-web/src/mount.ts +218 -0
package/README.md
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
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.10-T" src="https://img.shields.io/badge/v26.9.10--T-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
|
|
|
14
14
|
<div align="center">
|
|
15
|
-
🌏 <a href="#中文"><b>中文</b></a> · <a href="#english">English</a> ·
|
|
15
|
+
🌏 <a href="#中文"><b>中文</b></a> · <a href="#english">English</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
|
-
把 Wallpaper Engine
|
|
19
|
+
把 Wallpaper Engine 的壁纸同步为 DeepSeek Harness Web 界面的背景,并支持调整渲染模式、视觉效果、专注模式与壁纸库外挂壁纸与直链应用下载。
|
|
24
20
|
|
|
25
|
-
> **纯显示同步**:只读取 WE 状态,不控制 /
|
|
21
|
+
> **纯显示同步**:只读取 WE 状态,不控制 / 不修改桌面壁纸。
|
|
26
22
|
> **无敏感信息**:代码不含 Steam 用户名 / SteamID / 令牌;WE 安装目录运行时自动检测(注册表 `HKCU\Software\WallpaperEngine\installPath` → 常见 Steam 路径),检测不到时才需要手动配置。眼动追踪全程本地推理,摄像头画面不出设备。
|
|
27
23
|
|
|
28
24
|
---
|
|
@@ -34,7 +30,6 @@
|
|
|
34
30
|
|
|
35
31
|
- [⚡ 30 秒上手](#-30-秒上手)
|
|
36
32
|
- [✨ 功能一览](#-功能一览)
|
|
37
|
-
- [🧭 面板导览](#-面板导览)
|
|
38
33
|
- [🎨 渲染模式与兼容矩阵](#-渲染模式与兼容矩阵)
|
|
39
34
|
- [🖼️ Scene 渲染与回退](#-scene-渲染与回退)
|
|
40
35
|
- [🔍 专注模式与眼动追踪](#-专注模式与眼动追踪)
|
|
@@ -61,37 +56,36 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
61
56
|
|
|
62
57
|
需要 WE 正在运行且已应用壁纸;否则背景留空、面板显示"尚未应用壁纸"。诊断入口:`http://127.0.0.1:3080/we-sync/diag`(仅本机可访问;端口以启动日志为准,默认 3080)。
|
|
63
58
|
|
|
59
|
+
> **零配置**:无需 API Key、无需注册、无需任何额外配置,安装即用。(注意:开头「无敏感信息」是隐私声明——代码中不含 Steam 用户名 / 令牌,并非需要你提供这些信息。)
|
|
60
|
+
|
|
64
61
|
## ✨ 功能一览
|
|
65
62
|
|
|
66
|
-
- **实时同步**:在 WE
|
|
67
|
-
|
|
68
|
-
- **三档渲染模式**:预览 / 捕获 / 完整,详见 [渲染模式与兼容矩阵](#-渲染模式与兼容矩阵)
|
|
69
|
-
- **原生 scene 捕获渲染器**:随包内置 Rust 编写的 `we-capture.exe`,用 Windows Graphics Capture 抓取 WE 正在渲染的桌面,镜像 WE 自身输出 → GLSL / SceneScript / 关键帧 / 粒子等**所有 WE 效果天然全覆盖**
|
|
70
|
-
- **专注模式**:叠加一个圆心清晰、圆外模糊的阅读窗;默认跟随鼠标,开专注即生效
|
|
71
|
-
- **眼动追踪(实验)**:可选,用摄像头推断注视点让透镜跟随视线;9 点校准、文字吸附、抗抖动
|
|
72
|
-
- **壁纸库 · 本地 / 市场**:按**本地**与**市场**两大分类浏览。本地一栏管理已装内容——`dwp壁纸`(点击即挂载为全局背景,已挂载再点取消)与 `we 应用`(点击打开所在文件夹),带标题搜索、缩略图与计数;市场一栏浏览 `dwp-registry` 目录,支持名称 / 作者搜索、标签筛选与**安装 / 更新 / 卸载**
|
|
73
|
-
- **DWP 壁纸与全局背景渲染**:`dwp/1.0` 协议包(纯文本 / solid / 粒子 / mesh 图层 + 12 种混合模式 + 3 种动画 + 11 种效果,确定性渲染);挂载后经 WebGL2 真实渲染为 DSH 全局背景(低配 Canvas2D 降级),同时暂停 WE 同步避免冲突,刷新后自动恢复
|
|
74
|
-
- **沉浸模式**:一键隐去会话头部、正文与输入栏,让壁纸独占视野;网页 / 应用类壁纸在沉浸下可直接鼠标交互(详见[沉浸模式](#-沉浸模式与任务指示))
|
|
75
|
-
- **视觉效果**:面板透明度 0–100% / 背景模糊 0–30px / 阴影深度 0–100%,即时生效
|
|
76
|
-
- **后台任务可视化**:收纳侧边栏时,用圆形指示感知任务进度(绿 = 空闲 / 蓝 = 进行中 / 黄 = 等待授权)
|
|
77
|
-
- **同步开关**:一键启停;挂载 DWP 壁纸期间显示「同步暂停(DWP)」第三态
|
|
78
|
-
- **设置持久化**:同步开关、渲染模式、显示器锁、三档渲染模式、专注 / 眼动等偏好写入 `localStorage`(键 `we-sync.settings`),刷新或重启 DSH 后自动恢复;沉浸模式等临时视图态与任务状态一律不落盘
|
|
79
|
-
- **自诊断路由** `/we-sync/diag`(仅本机可访问,含 scene renderer 状态与纹理提取结果)
|
|
63
|
+
- **实时同步**:在 WE 切换壁纸后,harness页面背景会自动跟随为最新变化的壁纸,复数显示器时可手动锁定某台作为背景来源。支持三档渲染模式以调节能效表现:详见 [渲染模式与兼容矩阵](#-渲染模式与兼容矩阵)
|
|
64
|
+
<img width="1917" height="1018" alt="image" src="https://github.com/user-attachments/assets/6f147644-6283-456b-a9eb-c9c6d9925079" />
|
|
80
65
|
|
|
81
|
-
|
|
66
|
+
- **侧边栏沉浸模式**:一键隐去会话头部、正文与输入栏,让壁纸独占视野;网页 / 应用类壁纸在沉浸下可直接鼠标交互(详见[沉浸模式](#-沉浸模式与任务指示))
|
|
82
67
|
|
|
83
|
-
|
|
68
|
+
- **专注模式**:叠加一个圆心清晰、圆外模糊的阅读窗,以专注于任务,提升文字可读性;默认跟随鼠标,也可用摄像头推断注视点让透镜跟随视线;9 点校准、文字吸附、抗抖动
|
|
69
|
+
<img width="426" height="240" alt="Video Project 29" src="https://github.com/user-attachments/assets/57daf64c-ff2b-40c7-aeef-73cac46c4c2b" />
|
|
70
|
+
|
|
71
|
+
- **壁纸库**:按**本地**/**市场**/**应用启动器**分类。本地一栏管理已装内容——`dwp壁纸`(点击即挂载为全局背景,已挂载再点取消)与 `应用`(**大类**,下分 `we应用` 与 `应用`;点击卡片即启动,每次启动弹确认),带标题搜索、缩略图与计数;搜索框右侧的**「管理」**开关进入管理模式:卡片整体轻微晃动,**点卡片即多选**(选中项停住晃动、背景转蓝并打勾),选择条给出「已选 N / 卸载选中 / 清空选择」,可跨 `dwp壁纸` 与 `应用` 一次选完再统一卸载(确认弹层列出全部将被删除的项);每张卡仍保留「打开源文件 / 卸载」单项操作,dwp 的「打开源文件」会在资源管理器里定位包文件——**卸载只对 dwp 壁纸与启动器装的应用开放**,WE 工坊内容点了只给提示、不参与多选(绝不删 Steam 内容);市场一栏浏览 `dwp-registry` 目录,支持名称 / 作者搜索、标签筛选与安装 / 更新 / 卸载;**应用启动器**:支持用户粘贴 `http(s)` 直链(`.zip`/`.7z`/`.exe`,**加密压缩包填解压密码**)或部分**云盘分享链接**(如`yun.139.com/shareweb/#/w/i/…`,提取码填在密码框),唤醒DSH 自动下载,解包并封装成**类 app 格式**(自动生成 `project.json` + 预览图卡片)入库;卡片只留「详细」按钮(安装时间 / 地址 / exe 文件,另含来源、SHA512、更新预览与多入口切换)——启动与卸载统一到「本地 → 应用」里做。不依赖 WE 运行、不受新版 WE 取消应用类壁纸影响。、
|
|
72
|
+
<img width="737" height="675" alt="image" src="https://github.com/user-attachments/assets/7567c226-7ea4-4fcb-a3b7-11190ee681ff" />
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
-**设置页面介绍↓**
|
|
84
76
|
|
|
85
77
|
| 卡片 | 内容 |
|
|
86
78
|
| --- | --- |
|
|
87
|
-
| **壁纸状态** |
|
|
79
|
+
| **壁纸状态** | 壁纸名(标题行**右缘为插件版本号**,点击直达 GitHub 仓库);下方副标题只承载诊断信息——scene 壁纸显示当前渲染通路(`场景 · 预览图 / 捕获 live 30fps / 浏览器模型渲染 / 回退:<原因>`),未应用壁纸时显示引导文案,其余类型整行不占;多显示器时出现「背景显示器」下拉;`⏻ 同步开启 / 关闭 / 暂停(DWP)` 三态按钮 |
|
|
88
80
|
| **视觉效果** | 三档渲染模式分段按钮;「专注模式」及其展开条(眼动追踪 / 校准视线 / 文字吸附 / 实时状态);透明度 · 模糊 · 阴影三个滑块(**专注开启时滑块隐藏**,改由任务态与透镜接管) |
|
|
89
|
-
| **壁纸库** | 「壁纸读取位置」可添加自定义壁纸目录(指向单个壁纸目录或集合文件夹);「本地 / 市场」两栏切换,本地按 `dwp壁纸` / `we 应用` 筛选 + 标题搜索 + 分页(显示更多 +60),市场支持安装 / 更新 / 卸载 |
|
|
90
81
|
|
|
91
|
-
|
|
82
|
+
<img width="841" height="667" alt="image" src="https://github.com/user-attachments/assets/7d652c07-8344-4de3-abbd-75620375c0b6" />
|
|
92
83
|
|
|
93
|
-
|
|
94
|
-
-
|
|
84
|
+
其他功能:
|
|
85
|
+
- **工作区脉搏(内置 DWP)**:新内置动态壁纸 `workspace-pulse`——把**当前工作区近期改动的文件**以最多 3 个浮动气泡呈现在背景上,右上角绿 `+` / 红 `−` 徽章标示该文件体积在增加还是减少(含新增 / 删除)。不依赖 git(未保存、二进制文件也能捕获);点击挂载后实时更新,空闲时显示呼吸提示。首次启动自动入库,出现在 壁纸库→本地→dwp壁纸
|
|
86
|
+
- **DWP 壁纸与全局背景渲染**:`dwp/1.0` 协议包(纯文本 / solid / 粒子 / mesh 图层 + 12 种混合模式 + 3 种动画 + 11 种效果,确定性渲染);挂载后经 WebGL2 真实渲染为 DSH 全局背景(低配 Canvas2D 降级),同时暂停 WE 同步避免冲突,刷新后自动恢复
|
|
87
|
+
- **设置持久化**:同步开关、渲染模式、显示器锁、三档渲染模式、专注 / 眼动等偏好写入 `localStorage`(键 `we-sync.settings`),刷新或重启 DSH 后自动恢复;沉浸模式等临时视图态与任务状态一律不落盘
|
|
88
|
+
- **自诊断路由** `/we-sync/diag`(仅本机可访问,含 scene renderer 状态与纹理提取结果)
|
|
95
89
|
|
|
96
90
|
## 🎨 渲染模式与兼容矩阵
|
|
97
91
|
|
|
@@ -122,11 +116,13 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
122
116
|
3. **静态纹理**:提取 pkg 内嵌高清纹理垫底。
|
|
123
117
|
4. **预览图**:以上皆不可用 → WE 预览图。
|
|
124
118
|
|
|
125
|
-
|
|
119
|
+
当前走的是哪一层,直接显示在面板副标题上;更细的状态在 `/we-sync/diag`。
|
|
126
120
|
|
|
127
121
|
**原生捕获器原理**: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
122
|
|
|
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)**。
|
|
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)**、**[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**。
|
|
124
|
+
|
|
125
|
+
**骨骼动画(完整档)**:puppet 部件按 MDLS 绑定 + MDLA 逐骨骼动画做全骨骼链乘蒙皮,`animationlayers` 多层合成(普通层 mix / additive 层以自身帧 0 为参考 / rate 倍速 / 30fps),MDAT 具名锚点(含中文名)跟随骨骼最终世界位姿。26.9.8 定案 MDLA0006 连续流布局(骨骼窗口跨段延伸、每骨骼 +2 浮点漂移、fc+1 行含闭合行),并钳制末骨越界帧——修复人物每循环抽动一次与蒙皮异常形变(如 3465215190);58 个本地 MDL 端到端校验(帧0≈bind + 闭环平滑度)全部通过。
|
|
130
126
|
|
|
131
127
|
## 🔍 专注模式与眼动追踪
|
|
132
128
|
|
|
@@ -156,20 +152,36 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
156
152
|
| 档位 | 适合谁 | 安装命令 |
|
|
157
153
|
| --- | --- | --- |
|
|
158
154
|
| 🟢 **小白** | 不纠结版本,直接拉当前主流 Harness 环境的推荐版 | `dsh plugin --profile web add dsh-wallpaper_share` |
|
|
159
|
-
| 🔵 **rc(稳定版本)** | 适配 harness 为 rc 架构的推荐版本,新功能适配较慢 | `dsh plugin --profile web add dsh-wallpaper_share@
|
|
160
|
-
| 🟣 **alpha(新版本)** | 适配 harness 为 alpha 架构的推荐版本 | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
155
|
+
| 🔵 **rc(稳定版本)** | 适配 harness 为 rc 架构的推荐版本,新功能适配较慢 | `dsh plugin --profile web add dsh-wallpaper_share@rc010` |
|
|
161
156
|
| 🟡 **test(测试版本)** | 用于测试的版本,可能有未完成功能 | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
162
157
|
|
|
158
|
+
> 当前测试版:**`26.9.10-T`**(GitHub `test` 分支 / npm `test` dist-tag)。本版新增:壁纸库「管理」多选批量卸载、应用启动器卡片化简为「详细」、面板三页滚动(含占位的「dwp创作」)、宿主输入框按页显隐、**DWP 时钟变量**与**纹理分档**(预览/捕获用低清、增强/完整用高清)。
|
|
159
|
+
|
|
160
|
+
### 🔧 其他安装方式
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 从 Git 克隆(仓库自带预构建 lib/,克隆后无需构建):
|
|
164
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
165
|
+
cd dsh-wallpaper_share
|
|
166
|
+
pnpm pack # 打包为 dsh-wallpaper_share-<version>.tgz
|
|
167
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# 作为 npm 依赖引入(可选):
|
|
172
|
+
pnpm add dsh-wallpaper_share
|
|
173
|
+
```
|
|
174
|
+
|
|
163
175
|
```bash
|
|
164
176
|
# 任选其一:
|
|
165
177
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
166
178
|
# 从 GitHub 安装(仓库自带预构建 lib/,不需要构建许可;main = 最新档)
|
|
167
179
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
168
180
|
# 从 npm 安装(默认 = latest 最新档)
|
|
169
|
-
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.
|
|
170
|
-
# 本地 tarball 安装(26.9.
|
|
181
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.10-T.tgz
|
|
182
|
+
# 本地 tarball 安装(26.9.10-T)
|
|
171
183
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
172
|
-
# 从 GitHub 安装 test
|
|
184
|
+
# 从 GitHub 安装 test 分支(测试档,当前即 26.9.10-T:管理多选卸载 / 三页滚动 / DWP 纹理分档等)
|
|
173
185
|
```
|
|
174
186
|
|
|
175
187
|
```bash
|
|
@@ -211,6 +223,9 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
211
223
|
| `particleSizeScale` | `1` | 粒子尺寸缩放 |
|
|
212
224
|
| `effectStrengthScale` | `1` | 特效强度缩放 |
|
|
213
225
|
| `puppetMeshRender` | `true` | puppet 网格渲染开关 |
|
|
226
|
+
| `workspaceDir` | `''`(= 插件进程工作目录) | 工作区脉搏的扫描根目录 |
|
|
227
|
+
| `workspacePulseWindowMs` | `90000` | 工作区脉搏改动保留窗口(更早的改动从气泡流淘汰) |
|
|
228
|
+
| `workspacePulseAutoInstall` | `true` | 工作区脉搏内置包自动入库(卸载后重启会重装) |
|
|
214
229
|
|
|
215
230
|
> 面板里的三档切换(预览 / 捕获 / 完整)是运行时 UI 设置,与上面的 `sceneRenderMode`(后端浏览器 / 外部 renderer 选择)不同。
|
|
216
231
|
|
|
@@ -234,7 +249,9 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
234
249
|
|
|
235
250
|
- `src/index.ts` — Node 半:WE 状态轮询、HTTP 路由、scene renderer 子进程管理、壁纸库扫描
|
|
236
251
|
- `src/scene/` — SceneAdapter 模块(协议 / 能力探测 / renderer 进程 / WebSocket / 回退 / PKGV0001 解析 / SceneModel 图层模型 / .tex 解码 / puppet mdl 解析)
|
|
237
|
-
- `src/client/` — 浏览器半(主题覆盖 / 背景层 / SceneCanvas / SceneModelRenderer 子集渲染器 / ParticleRuntime / GazeLens 眼动 / 专注透镜 / 沉浸模式 / wallpaper_share
|
|
252
|
+
- `src/client/` — 浏览器半(主题覆盖 / 背景层 / SceneCanvas / SceneModelRenderer 子集渲染器 / ParticleRuntime / GazeLens 眼动 / 专注透镜 / 沉浸模式 / wallpaper_share 面板 / library-model.ts 壁纸库分类与详情格式化)
|
|
253
|
+
- `src/workspace/` — 工作区脉搏(文件系统快照差分 + 内置 DWP 组包器;`_dev/make-workspace-pulse.mjs` 为手动打包脚本)
|
|
254
|
+
- `src/daynight/` — 「DeepSeek 日夜」组包器(两张全画布 PNG + `$night_alpha` 分层;`_dev/make-daynight-dwp.mjs` 打包并装入本地市场,`_dev/verify-daynight-dwp.mjs` 静态校验 + 昼夜链路自检)
|
|
238
255
|
- `native/we-capture/` — Rust 原生捕获器源码(Windows Graphics Capture → JPEG)
|
|
239
256
|
- `bin/we-capture.exe` — 随包发布的原生捕获器(Windows-only)
|
|
240
257
|
- `docs/` — 格式规范与技术文档(`scene-format.md` / `scene-fallback.md` / `tex-format-findings.md` / `mdl-skinning-findings.md`)
|
|
@@ -245,28 +262,11 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
245
262
|
|
|
246
263
|
## 🆕 已知问题
|
|
247
264
|
|
|
248
|
-
> 适用版本:插件 `v26.9.4` / Harness `0.1.2-rc.1`。
|
|
249
|
-
|
|
250
|
-
### 兼容性(Harness 0.1.2 破坏性变更 · 已适配)
|
|
251
|
-
|
|
252
|
-
`0.1.2-alpha.2` 曾打破的四项已在 `v26.9.4` 修复,并已对照 `0.1.2-rc.1` 的宿主实现核对:
|
|
253
|
-
|
|
254
|
-
- **新建会话**:`workspaces.startSession` 已移除,改走 `ctx.get('uiWorkspace')?.startSession()`,老宿主回退 `workspaces`。
|
|
255
|
-
- **orb 任务色**:`sessions` 改由 `ctx.inject(['sessions'], …)` 等宿主提供后再订阅,不再因 apply 期取空而卡在空闲绿。
|
|
256
|
-
- **沉浸模式**:会话头部按 `[data-slot="conversation.session.header"]` 命中(插槽渲染多包了一层,旧的 `[data-phase] > header` 静默失配),正文与输入栏按 `[data-conversation-scroll]` 一并隐藏。
|
|
257
|
-
- **⏻ 字形**:`.wesync-btn` 字体栈在宿主 `--dsw-font-family` 之后补 `'Segoe UI Symbol'` / `'Segoe UI Emoji'`,中英文仍走宿主字体,只有 U+23FB 落到符号字体。
|
|
258
|
-
|
|
259
|
-
服务查找一律改为"用到时再取",`0.1.0-rc.6` ~ `0.1.2-alpha.1` 的行为不受影响。
|
|
260
|
-
|
|
261
265
|
### 环境限制
|
|
262
266
|
|
|
263
267
|
- **预览图不显示**:市场卡片缩略图指向 `raw.githubusercontent.com`,当前环境不可达。图片加载失败后 `onError` 隐藏显示。
|
|
264
268
|
- **WE 安装目录不存在**:自动检测到目录但不存在时壁纸同步不可用(市场功能不受影响),可在 `CONFIG.wallpaperEngineDir` 手动指定。
|
|
265
269
|
|
|
266
|
-
### 构建与维护(不影响已发布包)
|
|
267
|
-
|
|
268
|
-
- **`dwp-runtime-web/` 未纳入版本控制**:DWP 渲染运行时(`@dwp/web`)通过 `tsdown` 的本地路径 alias 在构建时内联进 `lib/client.js`,而该目录被 `.gitignore` 忽略、也不是 npm 依赖。**终端用户从 GitHub / npm 装的是已内联的预构建 `lib/`,不受影响、DWP 正常可用**;但**干净 clone 后 `pnpm build` 会因缺该目录而构建失败或静默产出坏包**——即"重新构建"目前只在存有 `dwp-runtime-web/` 的机器上可复现。计划:多人维护 / 上 CI 前,将其纳入 pnpm workspace 或改为 git-tag 依赖,并把 alias 兜底改为"缺目录即报错"。
|
|
269
|
-
|
|
270
270
|
## 📄 License
|
|
271
271
|
|
|
272
272
|
GPL-3.0
|
|
@@ -280,7 +280,6 @@ GPL-3.0
|
|
|
280
280
|
|
|
281
281
|
- [⚡ Quick Start](#-quick-start)
|
|
282
282
|
- [✨ Features](#-features)
|
|
283
|
-
- [🧭 Panel Tour](#-panel-tour)
|
|
284
283
|
- [🎨 Render Modes & Compatibility Matrix](#-render-modes--compatibility-matrix)
|
|
285
284
|
- [🖼️ Scene Rendering & Fallback](#-scene-rendering--fallback)
|
|
286
285
|
- [🔍 Focus Mode & Eye Tracking](#-focus-mode--eye-tracking)
|
|
@@ -292,57 +291,58 @@ GPL-3.0
|
|
|
292
291
|
- [🆕 Known Issues](#-known-issues)
|
|
293
292
|
- [📄 License](#-license-1)
|
|
294
293
|
|
|
295
|
-
Syncs the wallpaper Wallpaper Engine is currently showing into the DeepSeek Harness Web UI background,
|
|
294
|
+
Syncs the wallpaper Wallpaper Engine is currently showing into the DeepSeek Harness Web UI background, and supports tuning render mode, visual effects, focus mode, plus external wallpapers for the library and direct-link app downloads.
|
|
296
295
|
|
|
297
|
-
> **Display-only sync**: it only reads WE state; it never controls or changes your desktop wallpaper
|
|
296
|
+
> **Display-only sync**: it only reads WE state; it never controls or changes your desktop wallpaper.
|
|
298
297
|
> **No sensitive data**: the code contains no Steam username / SteamID / token; the WE install dir is auto-detected at runtime (registry `HKCU\Software\WallpaperEngine\installPath` → common Steam paths), manual config only if detection fails. Eye tracking runs fully locally — camera frames never leave the device.
|
|
299
298
|
|
|
300
299
|
## ⚡ Quick Start
|
|
301
300
|
|
|
302
301
|
```bash
|
|
303
|
-
dsh plugin --profile web add dsh-wallpaper_share # or pick a tier below
|
|
302
|
+
dsh plugin --profile web add dsh-wallpaper_share # or pick a tier in "Installation" below
|
|
304
303
|
# restart dsh (web profile), then open http://127.0.0.1:3080
|
|
305
304
|
```
|
|
306
305
|
|
|
307
306
|
You get three things:
|
|
308
307
|
|
|
309
|
-
1. the **page background** becomes WE's current wallpaper (follows switches within ~2s), with
|
|
308
|
+
1. the **page background** becomes WE's current wallpaper (follows switches within ~2s), with panels and cards floating on top;
|
|
310
309
|
2. a **`wallpaper_share` tab** above the conversation (next to Chat and Trajectory) holding every toggle;
|
|
311
|
-
3. a round status light on the left edge **when the sidebar is collapsed** — it
|
|
310
|
+
3. a round status light on the left edge **when the sidebar is collapsed** (green / blue / yellow) — click it to enter immersive mode.
|
|
311
|
+
|
|
312
|
+
WE must be running with a wallpaper applied; otherwise the background stays empty and the panel shows "no wallpaper applied". Diagnostics: `http://127.0.0.1:3080/we-sync/diag` (localhost only; use the port printed at startup — 3080 by default).
|
|
312
313
|
|
|
313
|
-
|
|
314
|
+
> **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.)
|
|
314
315
|
|
|
315
316
|
## ✨ Features
|
|
316
317
|
|
|
317
|
-
- **Real-time sync**: the page background follows
|
|
318
|
-
|
|
319
|
-
- **3 render modes**: Preview / Capture / Full — see the [matrix](#-render-modes--compatibility-matrix)
|
|
320
|
-
- **Native scene capture renderer**: bundled Rust `we-capture.exe` uses Windows Graphics Capture to grab WE's rendered desktop, mirroring WE's own output → GLSL / SceneScript / keyframes / particles **all covered natively**
|
|
321
|
-
- **Focus mode**: a center-clear, edge-blurred reading window; follows the mouse by default
|
|
322
|
-
- **Eye tracking (experimental)**: optional; uses the webcam to follow your gaze; 9-point calibration, text-line snap, anti-jitter
|
|
323
|
-
- **Wallpaper library · Local / Market**: Local manages what's installed — `dwp` packages (click to mount as the global background, click again to unmount) and `we apps` (click to open their folder), with title search, thumbnails and counts; Market browses the `dwp-registry` catalog with name / author search, tag filters and **install / update / uninstall**
|
|
324
|
-
- **DWP wallpapers & global-background rendering**: `dwp/1.0` protocol packages (text / solid / particle / mesh layers + 12 blend modes + 3 animations + 11 effects, deterministic rendering); mounting renders them as the DSH global background via WebGL2 (Canvas2D fallback on weak GPUs) while pausing WE sync to avoid conflicts, auto-restored after a refresh
|
|
325
|
-
- **Immersive mode**: one click hides the session header, transcript and composer so the wallpaper owns the screen; web / app wallpapers become directly interactive underneath (see [Immersive mode](#-immersive-mode--task-indicator))
|
|
326
|
-
- **Visual sliders**: panel opacity 0–100% / background blur 0–30px / shadow depth 0–100%, live
|
|
327
|
-
- **Background task indicator**: a circular cue when the sidebar is collapsed (green idle / blue running / yellow awaiting approval)
|
|
328
|
-
- **Sync toggle**: one-click on/off, with a third "paused (DWP)" state while a DWP is mounted
|
|
329
|
-
- **Settings persistence**: sync, render mode, monitor lock, focus / eye-tracking preferences go to `localStorage` (key `we-sync.settings`) and restore after a refresh or restart; transient view state (immersive) and task flags never do
|
|
330
|
-
- **Self-diagnostic route** `/we-sync/diag` (localhost only; scene renderer status & texture extraction results)
|
|
318
|
+
- **Real-time sync**: after you switch wallpapers in WE, the harness page background follows the latest changed wallpaper automatically; with multiple monitors you can lock one as the background source. Three render modes are available to tune power draw — see [Render Modes & Compatibility Matrix](#-render-modes--compatibility-matrix)
|
|
319
|
+
<img width="1917" height="1018" alt="image" src="https://github.com/user-attachments/assets/6f147644-6283-456b-a9eb-c9c6d9925079" />
|
|
331
320
|
|
|
332
|
-
|
|
321
|
+
- **Sidebar immersive mode**: one click hides the session header, transcript and composer so the wallpaper owns the view; web / app wallpapers become directly mouse-interactive under immersion (see [Immersive Mode](#-immersive-mode--task-indicator))
|
|
333
322
|
|
|
334
|
-
|
|
323
|
+
- **Focus mode**: overlays a center-clear, edge-blurred reading window on the wallpaper to focus on the task and improve text readability; follows the mouse by default, or uses the webcam to infer the gaze point so the lens follows your eyes; 9-point calibration, text-line snap, anti-jitter
|
|
324
|
+
<img width="426" height="240" alt="Video Project 29" src="https://github.com/user-attachments/assets/57daf64c-ff2b-40c7-aeef-73cac46c4c2b" />
|
|
325
|
+
|
|
326
|
+
- **Wallpaper library**: grouped into **Local** / **Market** / **App Launcher**. Local manages what's installed — `dwp wallpapers` (click to mount as the global background, click again to unmount) and `apps` (a top category split into `WE app` and `App`; click a card to launch, with a confirm dialog each time), with title search, thumbnails and counts; the **Manage** toggle next to the search box puts the cards into an edit state — they jiggle, **clicking a card multi-selects it** (selected cards stop jiggling, turn blue and get a check mark), and the selection bar offers "selected N / uninstall selected / clear" so you can pick across `dwp wallpapers` and `apps` and uninstall them in one go (the confirm dialog lists everything that will be deleted); each card also keeps a per-item "open source file / uninstall" row — **uninstall is only offered for DWP wallpapers and launcher-installed apps**, WE Workshop content just shows a hint and cannot be selected (Steam content is never deleted); Market browses the `dwp-registry` catalog with name / author search, tag filters and **install / update / uninstall**; **App Launcher** only installs: it accepts pasted `http(s)` direct links (`.zip` / `.7z` / `.exe`, **fill the archive password for encrypted archives**) or some **cloud-drive share links** (e.g. `yun.139.com/shareweb/#/w/i/…`, passcode in the password field), wakes DSH to download automatically, unpacks and wraps them into **WE-app-style entries** (auto-generated `project.json` + preview card) in the library; each card keeps a "Details" button (install time / location / executable, plus source, SHA512, update preview and entry switching) — launching and uninstalling happen in Local → Apps. It does not require WE to run and is unaffected by newer WE versions dropping application wallpapers.
|
|
327
|
+
<img width="737" height="675" alt="image" src="https://github.com/user-attachments/assets/7567c226-7ea4-4fcb-a3b7-11190ee681ff" />
|
|
328
|
+
|
|
329
|
+
**Settings page↓**
|
|
335
330
|
|
|
336
331
|
| Card | Contents |
|
|
337
332
|
| --- | --- |
|
|
338
|
-
| **Wallpaper status** | Wallpaper name
|
|
339
|
-
| **Visual effects** | The 3-mode segmented control; the focus-mode button with its flyout (eye tracking /
|
|
340
|
-
|
|
333
|
+
| **Wallpaper status** | Wallpaper name (the **plugin version sits at the right edge of the title row** and links to the GitHub repo); the subtitle below carries diagnostics only — for scene wallpapers it shows the active render path (`Scene · preview image / capture live 30fps / browser model render / fallback: <reason>`), a hint when no wallpaper is applied, and takes no row at all for other types; a "background monitor" dropdown appears with multiple monitors; the `⏻` button has three states — sync on / off / paused (DWP) |
|
|
334
|
+
| **Visual effects** | The 3-mode segmented control; the focus-mode button with its flyout (eye tracking / calibrate gaze / text-line snap / live status); opacity · blur · shadow sliders (**hidden while focus mode is on** — task state and the lens take over) |
|
|
335
|
+
|
|
336
|
+
<img width="841" height="667" alt="image" src="https://github.com/user-attachments/assets/7d652c07-8344-4de3-abbd-75620375c0b6" />
|
|
341
337
|
|
|
342
|
-
|
|
338
|
+
Other features:
|
|
343
339
|
|
|
344
|
-
- **
|
|
345
|
-
-
|
|
340
|
+
- **Workspace Pulse (built-in DWP)**: a new built-in dynamic wallpaper `workspace-pulse` — shows **recently changed files in your workspace** as up to 3 floating bubbles on the background, each with a green `+` / red `−` badge at its top-right marking whether the file is growing or shrinking (covers additions / deletions too). No git dependency (unsaved and binary files are caught as well); updates live once mounted, with a breathing hint when idle. Auto-installed into the library on first startup — see Wallpaper library → Local → dwp wallpapers
|
|
341
|
+
- **DWP wallpapers & global-background rendering**: `dwp/1.0` protocol packages (text / solid / particle / mesh layers + 12 blend modes + 3 animations + 11 effects, deterministic rendering); mounting renders them as the DSH global background via WebGL2 (Canvas2D fallback on weak GPUs) while pausing WE sync to avoid conflicts, auto-restored after a refresh
|
|
342
|
+
- **DWP clock variables (a generic capability for wallpaper authors)**: every 2.5s the plugin feeds `hour` / `night_alpha` / `night_on` / `day_on` into **whatever scene is mounted** (`Handle.setParams` overwrites key by key, so it never clashes with the built-in Workspace Pulse variables); declare them in `variables` and reference them — the market package **"DeepSeek Day & Night"** uses `$night_alpha` to swap in a night image from 18:00 to 06:00 and back, with a 10-minute linear crossfade at both boundaries
|
|
343
|
+
- **DWP texture tiers (one wallpaper, two resolutions)**: `hd_on` / `night_sd` / `night_hd` are fed too, and the render mode picks the tier — **Eco / Perf = low, Enhanced = high**; a package lists what only the high tier needs in the scene-level extension field `dsh.hdAssets`, and the consumer stubs those with a 1×1 placeholder in the low tier, so the high-res textures are **never fetched or decoded** there ("DeepSeek Day & Night" 1.1.0 ships 1920×1080 / 7680×4320 tiers; switching tiers remounts with the new asset set)
|
|
344
|
+
- **Settings persistence**: sync toggle, render mode, monitor lock, the three visual sliders, focus / eye-tracking preferences are written to `localStorage` (key `we-sync.settings`) and restored after a refresh or DSH restart; transient view state such as immersive mode and task flags are deliberately not persisted
|
|
345
|
+
- **Self-diagnostic route** `/we-sync/diag` (localhost only; scene renderer status & texture extraction results)
|
|
346
346
|
|
|
347
347
|
## 🎨 Render Modes & Compatibility Matrix
|
|
348
348
|
|
|
@@ -354,6 +354,8 @@ The segmented control at the top of the panel decides how the wallpaper is prese
|
|
|
354
354
|
| **Capture** (perf) | Capture WE desktop | scene uses the **native `we-capture.exe`**, mirroring WE's own rendered desktop → full effect coverage; falls back to browser rendering when WE isn't running |
|
|
355
355
|
| **Full** (enhanced) | Browser pkg render | scene uses the **browser subset renderer**, parsing `.pkg` and redrawing in-browser, independent of WE |
|
|
356
356
|
|
|
357
|
+
The matrix per wallpaper type (the three modes only truly differ for **scene**; for video / web / image, Capture and Full behave the same and both load the source):
|
|
358
|
+
|
|
357
359
|
| Type | Preview | Capture | Full |
|
|
358
360
|
| --- | --- | --- | --- |
|
|
359
361
|
| `video` | static preview | plays source video (HTTP Range, seekable) | plays source video |
|
|
@@ -362,8 +364,6 @@ The segmented control at the top of the panel decides how the wallpaper is prese
|
|
|
362
364
|
| `scene` | static preview | **native WE desktop capture** (full coverage; falls back to browser when WE not running) | **browser pkg render** (WE-independent, subset) |
|
|
363
365
|
| `application` / `other` | static preview | static preview (viewable in the library) | static preview |
|
|
364
366
|
|
|
365
|
-
The three modes only truly differ for **scene**; for video / web / image, Capture and Full both load the source.
|
|
366
|
-
|
|
367
367
|
## 🖼️ Scene Rendering & Fallback
|
|
368
368
|
|
|
369
369
|
Priority and fallback chain for scene wallpapers under Capture / Full:
|
|
@@ -373,11 +373,13 @@ Priority and fallback chain for scene wallpapers under Capture / Full:
|
|
|
373
373
|
3. **Static textures**: extracted pkg textures as a base layer.
|
|
374
374
|
4. **Preview image**: if none of the above → WE preview.
|
|
375
375
|
|
|
376
|
-
Which layer is live is shown in the panel subtitle
|
|
376
|
+
Which layer is live is shown in the panel subtitle; finer state lives in `/we-sync/diag`.
|
|
377
377
|
|
|
378
378
|
**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
379
|
|
|
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)**.
|
|
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)**, **[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**.
|
|
381
|
+
|
|
382
|
+
**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
383
|
|
|
382
384
|
## 🔍 Focus Mode & Eye Tracking
|
|
383
385
|
|
|
@@ -406,21 +408,37 @@ When the sidebar is **collapsed**, a 34px round light appears on the left edge (
|
|
|
406
408
|
|
|
407
409
|
| Tier | Who it's for | Install command |
|
|
408
410
|
| --- | --- | --- |
|
|
409
|
-
| 🟢 **Beginner
|
|
410
|
-
| 🔵 **rc (stable)** | Recommended build for a Harness on the rc architecture; new features are adapted more slowly | `dsh plugin --profile web add dsh-wallpaper_share@
|
|
411
|
-
| 🟣 **alpha (new)** | Recommended build for a Harness on the alpha architecture | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
411
|
+
| 🟢 **Beginner** | Don't fuss over versions — just grab the recommended build for the current mainstream Harness | `dsh plugin --profile web add dsh-wallpaper_share` |
|
|
412
|
+
| 🔵 **rc (stable)** | Recommended build for a Harness on the rc architecture; new features are adapted more slowly | `dsh plugin --profile web add dsh-wallpaper_share@rc010` |
|
|
412
413
|
| 🟡 **test (testing)** | For testing only; may contain unfinished features | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
413
414
|
|
|
415
|
+
> Current test build: **`26.9.10-T`** (GitHub `test` branch / npm `test` dist-tag). New in this build: library "Manage" multi-select bulk uninstall, launcher cards reduced to a "Details" button, a third scrolling page (a placeholder "DWP Studio"), the host composer hidden per page, plus **DWP clock variables** and **texture tiers** (Eco/Perf = low-res, Enhanced = high-res).
|
|
416
|
+
|
|
417
|
+
### 🔧 Other install methods
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
# From a Git clone (repo ships prebuilt lib/, no build needed):
|
|
421
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
422
|
+
cd dsh-wallpaper_share
|
|
423
|
+
pnpm pack # → dsh-wallpaper_share-<version>.tgz
|
|
424
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
```bash
|
|
428
|
+
# As an npm dependency (optional):
|
|
429
|
+
pnpm add dsh-wallpaper_share
|
|
430
|
+
```
|
|
431
|
+
|
|
414
432
|
```bash
|
|
415
433
|
# pick one:
|
|
416
434
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
417
435
|
# install from GitHub (repo ships prebuilt lib/, no build permission needed; main = latest tier)
|
|
418
436
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
419
437
|
# 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.
|
|
438
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.10-T.tgz
|
|
439
|
+
# install from a local tarball (26.9.10-T)
|
|
422
440
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
423
|
-
# install the test branch (test tier,
|
|
441
|
+
# install the test branch from GitHub (test tier — currently 26.9.10-T: multi-select uninstall, three-page scroll, DWP texture tiers, …)
|
|
424
442
|
```
|
|
425
443
|
|
|
426
444
|
```bash
|
|
@@ -462,6 +480,9 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
462
480
|
| `particleSizeScale` | `1` | particle size scale |
|
|
463
481
|
| `effectStrengthScale` | `1` | effect strength scale |
|
|
464
482
|
| `puppetMeshRender` | `true` | puppet mesh rendering toggle |
|
|
483
|
+
| `workspaceDir` | `''` (= plugin process cwd) | workspace root scanned by Workspace Pulse |
|
|
484
|
+
| `workspacePulseWindowMs` | `90000` | Workspace Pulse retention window (older changes drop out of the bubbles) |
|
|
485
|
+
| `workspacePulseAutoInstall` | `true` | auto-install the built-in Workspace Pulse package into the library (reinstalled after uninstall + restart) |
|
|
465
486
|
|
|
466
487
|
> The panel's 3-mode switch (Preview / Capture / Full) is a runtime UI setting, distinct from `sceneRenderMode` (backend browser / external selection).
|
|
467
488
|
|
|
@@ -485,7 +506,9 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
485
506
|
|
|
486
507
|
- `src/index.ts` — node half: WE polling, HTTP routes, scene renderer subprocess, library scan
|
|
487
508
|
- `src/scene/` — SceneAdapter modules (protocol / capability probe / renderer process / WebSocket / fallback / PKGV0001 parsing / SceneModel layer model / .tex decoding / puppet mdl parsing)
|
|
488
|
-
- `src/client/` — browser half (theme overrides / background layers / SceneCanvas / SceneModelRenderer / ParticleRuntime / GazeLens / focus lens / immersive mode / wallpaper_share panel)
|
|
509
|
+
- `src/client/` — browser half (theme overrides / background layers / SceneCanvas / SceneModelRenderer / ParticleRuntime / GazeLens / focus lens / immersive mode / wallpaper_share panel / library-model.ts library categories & detail formatting)
|
|
510
|
+
- `src/workspace/` — Workspace Pulse (filesystem snapshot diffing + built-in DWP packer; `_dev/make-workspace-pulse.mjs` is the manual packing script)
|
|
511
|
+
- `src/daynight/` — "DeepSeek Day & Night" packer (two full-canvas PNGs layered by `$night_alpha`; `_dev/make-daynight-dwp.mjs` packs + installs into the local market, `_dev/verify-daynight-dwp.mjs` static validation + day/night chain self-check)
|
|
489
512
|
- `native/we-capture/` — Rust native capture renderer source (Windows Graphics Capture → JPEG)
|
|
490
513
|
- `bin/we-capture.exe` — shipped native capture renderer (Windows-only)
|
|
491
514
|
- `docs/` — format & implementation docs (`scene-format.md` / `scene-fallback.md` / `tex-format-findings.md` / `mdl-skinning-findings.md`)
|
|
@@ -496,28 +519,11 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
496
519
|
|
|
497
520
|
## 🆕 Known Issues
|
|
498
521
|
|
|
499
|
-
> Applies to plugin `v26.9.4` / Harness `0.1.2-rc.1`.
|
|
500
|
-
|
|
501
|
-
### Compatibility (breaking changes in Harness 0.1.2 — adapted)
|
|
502
|
-
|
|
503
|
-
All four regressions introduced by `0.1.2-alpha.2` are fixed in `v26.9.4` and were checked against the `0.1.2-rc.1` host implementation:
|
|
504
|
-
|
|
505
|
-
- **New session**: `workspaces.startSession` was removed; the orb now calls `ctx.get('uiWorkspace')?.startSession()`, falling back to `workspaces` on older hosts.
|
|
506
|
-
- **Orb task color**: `sessions` is now resolved through `ctx.inject(['sessions'], …)`, so the subscription attaches once the host provides it instead of reading `undefined` at apply time and staying idle-green.
|
|
507
|
-
- **Immersive mode**: the session header is now matched by `[data-slot="conversation.session.header"]` (slot rendering adds a wrapper, so the old `[data-phase] > header` missed silently); the transcript and composer are hidden through `[data-conversation-scroll]`.
|
|
508
|
-
- **⏻ glyph**: `.wesync-btn` appends `'Segoe UI Symbol'` / `'Segoe UI Emoji'` after the host's `--dsw-font-family`, so only U+23FB falls through to a symbol font and Latin/CJK text keeps the host font.
|
|
509
|
-
|
|
510
|
-
Service lookups are all resolved lazily at use time now, so behaviour on `0.1.0-rc.6` ~ `0.1.2-alpha.1` is unchanged.
|
|
511
|
-
|
|
512
522
|
### Environment limits
|
|
513
523
|
|
|
514
524
|
- **Market thumbnails do not load**: catalog thumbnails point at `raw.githubusercontent.com`, unreachable in some environments; the `onError` handler hides them.
|
|
515
525
|
- **Wallpaper Engine directory missing**: when auto-detection resolves to a non-existent directory, wallpaper sync is unavailable (the market is unaffected) — set `CONFIG.wallpaperEngineDir` manually.
|
|
516
526
|
|
|
517
|
-
### Build & maintenance (does not affect shipped packages)
|
|
518
|
-
|
|
519
|
-
- **`dwp-runtime-web/` is not version-controlled**: the DWP render runtime (`@dwp/web`) is inlined into `lib/client.js` at build time via a `tsdown` local-path alias, but that directory is `.gitignore`d and is not an npm dependency. **End users installing from GitHub / npm get the prebuilt, already-inlined `lib/` and are unaffected — DWP works normally**; however, **a clean `git clone` + `pnpm build` fails or silently produces a broken bundle because the directory is missing** — rebuilding is currently only reproducible on a machine that has `dwp-runtime-web/`. Plan: before multi-maintainer / CI, fold it into a pnpm workspace or switch to a git-tag dependency, and make the alias fallback fail loudly when the directory is absent.
|
|
520
|
-
|
|
521
527
|
## 📄 License
|
|
522
528
|
|
|
523
529
|
GPL-3.0
|
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.10-T" src="https://img.shields.io/badge/v26.9.10--T-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 秒内自动跟随
|
|
@@ -61,8 +63,10 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
61
63
|
- **原生 scene 捕获渲染器**:随包内置 Rust 编写的 `we-capture.exe`,用 Windows Graphics Capture 抓取 WE 正在渲染的桌面,镜像 WE 自身输出 → GLSL / SceneScript / 关键帧 / 粒子等**所有 WE 效果天然全覆盖**
|
|
62
64
|
- **专注透镜**:叠加一个圆心清晰、圆外模糊的阅读窗;默认跟随鼠标,开专注即生效
|
|
63
65
|
- **眼动追踪(实验)**:可选,用摄像头推断注视点让透镜跟随视线;9 点校准、文字吸附、抗抖动
|
|
64
|
-
- **壁纸库 · 本地 / 市场**:按**本地**与**市场**两大分类浏览。本地一栏管理已装内容——`dwp壁纸`(点击即挂载为全局背景,已挂载再点取消)与 `we
|
|
66
|
+
- **壁纸库 · 本地 / 市场**:按**本地**与**市场**两大分类浏览。本地一栏管理已装内容——`dwp壁纸`(点击即挂载为全局背景,已挂载再点取消)与 `应用`(**大类**,下分 `we应用` 与 `应用`;点击卡片即启动,每次启动弹确认),带标题搜索、缩略图与计数;搜索框右侧的**「管理」**开关进入管理模式:卡片整体轻微晃动,**点卡片即多选**(选中项停住晃动、背景转蓝并打勾),选择条给出「已选 N / 卸载选中 / 清空选择」,可跨 `dwp壁纸` 与 `应用` 一次选完再统一卸载(确认弹层列出全部将被删除的项);每张卡仍保留「打开源文件 / 卸载」单项操作,dwp 的「打开源文件」会在资源管理器里定位包文件——**卸载只对 dwp 壁纸与启动器装的应用开放**,WE 工坊内容点了只给提示、不参与多选(绝不删 Steam 内容);市场一栏浏览 `dwp-registry` 目录,支持名称 / 作者搜索、标签筛选与**安装 / 更新 / 卸载**
|
|
65
67
|
- **DWP 壁纸与全局背景渲染**:`dwp/1.0` 协议包(纯文本 / solid / 粒子 / mesh 图层 + 12 种混合模式 + 3 种动画 + 11 种效果,确定性渲染);挂载后经 WebGL2 真实渲染为 DSH 全局背景(低配 Canvas2D 降级),同时暂停 WE 同步避免冲突,刷新后自动恢复
|
|
68
|
+
- **DWP 时钟变量(给壁纸作者的通用能力)**:插件每 2.5s 向**挂载中的任何场景**喂 `hour` / `night_alpha` / `night_on` / `day_on` 四个变量(`Handle.setParams` 逐键覆写,与内置包「工作区脉搏」的变量互不干扰);场景在 `variables` 里声明后即可引用——市场包 **「DeepSeek 日夜」** 就是用它做 18:00–06:00 自动换成夜景图、其余时间日景图,边界前后各 10 分钟线性过渡
|
|
69
|
+
- **DWP 纹理分档(同一张壁纸两档清晰度)**:另喂 `hd_on` / `night_sd` / `night_hd` 三个变量,由渲染模式决定档位——**「预览 / 捕获」= 低档,「增强 / 完整」= 高档**;包在 scene 顶层用扩展字段 `dsh.hdAssets` 声明"只在高档位需要的资源",低档位消费端把它们换成 1×1 占位图,因而**根本不下载、不解码**高分纹理(「DeepSeek 日夜」1.1.0 即 1920×1080 / 7680×4320 两档,切档位会按新档重新挂载)
|
|
66
70
|
- **沉浸模式**:一键隐去会话头部、正文与输入栏,让壁纸独占视野;网页 / 应用类壁纸在沉浸下可直接鼠标交互(详见[沉浸模式](#-沉浸模式与任务指示))
|
|
67
71
|
- **视觉效果滑块**:面板透明度 0–100% / 背景模糊 0–30px / 阴影深度 0–100%,即时生效
|
|
68
72
|
- **后台任务可视化**:收纳侧边栏时,用圆形指示感知任务进度(绿 = 空闲 / 蓝 = 进行中 / 黄 = 等待授权)
|
|
@@ -72,17 +76,19 @@ dsh plugin --profile web add dsh-wallpaper_share # 或见下方「安装」选
|
|
|
72
76
|
|
|
73
77
|
## 🧭 面板导览
|
|
74
78
|
|
|
75
|
-
`wallpaper_share`
|
|
79
|
+
`wallpaper_share` 标签页采用**三页虚拟滚动**:「设置 ⇄ 壁纸库 ⇄ dwp创作」三页纵向叠放、页间留断层,一套滚轮全接管——页内跟手滚动 + 惯性阻尼,滚到页界继续滚即**蓄力翻页**(250ms 无输入弹回防误触),右缘三个页签显示当前页(黄色高亮)与蓄力进度,点击可直达;所有操作即时生效、无需保存:
|
|
76
80
|
|
|
77
81
|
| 卡片 | 内容 |
|
|
78
82
|
| --- | --- |
|
|
79
83
|
| **壁纸状态** | 壁纸名(标题行**右缘为插件版本号**,一键整段选中便于反馈问题);下方副标题只承载诊断信息——scene 壁纸显示当前渲染通路(`场景 · 预览图 / 捕获 live 30fps / 浏览器模型渲染 / 回退:<原因>`),未应用壁纸时显示引导文案,其余类型整行不占;多显示器时出现「背景显示器」下拉;`⏻ 同步开启 / 关闭 / 暂停(DWP)` 三态按钮 |
|
|
80
84
|
| **视觉效果** | 三档渲染模式分段按钮;「专注模式」及其展开条(眼动追踪 / 校准视线 / 文字吸附 / 实时状态);透明度 · 模糊 · 阴影三个滑块(**专注开启时滑块隐藏**,改由任务态与透镜接管) |
|
|
81
|
-
| **壁纸库** |
|
|
85
|
+
| **壁纸库** | 「壁纸读取位置」可添加自定义壁纸目录(指向单个壁纸目录或集合文件夹),启动器安装位置也并入这里(带「(启动器安装位置)」标记,可更改 / 迁移);「本地 / 市场 / 应用启动器」三栏切换,本地按 `dwp壁纸` / `应用`(下分 `we应用` 与 `应用`)筛选 + 标题搜索 + **「管理」**(卡片晃动 → 点卡片多选变蓝 → 「卸载选中」批量卸载,可跨分类累计;每张卡另有「打开源文件 / 卸载」)+ 分页(显示更多 +60),市场支持安装 / 更新 / 卸载,**应用启动器**只负责安装:支持直链安装(`.zip`/`.7z`/`.exe`,加密包可填解压密码)与 **139 分享链接**(提取码填密码框;原始文件下载需粘贴一次 Authorization 登录态),自动封装类 WE app(json + 预览图),卡片「详细」可查安装时间 / 地址 / exe 文件;启动与卸载统一在「本地 → 应用」里做(每次启动弹确认) |
|
|
86
|
+
| **dwp创作** | 本轮为占位页:滚到这一页时宿主输入框重新出现(「设置」「壁纸库」两页会自动收起它,避免挡住卡片又可点),页面内容下一轮填充 |
|
|
82
87
|
|
|
83
88
|
两点与宿主 UI 的约定:
|
|
84
89
|
|
|
85
90
|
- **本标签页禁用正文宽度拖拽**:会话正文两侧那对拖拽把手在 `wallpaper_share`(与「轨迹」页一样)不出现,切回「对话记录」仍可用。
|
|
91
|
+
- **宿主输入框按页显隐**:「设置」「壁纸库」两页自动收起宿主输入框(opacity + `pointer-events:none`,不改布局),只有「dwp创作」页显示它——输入框是 sticky 常驻条(实测占 126px),既会挡住卡片底部行,也会吞掉那片区域的点击(压在它下面的按钮点不到);收起后两页的面板高度直接吃到视口底部,dwp创作页则按实测高度让开输入框。
|
|
86
92
|
- 标签页是 session 作用域插槽,切换会话会重挂载面板;语言与开关状态从模块级 store 恢复,不会"弹回英语"。
|
|
87
93
|
|
|
88
94
|
## 🎨 渲染模式与兼容矩阵
|
|
@@ -120,7 +126,9 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
120
126
|
|
|
121
127
|
**原生捕获器原理**: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
128
|
|
|
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)**。
|
|
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)**、**[docs/bone-pipeline-compare.md](docs/bone-pipeline-compare.md)**。
|
|
130
|
+
|
|
131
|
+
**骨骼动画(完整档)**:puppet 部件按 MDLS 绑定 + MDLA 逐骨骼动画做全骨骼链乘蒙皮,`animationlayers` 多层合成(普通层 mix / additive 层以自身帧 0 为参考 / rate 倍速 / 30fps),MDAT 具名锚点(含中文名)跟随骨骼最终世界位姿。26.9.8 定案 MDLA0006 连续流布局(骨骼窗口跨段延伸、每骨骼 +2 浮点漂移、fc+1 行含闭合行),并钳制末骨越界帧——修复人物每循环抽动一次与蒙皮异常形变(如 3465215190);58 个本地 MDL 端到端校验(帧0≈bind + 闭环平滑度)全部通过。
|
|
124
132
|
|
|
125
133
|
## 🔍 专注模式与眼动追踪
|
|
126
134
|
|
|
@@ -154,16 +162,33 @@ scene 壁纸在捕获 / 完整档下的渲染优先级与回退链:
|
|
|
154
162
|
| 🟣 **alpha(新版本)** | 适配 harness 为 alpha 架构的推荐版本 | `dsh plugin --profile web add dsh-wallpaper_share@alpha` |
|
|
155
163
|
| 🟡 **test(测试版本)** | 用于测试的版本,可能有未完成功能 | `dsh plugin --profile web add dsh-wallpaper_share@test` |
|
|
156
164
|
|
|
165
|
+
> 当前测试版:**`26.9.10-T`**(GitHub `test` 分支 / npm `test` dist-tag)。本版新增:壁纸库「管理」多选批量卸载、应用启动器卡片化简为「详细」、面板三页滚动(含占位的「dwp创作」)、宿主输入框按页显隐、**DWP 时钟变量**与**纹理分档**(预览/捕获用低清、增强/完整用高清)。
|
|
166
|
+
|
|
167
|
+
### 🔧 其他安装方式
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# 从 Git 克隆(仓库自带预构建 lib/,克隆后无需构建):
|
|
171
|
+
git clone https://github.com/YRN-playmaker/dsh-wallpaper_share.git
|
|
172
|
+
cd dsh-wallpaper_share
|
|
173
|
+
pnpm pack # 打包为 dsh-wallpaper_share-<version>.tgz
|
|
174
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-<version>.tgz
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# 作为 npm 依赖引入(可选):
|
|
179
|
+
pnpm add dsh-wallpaper_share
|
|
180
|
+
```
|
|
181
|
+
|
|
157
182
|
```bash
|
|
158
183
|
# 任选其一:
|
|
159
184
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share
|
|
160
185
|
# 从 GitHub 安装(仓库自带预构建 lib/,不需要构建许可;main = 最新档)
|
|
161
186
|
dsh plugin --profile web add dsh-wallpaper_share
|
|
162
187
|
# 从 npm 安装(默认 = latest 最新档)
|
|
163
|
-
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.
|
|
164
|
-
# 本地 tarball 安装(26.9.
|
|
188
|
+
dsh plugin --profile web add ./dsh-wallpaper_share-26.9.10-T.tgz
|
|
189
|
+
# 本地 tarball 安装(26.9.10-T)
|
|
165
190
|
dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
166
|
-
# 从 GitHub 安装 test
|
|
191
|
+
# 从 GitHub 安装 test 分支(测试档,当前即 26.9.10-T:管理多选卸载 / 三页滚动 / DWP 纹理分档等)
|
|
167
192
|
```
|
|
168
193
|
|
|
169
194
|
```bash
|
|
@@ -228,7 +253,7 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
228
253
|
|
|
229
254
|
- `src/index.ts` — Node 半:WE 状态轮询、HTTP 路由、scene renderer 子进程管理、壁纸库扫描
|
|
230
255
|
- `src/scene/` — SceneAdapter 模块(协议 / 能力探测 / renderer 进程 / WebSocket / 回退 / PKGV0001 解析 / SceneModel 图层模型 / .tex 解码 / puppet mdl 解析)
|
|
231
|
-
- `src/client/` — 浏览器半(主题覆盖 / 背景层 / SceneCanvas / SceneModelRenderer 子集渲染器 / ParticleRuntime / GazeLens 眼动 / 专注透镜 / 沉浸模式 / wallpaper_share
|
|
256
|
+
- `src/client/` — 浏览器半(主题覆盖 / 背景层 / SceneCanvas / SceneModelRenderer 子集渲染器 / ParticleRuntime / GazeLens 眼动 / 专注透镜 / 沉浸模式 / wallpaper_share 面板 / library-model.ts 壁纸库分类与详情格式化)
|
|
232
257
|
- `native/we-capture/` — Rust 原生捕获器源码(Windows Graphics Capture → JPEG)
|
|
233
258
|
- `bin/we-capture.exe` — 随包发布的原生捕获器(Windows-only)
|
|
234
259
|
- `docs/` — 格式规范与技术文档(`scene-format.md` / `scene-fallback.md` / `tex-format-findings.md` / `mdl-skinning-findings.md`)
|
|
@@ -239,7 +264,7 @@ dsh plugin --profile web add github:YRN-playmaker/dsh-wallpaper_share#test
|
|
|
239
264
|
|
|
240
265
|
## 🆕 已知问题
|
|
241
266
|
|
|
242
|
-
> 适用版本:插件 `v26.9.
|
|
267
|
+
> 适用版本:插件 `v26.9.10-T` / Harness `0.1.2-rc.1`。
|
|
243
268
|
|
|
244
269
|
### 兼容性(Harness 0.1.2 破坏性变更 · 已适配)
|
|
245
270
|
|