Works with identical monitors
Two of the same model that share a serial number are told apart by their system UUID, then by the physical port they are plugged into, and only then by position. One layout is kept per combination of displays.
Apple has had 15 years to fix this. We stopped waiting.
Your Mac sleeps, and every window ends up on one monitor. Again. Many Displays is a menu bar app that remembers where every window lives — which display, position, size and Space — and puts everything back when your Mac wakes up, unlocks, or reconnects its displays. Even with two identical monitors.
14-day free trial · One-time purchase with one year of updates · macOS 13+, Apple Silicon and Intel
People have been reporting this to Apple since 2011. The biggest Apple Community thread has over 800 "Me too" votes. It still happens on macOS 26 and 27. Here is what they say.
"It feels like someone is walking over to your desk and moving everything around, just to annoy you."
JR1427, Hacker News
"For something like 14 years(!), this has driven me up a wall."
peterjmag, Hacker News
"It was driving me crazy to have to redistribute every time my new M1 MacBook took a nap."
EmmerEff, Apple Community
"Forgetting to do this and you're spending a minute+ re-organizing your windows. Such an annoyance for such an expensive machine."
davidandora, Apple Community
"I've had this problem for years with pre-M1 MacBooks and shockingly the M1's have still not fixed the problem."
betaclone, Apple Community
"I have this issue for years now so that I am not noticing anymore."
milkers, Hacker News
Apple's reply to the bug report, as quoted by the person who filed it: "This issue behaves as intended."
That is why this app exists. Read every workaround people have tried, or skip them all:
Your Mac sleeps, locks, or you unplug a dock. When the displays come back, macOS piles every window onto one monitor — and with two identical monitors it often swaps them, because they share the same serial number and macOS cannot tell them apart. Apple has not fixed it. You spend the first minute of every session dragging windows around.
It sits in the menu bar and stays out of the way. You should never need to open it.
Two of the same model that share a serial number are told apart by their system UUID, then by the physical port they are plugged into, and only then by position. One layout is kept per combination of displays.
Other tools ask every app for every window through Accessibility, which is slow and stalls when one app stops responding. Many Displays reads the window server's list instead: around 20 ms for hundreds of windows, without talking to any app.
If macOS swapped left and right, changed the main display, resolution, refresh rate, rotation or HDR, or turned on mirroring after a reconnect, each one is put back before the windows. Can be turned off in the menu.
Moves and resizes are saved within about 1.5 seconds, event-driven, no polling. The moment the Mac locks, sleeps or a display disconnects, saving freezes so the pile-up is never recorded.
While windows move, the screens get a soft blur with a countdown, so you are not watching windows jump around. It only appears when something actually needs to move and never stays longer than 10 seconds. Optional.
No network access, no analytics, no account. Your layouts stay in a JSON file in your Library folder. The source is MIT-licensed on GitHub, so you can read exactly what it does.
When you move, resize, open or close a window, the layout is saved within about 1.5 seconds, plus a light check every 20 seconds. With the MacBook alone and no external displays it goes idle: no observers, no timers.
On lock, sleep, display sleep or a reconnect, saving stops. Whatever macOS does to your windows in the meantime is ignored, and the last good layout is kept.
Once the displays have been steady for a few seconds, the arrangement is fixed first, then every window goes back in several quick passes, because macOS keeps nudging windows for a while. For three minutes afterwards, changes nobody asked for are undone instead of saved.
You have tried the settings, the cables, maybe a dummy plug. Apple is not going to fix it. Install Many Displays once, forget it is there, and never drag a window back across the desk again. Free for 14 days, no account. Then one purchase for up to 3 Macs, with one year of updates; after that, the last version released during your year keeps working forever.
The app makes no network connections and has no analytics. It only talks to the update server when you choose "Check for Updates…" or have automatic update checks turned on, and to the licence server once, when you enter your key. Read the privacy policy.
Yes, that is the case the app was built for. macOS identifies displays by vendor, model and serial number, and many monitors ship with the same serial (0 or 0x01010101), so two identical screens look the same to macOS and it shuffles them after every sleep. Many Displays tells them apart by their system UUID, then by the physical port they are plugged into (on Apple Silicon), and only then by position. If macOS swapped the arrangement, it is put back before the windows.
It remembers the Space, but since macOS 14.5 Apple blocks moving other apps' windows between Spaces unless System Integrity Protection is disabled, so the app does not do it. In practice, with "Displays have separate Spaces" turned off, sleeping does not change a window's Space, only its display, which is what gets restored. If a window ends up on a different Space, the menu says so. Some apps hide their off-Space windows from Accessibility; those are restored the moment you switch to their Space.
Download the app and use everything for 14 days. No account, no card. After that it asks for a licence key, which you get by email right after buying.
One licence is for one person on up to 3 Macs. It includes every update released in the year after your purchase. When that year ends, the last version you are entitled to keeps working for as long as you like; buying again only matters if you want newer versions. There is a 14-day money-back guarantee. See the terms.
The code is MIT-licensed and you are welcome to build it yourself with Xcode. Paying gets you the signed and notarized build that opens without warnings, automatic updates, and support by email. It is also how the project is funded.
With no external displays the app goes idle and never touches your windows. Layouts are kept per combination of displays, so your desk setup and your lid-open setup are remembered separately. If undocking leaves the built-in screen at a wrong resolution, the last known good mode is restored.
No. Windows you closed while away are never reopened, and new windows are left alone and tracked from then on.