Repository navigation
v1.0.0
WallpaperMachine 1.0 ships as a drag-to-install disk image and adds a first-run guide with Steam sign-in, optional now-playing support for music wallpapers and many scene rendering fixes.
New
- Downloads and in-app updates now come as a drag-to-install disk image with first-launch steps under System Settings → Privacy & Security → Open Anyway
- A first-run welcome guide sets language and appearance, signs in to Steam and shares tips, and can be reopened from Settings → Library & Steam
- Music wallpapers can optionally show the current track, cover art and playback state from your Mac's now-playing information once you allow media access
- Play, pause, next and previous buttons inside music wallpapers can now control the player you are using, starting on the action the button's name suggests
- Choose how many Workshop downloads run at once in Settings → Library & Steam → Downloads at once, from 1 to 6
- Settings → General has a Language picker for System (Auto), English and Simplified Chinese that switches the panel in place
- The control panel has a Wallpaper Engine-style filter sidebar with Workshop filters for type, age rating, resolution and tags, plus more Discover sort orders
- Installed can be filtered with the same sidebar boxes as Discover and sorted by name, type, favorites, file size or date added
- Wallpapers that let you choose your own picture now show the picture you pick instead of the packaged artwork
- Tiles show corner marks for staff-approved items, favorites and wallpapers already in your library
- Report a problem on GitHub now opens with the wallpaper's details filled in
- Choose between new branded app icons
- Settings → About shows what changed in the newest release
- The optional Native Metal renderer now draws effects, video, text layers, puppets, particle trails and sprite sheets
Improved
- Scenes with many large images open much faster because their images are decoded once and in parallel
- Newly connected displays start enabled with the main display's wallpaper, and turning one off is remembered across reconnections
- The Discover download ring names the current step, such as Connecting or Signing in, and shows Finishing while files are checked and imported
- Discover previews download once, are kept on disk and play sooner, and resizing the window no longer reloads the page
- The frame rate limit you set is now respected by wallpapers that react to the pointer
- Changing tracks on a music wallpaper no longer reloads the whole wallpaper or restarts its videos
- Heavy 3D wallpapers get more time to show their first frame, and later launches reach it faster
- Scene wallpapers do less redundant drawing work while playing
- Control panel text is rewritten in plain language and every message, menu and error is now translated into Simplified Chinese
- Checking for updates no longer reports an error when no release has been published yet
Fixed
- Wallpapers no longer disappear when you hide the app with Cmd-H or after activating a wallpaper
- The app restores your own wallpapers at launch instead of posters or selections inherited from another display
- Scene video textures no longer freeze after half a second, and 4K video scenes no longer fail with no first frame
- The internal render scale setting now takes effect on scene wallpapers
- Wallpaper buttons no longer stay stuck shrunk after being pressed
- Sounds bound to a wallpaper's volume slider now follow the slider
- Camera intros in 2D scenes play, and masked or parallax layers stay in place instead of sliding out of view
- 2D wallpapers with a camera layer no longer show only a small patch in one corner
- Blurred layers no longer flatten into a grey wash in the Compatibility renderer
- Effects written for Wallpaper Engine that were silently dropped now appear on their layers
- Audio-responsive elements react to sound on the Native Metal renderer instead of turning black
- Heavy 3D scenes no longer collapse to a column or lose skies, rings and large meshes
- Mouse trails follow the cursor near screen edges instead of drifting away from it
- Parallax no longer pushes grouped layers aside and uncovers what is beneath them
- Scripted dock icons in wallpapers now scale, fade and open as intended
- Album covers keep their authored shape instead of turning into circles
- Music wallpapers no longer go blank after changing a setting until playback is paused and resumed
- The lock screen status row now shows the real reason the experimental animated lock screen failed to start
- Applying a wallpaper no longer turns a mirrored display back into an independent one
- Installed tiles no longer show a leftover Discover preview animation
- Web wallpaper options keep their types and authored order
- Some control panel error messages no longer appear in English when the panel is in Chinese
Full changelog: v0.5.0...v1.0.0
Install
- Download
WallpaperMachine-1.0.0-arm64.dmgand open it. - Drag WallpaperMachine onto the Applications folder in the window that opens. In-app updates
replace a copy in/Applicationsor~/Applicationsand nowhere else. - The build is ad-hoc signed and not notarized, so macOS stops its first launch: open
System Settings → Privacy & Security, click Open Anyway, and confirm.
Verify the download
shasum -a 256 -c WallpaperMachine-1.0.0-arm64.dmg.sha256Apple silicon (arm64), macOS 26.0 or later.
Built from v1.0.0 at 1d5c9d25889b792a89b3bf6e886acffe2ab137cf (git rev-parse v1.0.0^{commit} must match).
104 commits in this release
- test(brand): skip Icon Composer exports where ictool cannot render (
7bbefd6) - ci(build): drop the licensing gate so the release image publishes (
db519b9) - docs(readme): add linux.do friend link (
36ebdd8) - docs(readme): rebuild the README on the website's structure (
78a0800) - docs(licensing): record the free download and Supporter model (
9d8a974) - Restore user wallpapers instead of posters or inherited selections; refresh welcome UI and docs (
ca08dbd) - Keep wallpaper windows visible when the app hides (
de7bf1d) - docs(testing): record the disk image and release-notes verification (
401244b) - feat(release): ship a drag-to-install disk image with model-written notes (
c1d75c9) - Log Release build verification after syncing origin/main (
2567fd2) - Hide app after activating a wallpaper so it is visible (
e8aab7b) - docs(provenance): record the crates/core demand-reason comment change (
6106f50) - docs(testing): record the Lucy renderer fix verification and Release build (
37f094e) - fix(scene): play 2D camera shots and keep masked and parallax layers in place (
2af149c) - fix(shader): stop dropping effects that assign a wide vector to a narrow one (
40b54e2) - feat(displays): start first-seen displays enabled with the primary wallpaper (
e44b960) - fix(panel): stop Discover animations when the grid leaves Discover (
93d6aa4) - docs(testing): record lock-screen fix verification and Release builds (
aaed861) - fix(lock-screen): report extension acquire failures to the app (
e8ccca1) - perf(scene): decode pass textures once and in parallel (
d81942d) - perf: eliminate repeated uniform, audio and artwork work (
259d54e) - feat(downloads): choose how many Workshop downloads run at once (
9b07191) - fix(scene): offset camera parallax by a layer's scene position (
5f05973) - test(panel): match the first-run guide to the window surface (
e1e176a) - perf(scene): reduce redundant Metal work and bound poster retention (
3c542df) - docs: update verification log with details of the 2026-09-22 Release build and cleanup (
5a4201f) - fix(panel): refine macOS UI and distinguish empty update feeds (
5ca5ca3) - feat(ui): improve settings, property presentation, and app branding (
30e2ac7) - fix(web): preserve authored option types and property ordering (
80f191b) - feat(release): write the notes from the commits and publish draft-first (
1d7f181) - feat(appearance): add branded app icons and icon selection (
c485de1) - fix(i18n): translate every user-facing message and rewrite the panel copy plainly (
0e85acc) - fix(scene): let wallpapers use the pictures and the framing their users pick (
2d6fbe6) - fix(scene): let heavy 3D wallpapers finish a frame and keep drawing (
2e2109c) - docs: record the re-verification and Release build on the renamed tree (
3d97613) - fix(scene): give the mouse trail the window's coordinates, not the canvas's (
b4cc8b1) - chore: finish renaming the project to WallpaperMachine (
916d43d) - fix(scene): stop a camera layer from reframing a 2D wallpaper (
1bf2039) - fix(render): re-bake texture resolution once the screen size is known (
bdd3118) - Revert the album-cover rejection: the measurement behind it was wrong (
3efb4e4) - chore(xcode): regenerate after removing the dead media coordinator (
9cd8719) - fix(metal): send scenes that draw the album cover back to Compatibility (
c7fff8d) - fix(media): stop a trait default from swallowing the shortcut sink (
c8c0155) - fix(media): let something actually wait for a wallpaper's button press (
99c303a) - fix(media): send a host-supplied shortcut default to the scene engine (
916b523) - fix(scene): give a button's release to whatever took its press (
ee53a32) - fix(media): bind transport shortcuts by default, and pin what the progress bar is (
fdd481a) - docs: record the two defects the restored dispatch exposed (
264dceb) - fix(renderer): do not rebuild a Metal graph for a scale that has not moved (
e91592a) - docs: record the power round, and what it did and did not explain (
dce6f56) - test(panel): measure from a settled state instead of a fixed window (
67d8279) - perf(renderer): stop deciding reuse for a graph that has none (
b8a98ae) - fix(renderer): a cover is pixels, and the render scale now reaches the scene (
a38b55d) - fix(renderer): keep a bound image alive while two names share it (
fbb1916) - fix(media): stop feeding wallpapers nobody is looking at (
73ed2a0) - fix(renderer): hold every frame request to the rate the user chose (
b4c6f04) - feat(panel): filter Installed with Discover's sidebar boxes (
05764a6) - test(renderer): dump targets and alpha from both backends, and name the diverging pass (
06ac2ca) - test(renderer): pin that a button sound actually plays when asked (
b837012) - docs(testing): record the release build after the revert (
960c730) - docs: describe the shortcut chain, the moved pin and the new probe knobs (
423543c) - Revert the video picker, and fix the sound volume claim (
500e0c3) - docs(testing): record the release build (
4d5ebf9) - fix(panel): offer a video where the wallpaper says it accepts one (
5294fce) - fix(renderer): let a sound follow the slider its author bound it to (
80958e5) - docs(testing): record the release build of the shortcut chain (
90b9e9a) - feat(media): carry out the action a user bound to a wallpaper's button (
0194594) - feat(bridge): carry shortcut presses to the host, gated on media consent (
1bfd2ca) - fix(build): move the deployment target rather than dropping it (
73e66fe) - fix(build): stop pinning a deployment target for cargo, and relay shortcuts in core (
5c7437e) - feat(renderer): carry openUserShortcut requests to the FFI boundary (
005fed9) - feat(renderer): implement engine.openUserShortcut (
286c418) - docs(testing): correct what the Metal cloud measurement actually showed (
d6ca1cf) - test(renderer): read any Metal render target, and stop leaking the optimisation flag (
46b0314) - test(renderer): make the two scene backends comparable offscreen (
6d3cda9) - test(renderer): make the consent test pin the clear it is named for (
cf842ec) - test(renderer): cover the media replay at the SceneWallpaper level (
0ddbb8b) - fix(renderer): keep media state across a scene rebuild; screenResolution is the display (
6489c91) - feat(panel): full-window first-run welcome guide with Steam sign-in (
794bc75) - fix(panel): localize remaining hardcoded action error messages (
ae3c17b) - test(renderer): pin both halves of the texture-default combo rule (
5498815) - fix(renderer): an annotation default is not the material binding a texture (
5a2e295) - docs(testing): drop the three repaired shaders from known limitations (
736d434) - fix(shader): one uniform array layout for both backends, and three author effects (
62a134b) - feat(workshop): name the SteamCMD step in the tile download ring (
d6e9b78) - chore(testing): quiet tool output, archive history, split large suites (
f94ab32) - perf(testing): parallelise native tests, make live Steam cases opt-in (
92782b6) - chore(testing): tiered verification gate and targeted test runs (
110fe92) - feat(localization): in-app language picker and per-language panel catalogs (
0ba421c) - docs: cap verification log at ten entries and archive older ones (
6606867) - feat(media): add scene media wallpaper support and enhance media snapshot handling (
8491c04) - Update verification log and provenance for media handling improvements and runtime image source adjustments. Documented the rebase of scene-media plumbing onto native Now Playing, including test results and fixes for thumbnail handling to ensure version consistency. Enhanced media thumbnail management in RuntimeImageSource to maintain image integrity during updates. (
ffd3c76) - feat(media): integrate scene media support and enhance media handling (
51a0e90) - feat(media): native now-playing integration and Leon scene fixes (
f2cf701) - fix(renderer): unfreeze scene video textures and report the native first frame (
06c5c38) - fix(panel): localize scaling option, resolve zh locales via Intl, guard i18n catalog (
a9b2c79) - feat(renderer): add puppets and particle trails to Metal backend (
77156e0) - feat(renderer): improve text layer handling and scene idling in Metal backend (
4330fef) - feat(panel): Wallpaper Engine-style browser, Workshop filters, faster Discover previews (
b3c83bd) - feat(renderer): enhance Metal backend with text layer support and runtime image handling (
6723d61) - feat(video): add direct NV12 plane sampling and scene optimization reporting (
c2dce0c) - feat(scene): scene optimisation on Metal, sprite sheets, 2D sprite pa… (#3) (
0eaa9ed) - feat(renderer): native Metal effects, video, and poster support (
5ec41d7) - feat(scene): whole-scene on-demand updating, native Metal backend, managed user assets (
b595821)