Wallpaper Engine wallpapers on your Mac. A free, open-source app that plays scene, video and web wallpapers from the Steam Workshop. Apple silicon, macOS 15+.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A first-run guide takes it from there, and the app updates itself from then on. The install guide walks through every step with pictures.
Rather build it yourself? It takes two commands: see Open source. Free to build.
One window with tabs across the top: your library (all wallpapers, favorites and your collections), Steam Workshop and pixiv to browse, and Settings, with what is playing in a bar along the bottom. The website has a demo of it on a sample library, so you can try it in your browser. Close the window and the app keeps running in the menu bar, where you can pause, resume, mute or go to the previous, next or a random wallpaper, on each display separately when you have more than one. When it launches at login, it starts there without opening the window.
| Feature | What it does |
|---|---|
| Apply | Scene, video or web: Apply wallpaper and it becomes your desktop. Choosing a wallpaper only selects it. |
| Preview | Try an installed scene, video or web wallpaper in its own window, with the current options and separate playback controls, before changing the desktop. Sliders, colours and switches show in it as you change them. |
| Workshop | The live Steam Workshop, no sign-in to browse, with collections and each author's wallpapers, plus your subscriptions and favorites once you sign in to Steam; signed in, subscribe or unsubscribe from the app, and read an item's newest comments. Downloads run in the app, several at once, with a Steam account that owns Wallpaper Engine. Updates to the wallpapers you have are found once a day and installed in one click. |
| pixiv | pixiv's illustration rankings and tag search. Save any page of a work as a still wallpaper; sign in to pixiv for members-only works and, if your account allows them, R-18. |
gh attestation verify WallpaperMachine-*-arm64.dmg --repo WallpaperMachine/WallpaperMachine
| Layer | What it does |
|---|---|
| Swift shell | The AppKit app. Its control panel is native SwiftUI (App/Views/ControlPanel), and web wallpapers run in web views of their own. |
| Rust core | The renderer (Renderer/): displays, wallpaper windows, video decode and audio capture, bridged to Swift with uniffi. |
| C++ scene engine | The project's scene engine (Renderer/Engine), statically linked into the Rust core, draws scene wallpapers. |
| Metal | Scenes render natively on Metal, and a scene the native renderer cannot draw is not drawn: it keeps its last picture and says why in Settings → Performance. Video wallpapers play with the app's own players (AVFoundation, and a WebM player for WebM and Matroska files). |
| Lock screen | A sandboxed ExtensionKit extension (Extension/). |
How the pieces talk to each other: docs/architecture.md. Where each file lives: docs/repository-layout.md.
A few things before your change of scenery.
WallpaperMachine is a native macOS client for Wallpaper Engine wallpapers. It brings scene, video and web wallpapers to your desktop, with Steam Workshop browsing and downloads built in.
Wallpaper Engine itself is made for Windows. WallpaperMachine is an independent Mac app built to play its scene, video and web wallpapers, with Steam Workshop browsing built in; compatibility varies by wallpaper. It is not affiliated with Wallpaper Engine or Valve. More in Wallpaper Engine on a Mac.
You can browse the Workshop without signing in. Workshop downloads require a Steam account that owns Wallpaper Engine, and scene wallpapers need shared resources from a purchased Wallpaper Engine installation. The bundled video wallpaper, Aurora Drift, plays without either. More in Workshop browsing and downloads.
Macs with Apple silicon (M1 or later) running macOS 15 Sequoia or later. The animated lock screen needs macOS 26 Tahoe or later. Intel Macs aren't supported.
WallpaperMachine supports scene, video and web rendering. Compatibility varies by wallpaper; support for these formats does not mean every Workshop item will render identically, and Application wallpapers don't run. If one looks wrong, Not working? Report on GitHub in its details opens a new GitHub issue with that wallpaper's information filled in, for you to check and send. To attach logs, export a diagnostics report from Settings → Storage → Troubleshooting. Home folder paths, your Mac user name and Steam account names are replaced first.
Download the signed build free from the latest release, or build it from the source. The build is not notarized, so macOS holds its first launch until you click Open Anyway in System Settings → Privacy & Security. The install guide walks through it, from the download to the first-run guide. From then on the app checks for new versions itself and, where it can replace its own copy, offers Restart to Update.
Yes, the macOS system proxy: browsing, previews and SteamCMD downloads all follow
System Settings → Network → Details → Proxies, so there is no separate setting.
A proxy app in rule mode still decides by host name, so if Steam downloads fail
outside global mode, route steamserver.net, steamcontent.com,
steamcommunity.com and steampowered.com through the proxy
(details).
Yes. The signed download is free, and the complete source is here if you would rather build it yourself. Becoming a Supporter adds a sponsor place on the website and in this README, plus priority support. It buys no license: the app is the same with or without it. What it includes and how to become one: SPONSORS.md.
Questions go to Discussions, and ideas to a feature request. For a wallpaper that looks wrong, use Not working? Report on GitHub in its details. Security problems are reported privately: see SECURITY.md.
The complete source is here. It builds on a Mac with Apple silicon, Xcode 26 (macOS 15.6 or later), a
full Xcode selected with xcode-select and the Homebrew packages listed under
Prerequisites; the renderer and scene engine are in
Renderer/, and third-party code is vendored under
ThirdParty/, not pulled in as submodules.
python3 scripts/build.py --configuration Release # renderer, bindings, Xcode project, app
The app lands in build/Build/Products/Release/WallpaperMachine.app.
python3 scripts/test.py runs the tests, and
python3 scripts/package.py --configuration Release --install makes the bundle
self-contained, wraps it in a disk image and copies it to ~/Applications.
Scene wallpapers also need shared resources from a Wallpaper Engine you own.
Toolchain, packaging and troubleshooting: docs/build.md. Working on the code: CONTRIBUTING.md. Translating the app, or asking for another language: Crowdin, no code needed (how it reaches the app).
| Document | Purpose |
|---|---|
| docs/README.md | Index of every document, features included |
| docs/architecture.md | Runtime structure and module boundaries |
| docs/repository-layout.md | Directory map and where new code goes |
| CONTRIBUTING.md | Contributor working agreement |
| CODE_OF_CONDUCT.md | How we treat each other in issues, discussions and reviews |
| SECURITY.md | How to report a vulnerability privately |
| docs/testing/README.md | Test strategy, commands, evidence policy |
| docs/release.md | Versioning, release notes and the CI release pipeline |
| CHANGELOG.md | What changed in each published version |
| LICENSING.md | License, code origin, Supporter model and component licenses |
| SPONSORS.md |
Supporters who choose to be shown are listed here and on the sponsor wall. Supporter is a one-time purchase for a sponsor place and priority support; the app and its source stay free for everyone. If WallpaperMachine has earned a place on your desktop, become a Supporter.
The source is offered under the GNU General Public License, version 3 only (LICENSE). Vendored third-party code keeps its own copyright and license notices, recorded in ThirdParty/provenance.json. Every recipient keeps every right the GPL grants, whether or not they are a Supporter.
LICENSING.md is the account of where the code comes from, the license of each third-party component, the Supporter model, and where the source of each download is. The Apache-2.0 and GPL-3.0 components the build used to link (MoltenVK, the Vulkan loader, SPIRV-Tools, glslang, the vendored spirv_reflect, and the spirv Rust crate) were removed on 2026-10-17 under the earlier GPL-2.0-only policy and are GPLv3-compatible. Workshop wallpapers belong to their creators, and scene resources come from a Wallpaper Engine you own; the app bundles neither.
| Every option its artist made, saved when you apply your changes; named property presets keep several versions and can be exported or imported. An optional switch in Settings shows your edits on the desktop as you make them. |
| Music | Turn on Audio response and wallpapers made for sound move with what your Mac plays. Media integration is on by default, so ones with a music display show the song that's on. |
| Playlists | Let each display rotate through all wallpapers, favorites, its own list or a local collection, on a timer or each time the Mac is unlocked; Play or Shuffle on a collection starts one in a click. Reorder a list, save named playback plans, or switch between a day and a night wallpaper. Failed applications are skipped temporarily. |
| Displays | Every display gets its own wallpaper, or mirrors another, with its own scaling, position, frame rate and volume. Fit with blurred backdrop shows a wallpaper whole on a screen of another shape and fills the edges with a blurred copy instead of black bars. Apply one wallpaper to every display, copy or swap wallpapers and save multi-display arrangements to restore their wallpaper choices from Settings or Shortcuts. |
| Battery | On battery, keep running, drop to a render scale and frame rate you choose, or pause. Low Power Mode, a hot Mac and a low battery can lower quality the same way instead of pausing. Off until you pick it. The rest of playback and quality is on Performance. |
| Energy | Settings → Performance shows the power the app draws and, on a laptop, its share of a full charge per hour. Change a setting there and it compares before and after. Each installed wallpaper gets its own rating once it has been measured. |
| Native | Light, dark and your accent colour, like the rest of macOS, in English, 简体中文, 繁體中文, 日本語, 한국어 or Português. |
| Import | Bring the Wallpaper Engine folders you already have, or your own videos and pictures. Drop them on the Dock icon or use Import; the app copies them and leaves the originals alone. |
| Keep your setup | Export settings and retained files, optionally the whole wallpaper library; preview conflicts before a recoverable restore at the next launch. Sign-ins and passwords stay on this Mac. |
| External drive | Keep the wallpaper library and downloads on an external drive or in another folder, and move them back to this Mac at any time. Settings and Steam sign-ins stay on this Mac. |
| Picture placement | Drag, position and zoom imported pictures and saved pixiv pages separately for each display, without changing the original image. |
| Out of sight, paused | A covered display stops its own wallpaper, and sleep or lock pauses them all. Playback rules can also pause or mute them while another app plays sound, while an app you choose is running or in front, when the battery is low, in Low Power Mode, when the Mac runs hot, or during a Focus. With several displays, you can also keep only the one you are using playing. Your own pause stays yours. |
| Automation | Weekday and time schedules, local sunrise/sunset calculations, light/dark appearance choices, a different wallpaper for each desktop, and temporary Focus wallpapers or playlists. Keyboard shortcuts, Shortcuts, Siri, Spotlight and links can control playback, mute every wallpaper, pick a random wallpaper, and apply wallpapers, saved playlists or property presets. |
| Lock screen | Video and scene wallpapers can animate the lock screen too. Experimental and off by default. |
| Screen saver | Use each display’s applied scene, video, web or still wallpaper as its screen saver. Independent of lock-screen animation; experimental on macOS 26+. |
| Supporter pricing, what it includes and other ways to help |
| AGENTS.md | Rules for agents working in this repository |