Multi-monitor wallpaper generator for macOS. Composes multiple images into centered, horizontally-laid-out collages — one per monitor.
- macOS (uses AppleScript to apply wallpapers)
- Python 3.x
pip install -r requirements.txtOr with uv:
uv syncLoad an image into the library:
python -m src.cli load /path/to/image.jpgSupported formats: JPG, PNG, TIFF, BMP, WebP
Generate wallpapers for all detected monitors:
python -m src.cli generate # one wallpaper per monitor
python -m src.cli generate 5 # five wallpapers per monitorApply a wallpaper to your desktop:
python -m src.cli applyPicks a random wallpaper from each monitor's output folder and sets it via AppleScript.
Images are stored in images/. When you run generate, the app:
- Detects all connected monitors via
screeninfo - For each monitor, maintains an independent image pool that persists across cycles — images used in one cycle are removed so subsequent cycles get different images, resetting only when the pool is exhausted
- Selects images using a hero + greedy fill algorithm (see below)
- Composes selected images onto a black canvas, scaled to fit monitor resolution, centered both horizontally and vertically, with 20px gaps between images
- Saves output to
output/<width>x<height>_<monitor>/as a JPEG
For each monitor canvas:
- Randomly samples ~20% of the available image pool
- Picks a random hero image; if it fills less than 50% of the canvas width, picks a second hero from the remaining space
- Greedily fills remaining space with the narrowest images first
- Repeats until the canvas is at least 90% filled
This produces varied, non-repeating collages across multiple generate runs.