Repository navigation
Wallflow 0.1.31 improves wallpaper switching and pause/resume across desktop Spaces, preserves the rendered surface during transitions, and removes system-wallpaper snapshot updates.
Highlights
- Smoother wallpaper switching: reuse each display's desktop window when selecting a wallpaper, stop the previous renderer, and reject its pending frame-capture and resume callbacks. Consume a command-line project only once so later display reconciliation does not replace the selected wallpaper.
- Preserved Space-transition surfaces: attach wallpaper windows to their display's ordinary desktop Spaces while excluding fullscreen-app Spaces. Metal, Canvas, scene, and WebKit surfaces remain attached while paused instead of being replaced by screenshots.
- Less work during transitions: remove the system-desktop fallback publisher and its image encoding and wallpaper writes. Canvas pause and re-pin paths avoid extra drawing and snapshot readbacks.
- Consistent pause/resume: keep Canvas simulation and input pinned until the host commits the matching presented frame; stop retired renderers and discard stale asynchronous results.
- More reliable verification: add desktop lifecycle and desktop-size Canvas performance self-tests. Missing or invalid self-test path arguments now print usage and fail before normal app startup; ZIP verification requires
--self-test. Update both English and Chinese verification instructions.
Download and install
Requires Apple Silicon (arm64) and macOS 13 or later.
- Download
Wallflow-0.1.31-macOS-arm64.dmg. - Open the disk image and drag Wallflow.app to Applications.
- Launch Wallflow and use its menu-bar icon to manage wallpapers.
The app is ad-hoc signed and is not notarized. A SHA-256 checksum file is included.
Validation
Built and packaged from commit ee16d69efe6b6312abf7b7b5883155d9292764d5 in a separate checkout. The arm64 app's ad-hoc signature and the DMG integrity checks passed.
The packaged app passed core, desktop lifecycle, Canvas-Metal, desktop-performance, native video, and scene self-tests, plus all 33 CLI error cases. The desktop lifecycle test completed 50 retained-surface pause/resume cycles without snapshots. At 4112 × 2658, the Canvas test submitted 48 frames in two seconds, zero frames during a two-second pause, and 48 frames after resume, with zero snapshot readbacks. The scene test likewise produced zero updates while paused.
Known verification limitation: --web-self-test failed on this machine: the WebKit CSS animation time remained at zero after resume. The previous 0.1.27 app reproduced the same failure. Diagnostic probes reported document.visibilityState == "hidden" even though AppKit reported the test window visible; making the test window opaque, moving the animation into the viewport, and launching through macOS did not resolve the check. WebKit animation resume is therefore not verified by this release run. Diagnostic edits are not included in the release. Library screenshot, external-web, and external ZIP-import tests were not rerun.
Compatibility
Space membership uses dynamically loaded private SkyLight APIs. When unavailable or unsuccessful, Wallflow falls back to standard AppKit behavior; macOS may then display its static background during Space transitions. Multi-display behavior, canceled switching gestures, and the full range of supported macOS versions have not been verified for this release. Automated lifecycle tests do not replace those visual checks.
Performance self-tests measure process CPU time and render/timer activity, not whole-system power consumption. Wallpaper Engine compatibility remains partial.
中文摘要
- 切换壁纸时复用桌面窗口,停止旧渲染器并丢弃过期回调,避免旧画面覆盖新壁纸。
- 普通桌面 Space 切换保留真实渲染表面,移除系统壁纸截图同步,减少图片编码和回读。
- Canvas 暂停时锁定模拟与输入,恢复到对应帧并由宿主确认后再继续播放。
- 新增桌面生命周期和桌面尺寸性能自测,修复自测漏传路径时误启动应用的问题。
- 核心、桌面生命周期、Canvas、桌面性能、视频、场景及 33 个命令行错误用例通过;网页自测在当前环境仍失败,旧版 0.1.27 也复现同样现象,故本轮未验证 WebKit 动画恢复。
- Space 处理使用非公开 SkyLight 接口,接口不可用时回退;多显示器与各 macOS 版本仍需进一步实机验证。
- 仅支持 Apple Silicon / macOS 13+,安装包为临时签名、未经公证,附 SHA-256 校验文件。