Zonogy

Exceptions

Apps don’t always expose enough information for Zonogy to make the right choices about which windows to manage and how. To handle the gap, Zonogy includes an exceptions system, accessible through Preferences > Exceptions, and a configuration .json file.

By default Zonogy manages a window only if it has a standard AX window role, exposes a zoom button, is at least 250px tall, and is movable. Most exceptions either loosen one of these checks for a specific app, or tighten behavior to handle an app’s quirks.

The exceptions list

Each row is one app, keyed by bundle identifier (e.g. com.apple.Dictionary). Add picks from the eligible running apps; double-click a row to edit. Reveal Config File icon (bottom on window) opens ~/Library/Application Support/Zonogy/config.json; edits to that file take effect the next time you open Preferences.

Exceptions preferences tab

Per-app options

Double-clicking a row opens the editor sheet for that app:

Per-app exception editor

Ignore this application altogether. Windows from this app are never managed.

Loosening or tightening eligibility

Adjusting placement and resize

Other

Editing config.json directly

The UI covers the common cases; the underlying config.json is the source of truth and supports a few fields the UI doesn’t expose (such as deriveBundleIdFromPathForProcesses for Java apps). See the Configuration section of SPECIFICATION.md. When figuring out why a particular window isn’t being managed, Zonogy logs which eligibility checks each candidate passed or failed.