Last reviewed: 2026-07-27
CrystalSpace direct builds support an experimental animated Lock Screen on macOS 26. Sandboxed builds report the feature unavailable.
Apple exposes no public animated Lock Screen setter API. This provider uses the reversible user-level aerial-slot technique demonstrated by the MIT-licensed Wallpaper-Sync project. CrystalSpace implements the mechanism natively in Swift and does not install Python, ffmpeg, a LaunchAgent, a privileged helper, or Accessibility automation.
- macOS 26 or newer.
- A direct, unsandboxed CrystalSpace build.
- An Apple animated aerial selected and downloaded in System Settings → Wallpaper.
- A downloaded or imported CrystalSpace video.
- Resolve the CrystalSpace local video without modifying the original.
- Create a managed HEVC
hvc1MOV using AVFoundation/VideoToolbox. - Read the selected aerial
assetIDfrom the current macOS 26com.apple.wallpaper/Store/Index.plist. - Validate the selected downloaded aerial.
- Create and validate a persistent original-aerial backup.
- Save recovery state before changing Apple-managed files.
- Atomically replace the selected aerial video.
- Mirror the already-selected Desktop aerial configuration into Idle.
- Restart
WallpaperAgentandWallpaperAerialsExtension.
If any step after recovery-state creation fails, CrystalSpace attempts an automatic rollback. The desktop wallpaper engine is independent and remains usable.
Settings → Lock Screen → Restore Original Apple Aerial restores the validated video backup. CrystalSpace restores the previous wallpaper index only when the index still matches the version it wrote. If System Settings or macOS changed the index afterward, that newer configuration is preserved.
Scripts/build-app.sh accepts:
zsh Scripts/build-app.sh release direct
zsh Scripts/build-app.sh release sandboxed
direct is the default and enables the experimental provider.
sandboxed preserves App Sandbox compatibility and disables it.
The wallpaper-store format is undocumented and may change in a macOS update.
The provider validates the currently observed Tahoe assetID schema and fails
closed when the expected Desktop aerial configuration is absent.