A native macOS menu bar app that sets your desktop wallpaper to a different impressionist painting each day, displayed on museum-style mats.
easelwall.com · Free via Homebrew & direct download · $3 on the Mac App Store
Homebrew:
brew install ntindle/easelwall/easelwall
Direct download: Latest DMG from GitHub Releases
- Museum-style mats — Each painting is presented on a soft cream mat with gallery-style spacing and a subtle shadow. Configurable color and padding.
- Orientation aware — Landscape paintings go on landscape monitors, portrait paintings on portrait monitors. Automatic detection on plug/unplug.
- Unique per display — Optionally show a different painting on each monitor.
- Daily rotation — Pseudo-random selection with no repeats until the full cycle completes. Swaps at midnight (configurable).
- Set & forget — Lives in your menu bar. Launch at login via SMAppService. launchd agent wakes the app even after reboot or sleep.
- Control Center widget — macOS Tahoe (26+) gets a native "Next Painting" button in Control Center.
- 53 paintings from Van Gogh, Monet, Renoir, Cezanne, Degas, Cassatt, and Seurat. 30 bundled for offline use, more fetched at runtime.
- Expand the collection — Add Dutch masters via optional Rijksmuseum API key in Settings.
- Localized — English, Spanish, French, German, Japanese, Chinese (Simplified), Portuguese (Brazil), Dutch.
Coming soon — see the website for a preview of the desk setup with 3 monitors.
Requirements: macOS 14+, Xcode 16+, XcodeGen
# Generate the Xcode project from project.yml
brew install xcodegen
xcodegen generate
# Build
make build
# Release build + DMG
make release
make dmgThe .xcodeproj is gitignored — it's generated from project.yml.
Sources/
EaselWall/
App/ — SwiftUI app entry point, AppDelegate
Models/ — Painting, AppSettings
Services/ — WallpaperManager, ScreenManager, MatRenderer,
PaintingStore, LaunchdScheduler
Views/ — MenuBarView, SettingsView (sidebar layout)
API/ — MuseumAPIClient (AIC, Met, Rijksmuseum)
Resources/ — Localizable.xcstrings
ControlWidget/ — macOS 26+ Control Center widget
Shared/ — AppIntents (shared between app + widget)
Resources/
Paintings/
catalog.json — 53 paintings with metadata + image URLs
images/ — 30 bundled JPEGs for offline use
All paintings featured in this application are by artists who died over 100 years ago. Their works are in the public domain worldwide under all applicable copyright regimes.
Featured artists include Vincent van Gogh (d. 1890), Claude Monet (d. 1926), Pierre-Auguste Renoir (d. 1919), Paul Cezanne (d. 1906), Edgar Degas (d. 1917), Mary Cassatt (d. 1926), and Georges Seurat (d. 1891).
Digital reproductions of two-dimensional public domain artworks do not create new copyrights under U.S. law. This principle was established in Bridgeman Art Library, Ltd. v. Corel Corp., 36 F. Supp. 2d 191 (S.D.N.Y. 1999), reinforced in Meshwerks, Inc. v. Toyota Motor Sales U.S.A., Inc., 528 F.3d 1258 (10th Cir. 2008), and codified in Article 14 of EU Directive 2019/790 (DSM Directive).
All artwork images are obtained under CC0 1.0 Universal public domain dedications:
| Institution | License | Attribution Required |
|---|---|---|
| Art Institute of Chicago | CC0 1.0 | No |
| The Metropolitan Museum of Art | CC0 1.0 | No |
| Rijksmuseum | CC0 1.0 / PDM | No (but see API terms) |
Per the Rijksmuseum API Terms of Use, this application was developed using the Rijksmuseum API. Rijksmuseum collection images are credited as "Rijksmuseum Collection."
This application is not affiliated with, endorsed by, or sponsored by any museum or cultural institution. If you believe any image has been included in error, please open an issue.
Business Source License 1.1 — Source-available. Converts to Apache 2.0 on 2030-04-13.