Is there any way to get a single wide desktop wallpaper to span a dual monitor setup in OS X?
5 Answers
Without splitting the image by hand into two halves (one for each monitor)? Not currently.
The Mac App Store app Multi Monitor Wallpaper worked perfectly for me, despite my rather unusual display configuration:
- MacBook Pro (2017, 15")
- Four external monitors (5 total monitors)
- Combination of retina (built-in screen) and non-retina (all 4 externals) displays
- 4 of the monitors are side-by-side, while the 5th is positioned on top of (above) the others
- One of the external monitors is in portrait orientation (other 4 in standard landscape orientation)
Multi Monitor Wallpaper shows you an outline of your combined monitor layout, and allows you to stretch / zoom / reposition your selected image across the monitors.
It then automatically handles cutting up the image and setting it as the background image for each monitor.
I have no affiliation with the app; I'm just a fan!
-
-
-
1Disgusting, and hilarious at the same time. Nobody needs to be paying a subscription for putting an image on the background of their desktop. Absurd.– VolteJul 17, 2021 at 17:14
-
It $16/year now. I agree, it's absurd to pay a subscription for setting a wallpaper. Jul 18, 2021 at 5:02
Their is a program called Multiscape that would automatically do what Chealion explained by getting your screen dimensions and automatically sizing and splitting the wallpaper. Although the google code page is down. If you want to go on a treasure hunt Multiscape is what you're after.
Adding a follow up here so it ends up on the google indexes. I have a way to make this work for static and dynamic backgrounds using some open source tools
Prerequisites
- You'll need Homebrew unless you're ready to do a lot of
./configure && make && make install
- The base prereq: imagemagick >= 7.0.8-50 (i.e.,
brew install imagemagick
) - For dynamic desktops you'll need Xcode (App Store), wallpapper, and jq (i.e.,
brew tap mczachurski/wallpapper && brew install wallpapper jq
)
Steps: I'm using Catalina.heic
and .tiff
outputs for an example here but it can be any image format for inputs and output
Make a directory for your images -
mkdir -p ~/Library/Desktop\ Pictures/Catalina\ {Left,Right}
Extract the right and left images (left will be zero or even, and right will be odd) -
convert /System/Library/Desktop\ Pictures/Catalina.heic -crop 2x1@ +repage ~/Library/Desktop\ Pictures/Catalina%d.tiff
If you're just wanting a static background you can skip to step 7 (left image will be
Catalina0.<ext>
and right will beCatalina1.<ext>
)We need to extract the azimuth and altitude from the original image (technically you could use mp4box but it's overkill) -
cd ~/Library/Desktop\ Pictures; cat /System/Library/Desktop\ Pictures/Catalina.heic | grep -aoP '(?<=apple_desktop:solar=")[^"]+' | base64 -d | plutil -convert json -; cd -
- If this command fails, you may need to install GNU Grep to handle the
-P
option. Install withbrew install grep
—it will be installed asggrep
by default.
- If this command fails, you may need to install GNU Grep to handle the
We need to convert the output to something that wallpapper understands
- Right:
cat ~/Library/Desktop\ Pictures/\<stdin\> | jq '.ap.d as $d|.ap.l as $l|.si|map({fileName:"Catalina\((.i*2)+1).tiff",altitude:.a,azimuth:.z})|(.[$d]["isForDark"]=true)|(.[$l]["isForLight"]=true)|(.[0]["isPrimary"]=true)' > ~/Library/Desktop\ Pictures/right.json
- Left:
cat ~/Library/Desktop\ Pictures/\<stdin\> | jq '.ap.d as $d|.ap.l as $l|.si|map({fileName:"Catalina\(.i*2).tiff",altitude:.a,azimuth:.z})|(.[$d]["isForDark"]=true)|(.[$l]["isForLight"]=true)|(.[0]["isPrimary"]=true)' > ~/Library/Desktop\ Pictures/left.json
- Right:
Now we can just get wallpapper to create the files we need:
for side in Left Right; wallpapper -i ~/Library/Desktop\ Pictures/${side:l}.json -o ~/Library/Desktop\ Pictures/Catalina\ ${side}/Catalina.heic
Now just add the files as desktop backgrounds (
open ~/Library/Desktop\ Pictures
will open the directory in Finder.app for you)
-
Doesn't seem to work with the
.madesktop
format Apple is using these days (step 2 givesconvert: must specify image size `/var/folders/19/dj4gh90n7vl9578xxdt0h5mm0000gp/T/magick-u-7BuFCGfDWsXoVnj53eab7CUGrNV54y' @ error/mvg.c/ReadMVGImage/186.
). Do you have an idea on how to deal with.madesktop
wallpapers? Jul 28, 2022 at 17:00
Adding to this thread for future folks who land here from search. I found this reddit post which lists some options. Notably:
- Fresco - free on Mac app store. I tried it and it worked well.
- Superpaper - Open source and cross-platform (though it says it hasn't been tested on Mac, I didn't try).