How to Automatically Apply Window Layouts on Mac at Specific Times (and When Monitors Change)
Layoutish lets you schedule window layouts by time and day, and apply them automatically when a monitor connects - no manual setup each morning.
macOS has no way to schedule window layouts or apply them automatically when your monitors change. Layoutish fills both gaps: you can save a layout for your desk setup and have it apply the moment your external displays connect, then schedule a different layout for 9 AM every morning - all without touching the keyboard.
Why macOS can't do this on its own
macOS does remember some window positions between restarts, but that memory is per-app and unreliable. There is no concept of a named layout, no trigger that fires when a monitor connects, and no scheduler. Stage Manager and native tiling (added in Sequoia) handle how windows divide the screen in the moment - they don't save a configuration and restore it later. If you undock a MacBook and plug it back in, your windows land wherever macOS decides, usually not where you left them.
The frustration compounds on multi-monitor setups: a 27-inch display on the left, an ultrawide in the middle, the laptop lid closed. When everything reconnects in the morning, Slack might be on the wrong screen, Xcode might be resized, and the terminal that was filling the bottom-right quarter has moved. You spend the first five minutes of the day dragging windows back into place.
How Layoutish's display profiles work
Before scheduling makes sense, display profiles are worth understanding - because the two features work together.
A display profile in Layoutish is a named set of displays, such as your laptop alone, or your laptop with a desk monitor. A profile can apply a layout by itself when those displays connect.
This means:
- Desk (27" + ultrawide + lid closed): your code editor, browser, Slack, and terminal snap to their places automatically when everything is plugged in.
- Laptop only (lid open, no externals): a separate layout applies the moment you unplug - one column of windows sized for a 14-inch screen.
- Presentation (laptop + projector): a third layout with only the apps you want visible.
A profile matches the same monitors by their names and full resolutions, so changing the text size in System Settings › Displays doesn't stop it from matching. And it only applies the layout when the display configuration actually changes - connecting a USB drive or waking from sleep without plugging in a monitor won't trigger anything.
You can also save or apply one monitor at a time, which is useful when you want to manage one screen's layout independently without disturbing the others.
How time-based scheduling works
On top of display profiles, Layoutish lets you schedule layouts to apply at specific times on specific days - separate from any monitor trigger.
The typical use case: your 9 AM layout has your email client, calendar, and Slack front-and-centre for the morning standup. Your 10 AM layout replaces that with your code editor taking up most of the screen. At 5 PM, a third schedule can switch you to an evening layout.
Setting a schedule in Layoutish takes about thirty seconds:
- Save a layout with the windows positioned the way you want.
- Click the Layoutish icon in the menu bar, click Schedule, and turn on Auto-Switch Layouts (it's off until you turn it on).
- Click Add Schedule, type a name, choose the layout, set the start and end times (24-hour clock, minutes in steps of 5), pick the days it runs on, and click Add.
A schedule applies its layout once, when its time starts. If two schedules cover the same time, the one higher in the list is in charge, and when it ends the next one takes over and applies its layout.
Combining both: the morning dock-and-go workflow
A common setup is the docking-station workflow. You work from a laptop. In the morning you plug into a dock with two external monitors. At some point during the day you take the laptop to a meeting, or just work from the couch. In the evening you plug back in.
With display profiles alone, plugging in already restores your layout. But if you also want certain layouts to apply at specific times - say, a focus layout at 9 AM regardless of which monitor configuration you're in - you can layer a schedule on top.
Layoutish handles both triggers independently: a display profile applies its layout when those displays connect, and a schedule applies its layout when its time starts.
What happens to apps that aren't open when a layout restores
This is a detail that trips people up with simpler window managers: if an app that was open when you saved the layout is now quit, most tools skip it silently.
Layoutish's approach: with Launch Apps on Restore turned on in Settings, the layout's apps that aren't running are opened first, and their windows go back where they were. If the app is already running but its windows aren't in the right position, Layoutish moves them.
Apps you've hidden stay hidden through a restore. Closed Finder windows open again at their folders (on macOS 27 this uses the Automation permission for Finder). Windows from Electron, Qt and GPU-rendered apps, such as Slack, Discord and Visual Studio Code, are put back too.
What Layoutish needs to do all of this
One permission: Device Control and Data Access (called Accessibility before macOS 27). That's it - no Screen Recording, no admin password, no background agent to install. On macOS 27, it also asks for Automation permission if you save a layout that includes Finder windows.
Requirements: macOS 13.5 (Ventura) or later, Apple Silicon and Intel.
A note on layout shortcuts: if you'd rather restore a layout with a keyboard shortcut than wait for a trigger, the shortcut needs ⌘ or ⌃, and function keys work on their own. Since macOS 15, macOS refuses shortcuts that use only ⌥.
Is there a free way to do any of this?
Honestly, no. Rectangle is excellent for basic snapping and is genuinely worth trying if all you need is drag-to-edge resizing. But it has no concept of saved layouts, no display profiles, and no scheduler. Magnet is similar. Native Sequoia tiling adds edge-snapping and a tiling menu, but it doesn't save or restore named configurations and has well-documented bugs with multi-monitor setups.
If your problem is specifically that windows scatter when you dock and undock, or that you want a consistent layout every morning without thinking about it, those features don't exist in any free tool I'm aware of. Layoutish is $9.99 once, with a 7-day free trial and no card required - a reasonable test before buying.
The broader comparison between Layoutish, Rectangle, and Magnet is covered in more depth in Layoutish vs Rectangle vs Magnet.
If you're also dealing with windows resetting when your external display connects, this post on the docking-station problem walks through the exact sequence of events that scrambles your layout and how automatic restore fixes it.
Common questions
Does Layoutish apply layouts when the Mac wakes from sleep, or only when monitors connect?
Display profile triggers fire on monitor connection and disconnection, not on every wake from sleep. If you wake from sleep with the same monitors connected as before, no layout fires automatically. If your Mac sleeps through a schedule's start time, its layout is applied when the Mac wakes, if the schedule is still running.
Can I have a different layout on each monitor independently, without affecting the others?
Yes. Layoutish lets you save or apply one monitor's layout at a time. This is useful when you want to rearrange one display without disturbing the window arrangement on the others.
What happens if I update a layout - does the schedule reset?
No. Layoutish lets you update a layout in place, keeping its name, icon, shortcut, excluded apps, display profiles and schedules. The update replaces only the window positions and app list.