A native macOS live video wallpaper — in your menu bar.
VideoWall plays a looping video behind your desktop icons. No Dock icon, no clutter — just a ▶ in the menu bar, your library of clips, and a wallpaper that moves.
https://github.com/maxkongerskov/VideoWall/releases/download/v1.1.0/demo.mp4
- 🪶 Menu-bar agent — no Dock presence, opens as a popover.
- 🎞 Any video AVFoundation can decode — mp4, mov, m4v, avi, hevc/h.265, mkv, mpeg, 3gp, ts/mts and more.
- 🖥 Multi-display — runs on every screen, and can follow you across Spaces.
- ✂️ Clip trim + loop — set global start/end trim fractions for the active clip; loops cleanly with a crossfade.
- 🔄 Cycle mode — automatically rotates through your library with a blurred crossfade transition.
- 🔋 Battery-aware — pauses on battery, resumes on AC (optional).
- 🎥 Recording-aware — pauses when the screen is being captured, so the wallpaper doesn't leak into screenshots or shares (optional).
- ⚙️ Render-resolution control — downscale the wallpaper to 720p / 1080p / 4K to save GPU on Retina displays.
- 🚀 Launch at login — registers with
SMAppService, ready when you are.
brew install xcodegen
cd VideoWall
xcodegen generate
open VideoWall.xcodeprojPress ⌘R. The ▶ icon appears in your menu bar — click it to open the library, import a video, and hit play.
No paid Apple Developer account? You can still build and run locally. Leave the signing Team blank and disable Hardened Runtime — VideoWall runs fine on your own Mac unsigned.
Full build, signing, notarization, and distribution notes are in SETUP.md.
- Click the
▶icon in your menu bar. - In the Library tab, click Import (or drag a video file straight into the grid).
- Hit the play button on any thumbnail to set it as your wallpaper.
- Open Settings (⚙) to tune cycling, resolution, battery, and recording behavior.
| Language | Swift 6.0 |
| UI | SwiftUI + AppKit bridges |
| Media | AVFoundation / AVPlayer |
| System | ServiceManagement, IOKit |
| Tooling | XcodeGen |
| Minimum OS | macOS 15 (Sequoia) |
VideoWall/
├── project.yml ← XcodeGen spec
├── VideoWall.entitlements
├── SETUP.md ← full build & distribution guide
│
└── VideoWall/
├── VideoWallApp.swift ← @main entry point
├── AppDelegate.swift ← Menu bar, windows, orchestration
│
├── Models/ ← VideoItem, AppSettings, enums
├── Managers/ ← Wallpaper playback + video library
├── Windows/ ← Desktop-level NSWindow
├── Views/ ← Library, NowPlaying, Settings, About…
└── Components/ ← VisualEffectView, ParticleView
MIT © 2026 Max Køngerskov
Made with ♥ on macOS.