About Spanpaper X-Leg Calculator

Spanpaper

Create wallpapers that span perfectly across multiple monitors with different resolutions, scaling settings, and physical sizes.

Example on my Setup:

Transformed output
Transformed by spanpaper
Setup result
Applied on my setup (I Need to buy monitors with matching colors...)
Windows mode selected.

Configuration Guide

Configure Monitors from LEFT to RIGHT

Resolution
Your monitor's resolution. Choose a preset or enter pixels manually.
Size (inches)
The physical size of your monitor in inches (diagonal measurement).
Aspect Width and Height
The aspect ratio of your monitor (e.g., 16 and 9 for a 16:9 display).
Bottom Offset
The physical offset to the lowest monitor in inches. Set the lowest monitor to 0, and others to how much higher their bottoms are.
Gap after monitor
The size of the gap between this monitor and the next one in inches.
Windows Display Info

For the wallpaper to line up cleanly where two monitors meet, this tool needs to know exactly how your monitors sit next to each other, specifically, how many pixels each one is shifted up or down compared to the others. Windows lets you drag monitors into place in Display Settings, but it doesn't snap them to a clean alignment: nearly every setup has a small vertical offset between monitors that you can't spot by eye. Pasting the script output below gives the tool those exact numbers, so the image doesn't break or skip where your monitors meet.

Open PowerShell and paste this command:

# Tell Windows to report real per-monitor pixels (not DPI-scaled values),
# then list each monitor's resolution and virtual-desktop position as WxH+X+Y.
Add-Type '[System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool SetProcessDpiAwarenessContext(System.IntPtr v);' -Name D -Namespace W
[W.D]::SetProcessDpiAwarenessContext([System.IntPtr]::new(-4)) | Out-Null  # -4 = PER_MONITOR_AWARE_V2
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Screen]::AllScreens | %{ "$($_.Bounds.Width)x$($_.Bounds.Height)+$($_.Bounds.X)+$($_.Bounds.Y)" }

Paste the output into the "Windows Display Info" field below. It will look something like:

2560x1440+0+720
3840x2160+2560+0
1920x1080+6400+1080

Applying the Wallpaper

Windows Setup

  1. Right-click your desktop and select Personalize > Background
  2. Select the generated wallpaper image
  3. Set "Choose a fit" to Span

About

Everything happens in your browser, your images never leave your device. The setups are saved locally in your browser.

If you are intrested in how this works, check out the github link down below. Its a python script that does the exact same the Linux X11 varaints do. I plan to add the windows version there as well sometime..., windows handles scaling a bit different so the python script wont work on windows yet.

View on GitHub

Configure Your Setup

Configure your monitors from left to right. Start with your leftmost monitor and add additional monitors in the order they appear on your desk.

Monitor 1

Monitor 2

Raw Wallpapers
Drag and drop your images here or click to select