How can I span wallpapers over two monitors in Mac OS X?

Is there any way to get a single wide desktop wallpaper to span a dual monitor setup in OS X?

1

5 Answers

Without splitting the image by hand into two halves (one for each monitor)? Not currently.

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

  1. Make a directory for your images -mkdir -p ~/Library/Desktop\ Pictures/Catalina\ {Left,Right}

  2. 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

  3. If you're just wanting a static background you can skip to step 7 (left image will be Catalina0.<ext> and right will be Catalina1.<ext>)

  4. 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 with brew install grep—it will be installed as ggrep by default.
  5. 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
  6. 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

  7. Now just add the files as desktop backgrounds (open ~/Library/Desktop\ Pictures will open the directory in Finder.app for you)

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!

4

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).

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like