MacWindowZone icon

MacWindowZone

Native macOS clone of Windows FancyZones. Define zones on every display, snap any window into them, and have windows return to their zones the next time they open.

Free & open source macOS 14+ Apple Silicon & Intel Pure Swift / AppKit No telemetry

What it does

Everything you'd expect from a FancyZones-style window manager, plus a few macOS-specific touches.

Per-display zone editor

Translucent overlay over every screen. Draw, move, resize, split and delete zones with the mouse.

Layout templates

Focus, Halves, 3 Columns, 2/3 Rows, 2×2 Grid, 3×3 Grid, Priority Grid. Pick a different layout per screen.

Shared-edge resize

Drag a divider between two zones and both resize together. Smart delete fills the gap with adjacent neighbours.

Snap by hotkey

⌃⌥1 through ⌃⌥9 snap the focused window to zone 1…9 on its current screen.

Snap by drag

Hold the configured modifier (default ⇧ Shift) while dragging a window. Drop into a zone — done.

Window memory

Recurring apps + window titles return to their assigned zone automatically the next time they open.

Configurable gap

Add visual breathing room between snapped windows. Default 4 pt, presets 0–24 pt, or a custom value.

Browser-safe

Chrome, Edge, Brave, Safari, Firefox, Arc, Opera, Vivaldi are excluded from auto-restore by default — their own session restoration stays intact.

Launch at login

Modern SMAppService-based toggle. Live status indicator in the status-bar menu.

Status-bar only

No Dock icon, no persistent main window. Lives quietly in the menu bar until you need it.

Install in 30 seconds

  1. Download the .zip matching your Mac (run uname -m to check — arm64 for Apple Silicon, x86_64 for Intel).
  2. Unzip and drag MacWindowZone.app into /Applications.
  3. Launch it. macOS will ask for Accessibility access — required to move and resize other apps' windows.
  4. Open System Settings → Privacy & Security → Accessibility, find MacWindowZone and toggle it on. No relaunch needed — the app detects the grant automatically.

Cheatsheet

Every gesture in one screen.

Editing zonesFrom the menu bar — click Edit Zones…
Create a zoneClick + drag on empty area
Move a zoneDrag inside it
Resize a zoneDrag an edge or corner (adjacent zones move with it)
Split vertically⇧ Shift + click inside a zone
Split horizontally⌃ Control + click inside a zone
DeleteSelect, then Delete (neighbours absorb the space)
Reset current screen⌘ Cmd + R
Exit editorEsc or click the Done button
Snapping windows
Snap focused window⌃ Ctrl + ⌥ Opt + 1 through 9
Snap by dragHold ⇧ Shift, drag a window, drop into a zone
From menuSnap Focused Window ▸ [screen] ▸ [zone]

Questions

Why does it need Accessibility access?

To move and resize other apps' windows we use macOS' Accessibility API. That's the only way to drive windows of apps we didn't write ourselves. No keystroke or screen capture happens.

Does it send any data anywhere?

No. Zero network requests. Everything (zone definitions, window memory) lives in ~/Library/Application Support/MacWindowZone/.

Why are browsers skipped from auto-restore?

Attaching AX observers and calling setFrame on a browser during its startup can disrupt its own tab/session restoration. Manual snap (hotkey, Shift+drag, menu) still works for browsers — only the silent auto-restore is opted out.

The download triggers an "unidentified developer" warning. Is it safe?

The builds are ad-hoc signed (no paid Apple Developer ID). Right-click the app → Open the first time to bypass Gatekeeper, or build from source — the project is small enough to read end-to-end.

I want to contribute / report a bug.

Open an issue or a pull request. The main branch is protected — PRs only.

What's the license?

MIT. Do whatever you want with it.