Zonogy is a zone-based window manager for macOS. (The name suggests “the origin or formation of zones.”) Zonogy is free and open source (MIT license).
Zonogy divides each screen into persistent tiling zones plus a floating zone. At any time, one zone is the destination for the next window. A keyboard-driven Launcher and hover-over DockMenus let you quickly find any window. Window arrangements can be snapshotted and restored to switch working contexts.
Philosophy: An intentional place for every window.

Zonogy rethinks multiple aspects of the operating system UI, including window management, virtual desktops, application/window launching, and interacting with the Dock.
Window management: To tame window clutter, Zonogy defines non-overlapping tiling zones for holding windows. Zones persist even when empty, so the layout stays stable. An additional floating zone on each screen can float a window above others without disrupting the tiling zones.
Comparison with auto-tiling window managers (e.g., yabai, Amethyst, AeroSpace): Automatic tiling can feel twitchy because every time you open, close, or minimize a window, the entire layout reflows to fill the screen. These tools also force all available space to be filled, even when windows have a natural maximum size. Instead, Zonogy “reserves space” for additional windows.
Virtual desktops: Virtual desktops like macOS’s built-in Spaces have a limitation that a window can only belong to one space, yet the same window often belongs to more than one task. With Zonogy’s WinShot snapshots, you can save and restore different window arrangements that could share the same windows.
Application/window launching and switching: Most launchers and Spotlight let you switch to an application, or a specific document, but not a specific window. Zonogy’s CmdTab replacement allows fast switching between recent windows across all applications. DockMenus lets you hover over any Dock icon to pick a specific window of that app, or just click the Dock icon to open the app’s “main” or most recently used window. The Launcher lets you switch to any app in a few keystrokes, or drill down into an app and search its windows by title. The Launcher also allows general shortcuts to files and folders with optional aliases (search keywords), and learns over time.
Drag and drop is woven throughout: Windows can be dragged between zones. An app can be dragged from the Dock to a zone to open it there, and similarly for documents or URLs. Items can be dragged onto the New Zone Bar or Floating Zone Bar (along screen edges) to place them in a new tiling zone or the floating zone.
Multi-screen setups are first-class and each screen gets its own independent set of zones and snapshots. Zonogy also handles native macOS tabs and full-screen windows.
Zonogy lives in the macOS menu bar. Click the Zonogy icon 
Each screen has 1–4 tiling zones that form the main layout, plus a floating zone for floating a single window above the tiles. Empty tiling zones show a “placeholder” so you can see the structure of your layout and drag content into them. Zones can be resized by dragging the separator between them (which appears on mouse hover), and the windows adjust automatically. See Resizing Zones vs. Windows for more detail.
Exactly one zone is the destination at any moment, indicated by a glowing indicator. New or unminimized windows are always placed into the destination zone.
Filling the destination tiling zone advances to the next empty tiling zone, or the floating zone if no zone is empty. Emptying a tiling zone makes it the destination automatically. You can also make any tiling zone the destination with Control-Cmd-click.
Control-Cmd-Space) — a searchable overlay for switching windows, launching apps, and opening folders or documents. Fuzzy matching with smart ranking: it learns which items you pick for each query and prioritizes them next time. Supports optional short aliases for quick access. The Launcher appears directly in the destination zone where the window will appear — including automatically when a zone is emptied, so you can immediately place the next window there. Hold Option while selecting an app row to open a new window of that app instead of activating the existing one.

Cmd-Tab) — a fast window chooser replacing the macOS app switcher. Hold Cmd and tap Tab to cycle windows ordered by recency. The chooser appears directly in the destination zone where the window will appear.
Control-Cmd-/ to save, Control-Cmd-Tab to browse) — save and restore entire window arrangements and zone layouts; snapshots can also be saved automatically (configurable in Preferences). A visual timeline chooser lets you scrub through past snapshots.

