Zonogy

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.

Hero screenshot, showing various features of Zonogy

Contents

Overview

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 Zonogy menu bar icon to open Preferences or to quit Zonogy.

Core Concepts

Zones

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.

Zones core concepts

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.

Features

LauncherLauncher Preferences window

CmdTab

WinShot Chooser

DockMenus

Mouse Controls

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)

Default Keyboard Shortcuts (configurable)

Tip: Most default Zonogy shortcuts use Control-Cmd as the modifier. See Additional Suggestions below for using Karabiner-Elements to remap Caps Lock to Control-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.

Installation

  1. Download Zonogy-<version>.dmg from the latest release, open it, and drag Zonogy into Applications. The app is signed and notarized.
  2. On first launch, Zonogy opens Preferences to walk you through granting Accessibility (necessary) and Screen Recording Permissions (optional for WinShot snapshots).
  3. Zonogy checks for new versions automatically (unless turned off). To update, replace the app with the freshly downloaded version; permissions carry over.

Requirements

Limitations

Per-App Exceptions

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.

Additional Suggestions

Development

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.

History

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.