How to move windows to an external monitor automatically on a Mac
When you plug a monitor into a MacBook, macOS leaves most windows where they are, and you drag them across one by one. Sashay moves them for you. Plug in, and a list of your windows drops from the notch, ticked and ready to go.
What macOS offers
You can drag each window to the monitor. In many apps the Window menu also has a Move to item for each screen, which sends the front window across. Nothing in macOS moves a set of windows at once, or does it each time you plug in.
Fix it with Sashay
- Download Sashay, drag it to Applications and open it.
- Click Open Accessibility Settings and switch Sashay on. macOS asks for this before any app may move another app's windows.
- Plug in the monitor. About 3 seconds later a picker drops from the notch, or from under the menu bar on a Mac without one. It lists your open windows with their app icons, each ticked, with the monitor as the destination.
- Untick anything that should stay on the MacBook and click Move. The windows keep their size, and a note offers Undo.
Full-screen windows move too: Sashay takes one out of full screen, moves it and makes it full screen again on the other screen.
When you unplug, every window goes back to where it sat on the MacBook. If the monitor comes back within 20 seconds, as when a dock drops it for a moment, the windows go back onto it without the picker.
Make it automatic
- Skip the picker. In Settings, under When a display connects, set Do this to Move everything over. Wait before moving gives the monitor up to 10 seconds to settle first.
- Give apps their own rules. In Settings, under Apps, set an app to Moves with the rest, Stays on the MacBook, Goes to the external display or Never moves. Notes can stay on the laptop while Safari always goes to the big screen.
- Use the shortcuts. Control-Option-Command-E moves everything to the external display, Control-Option-Command-B moves everything to the MacBook, and Control-Option-Command-M opens the picker. You can change each one in Settings.
If it doesn't work
- The picker doesn't appear. Check that Sashay is on in System Settings, Privacy & Security, Accessibility, and that Do this isn't set to Leave windows where they are. If Accessibility is on and Sashay still asks for it, click Reset and try again in its Settings, or run
tccutil reset Accessibility ai.lfglabs.sashayin Terminal and switch it on again. - Some windows aren't in the list. Sashay moves windows on each screen's current desktop. Windows on other desktops stay where they are in this version.