Control-Cmd-Arrows, hold) — each arrow press hops a blue dot to the nearest window in that direction; release to focus it. Zonogy’s geometric arrangement of windows makes directional navigation unambiguous.| Gesture | Action |
|---|---|
| Click New Zone Bar (on screen edge — right by default, per the zone layout) | Add a tiling zone on that side |
| Click Floating Zone Bar (on bottom edge of each screen) | Set the floating zone as destination; click again (or double-click) to open the Launcher there |
Control-Cmd-click anywhere in a zone (even if zone is occupied) |
Set that zone as destination; double-click also opens the Launcher |
| Drag resize bar between zones (appears on hover) | Adjust zone proportions live |
| Drag window → tiling zone | Move it there, swapping if occupied |
| Drag window → New Zone Bar | Add a zone and place the window in it |
| Drag window → Floating Zone Bar | Float the window above the tiles |
Hold Control-Cmd during window drag |
Promote between tiled and floating zone |
| Drag file or URL → empty zone or New Zone Bar | Open it there in the default app |
Hold Control-Cmd during file or URL drag |
Replace zone occupant with the dragged item opened in default app |
| Drag Dock icon or DockMenu window → zone | Place that window there (or launch the app) |
Hold Option while dragging a Dock icon, DockMenu window, or Launcher app row |
Drop on a zone opens a new document/window of that app there (as if Cmd-N pressed) |
Tip: Most default Zonogy shortcuts use
Control-Cmdas the modifier. See Additional Suggestions below for using Karabiner-Elements to remapCaps LocktoControl-Cmd.
| Shortcut | Action |
|---|---|
Control-Cmd-= |
Add a zone |
Control-Cmd-- |
Remove zone (preferring empty, keeping current window open) |
Control-Cmd-0 |
Collapse to one zone (same as pressing remove zone repeatedly until one tiling zone remains) |
Cmd-M |
Minimize active window; with Launcher open, Cmd-M or Cmd-W removes the zone (so Cmd-M twice = minimize + remove zone, and Cmd-W twice = close + remove zone) |
Cmd-Tab |
CmdTab window switcher (Cmd-\` cycles current app’s windows) |
Control-Cmd-/ |
Save WinShot snapshot |
Control-Cmd-Tab |
Browse WinShot snapshots |
Control-Cmd-H/J/K/L |
Change destination zone (Vim keys: left/down/up/right) |
Control-Cmd-Arrows (hold) |
Focus a window: arrows move a dot across windows, release to focus |
Control-Cmd-\ |
Toggle destination with focused window |
Control-Cmd-Return |
Focus the destination zone’s window |
Control-Cmd-Space |
Open Launcher in destination zone |
Control-Cmd-Escape |
Clear zones on active screen (optionally automatically saving snapshot). Pressing twice resets to single-zone layout. |
Zonogy-<version>.dmg from the latest release, open it, and drag Zonogy into Applications. The app is signed and notarized.Apps don’t expose enough information for Zonogy to always make the right choices about which windows to manage and how. The Exceptions tab of Zonogy Preferences lets you add per-app overrides.
Remove the Zoom button floating menu; we won’t use the Zoom button for anything other than making the window full-screen.
$ defaults write -g NSZoomButtonShowMenu -bool no
$ # to bring it back:
$ defaults delete -g NSZoomButtonShowMenu
Control-Cmd as the modifier. Using Karabiner-Elements to remap Caps Lock to Control-Cmd is very convenient. The config I use sets this up, with the bonus that tapping Caps Lock on its own opens the Launcher.Zonogy is developed with Claude Code and Codex, following a specification-driven approach. The SPECIFICATION*.md files in the repo serve as the single source of truth for behavior and double as detailed documentation — see them for a much more extensive description of Zonogy’s functionality than this README covers.
My day job is teaching and research at UT Austin, but better UI is a passionate hobby. I originally built Zonogy for myself and decided to share it in case others find it useful. The project is unapologetically opinionated and reflects how I work. Of course, Zonogy is open source, and contributions, experiments, and personal forks are all welcome.