让桌面
动起来
对标 Wallpaper Engine / Lively 的 Windows 动态壁纸引擎。 视频、Web、3D 场景三类壁纸统一调度,挂靠在桌面图标之下,托盘常驻,全屏自动让路。
三类壁纸,一套调度
不是把窗口盖在桌面上,而是真正挂进 WorkerW;全屏、锁屏、断电、Explorer 崩溃都按策略处理。
视频壁纸
libmpv wid 进程内嵌入,D3D11VA 硬件解码,暂停即释放显存,FPS 滤镜可叠加。
Web 壁纸
WebView2 共享 WorkerW,鼠标 / 音频通过 JS bridge 双向通信,脚本走安全 allowlist。
3D 场景壁纸
Silk.NET + D3D11 图层渲染,GLSL 着色器、QuickJS 脚本、音频 FFT 驱动,带实时统计面板。
桌面挂靠
经典 WorkerW + Win11 raised desktop 双路径,Explorer 重启自动重挂,逐屏 DPI 适配。
全屏三档策略
前台全屏检测触发暂停 / 释放 / 静态快照三档降级,退出全屏自动恢复,不抢焦点不掉帧。
多显示器
每个「壁纸 × 显示器」独立 RenderHost 子进程,Job Object 兜底,拔屏 / 改分辨率自动重建。
看门狗与电源
子进程心跳 + 崩溃自恢复;电池 / 节电模式自动降档,睡眠唤醒后重新挂载。
单文件安装器
WinUI 3 非打包 + 自包含运行时,单 exe 安装包,Velopack 增量更新(规划中)。
选型与进程模型
主 UI / 编排进程负责一切决策,渲染全部下沉到子进程 —— 一个壁纸崩了,桌面不受影响。
wid 嵌入式已经走到哪一步
每个阶段都有可运行的样例与测试报告,产物都在仓库里。
Phase 0技术验证 已完成
WorkerW 挂靠 / D3D11 场景 / raw WebView2 / libmpv / IPC 五个 spike,出测量报告。
Phase 2视频壁纸 已完成
libmpv 子进程 + D3D11VA + stdio IPC + 暂停释放显存;10 分钟稳定性、损坏视频用例。
Phase 3Web 壁纸 已完成
共享 WorkerW、鼠标 / 音频 JS bridge、脚本 allowlist、DPI 与文本缩放处理。
Phase 4场景壁纸 已完成
D3D11 图层合成、GLSL 转译、QuickJS 脚本、音频 FFT、统计面板。
Phase 5主调度器 已完成
全屏检测、三档降级策略、多显示器、看门狗、电源事件。
Phase 6WinUI 3 主界面 已完成
分类 / 缩略图 / 属性 / 设置 / 托盘 / 自启动 / JSON 配置,含用户流程测试报告。
Phase 7产品化
单文件安装器、兼容性清单、资源占用指标、Velopack 自动更新。
跑起来
源码 + 样例工程都在仓库里,本机需要 .NET 10 SDK 与 Windows App Runtime。
# 克隆仓库 git clone https://github.com/Princess-Atri/wallerpaper.git cd wallerpaper # 直接跑样例(无需编译) .\run-wallpaper.cmd # 或用 VS 打开解决方案 start Wallerpaper.sln
环境要求
- Windows 10/11(WorkerW 挂靠依赖桌面合成)
- .NET 10 SDK 编译;发布版自带运行时
- Windows App Runtime:WinUI 3 非打包必需
- WebView2 Runtime:Web 壁纸必需
- VC++ Redistributable:libmpv / 原生依赖按需