Skip to content

Zonas 0.5.0

Choose a tag to compare

@pablocaviglia-uy pablocaviglia-uy released this 26 Aug 18:39
· 4 commits to main since this release

Snap windows into zones you define in a text file.

One new thing in this release, and it is a setting macOS does not have: which
screen the ⌘Tab application switcher opens on.

What is new since 0.4.2

  • You can pin the ⌘Tab switcher to a screen. If you work on a laptop next to
    a monitor, you already know this one: the application switcher decides for
    itself which screen to appear on, moves without being asked, and there is no
    setting for it anywhere in System Settings.

    The reason it drifts is that the switcher opens on the screen the Dock is
    on
    — it is a window the Dock draws — and the Dock follows your pointer to
    whichever screen you last pushed the bottom edge of. Reaching for something on
    the laptop is enough to take the switcher with it, and it stays there.

    The menu bar item gains App Switcher Screen. It lists your screens, says
    which one has it right now, and pins it to the one you pick — the switcher
    moves there as you choose it. After that, if anything drags it away, Zonas
    puts it back the next time you press ⌘, roughly a tenth of a second before you
    have finished pressing ⌘Tab. Wherever the Dock Is is the way back to
    ordinary macOS behaviour, and it is what you have until you pick a screen.

    It works by walking the pointer into the bottom edge of that screen, because
    that is the only thing macOS accepts — no private API, and no permission
    beyond the Accessibility one Zonas already needs. The pointer is somewhere you
    did not put it for about a millisecond and a half.

    Two limits, said here rather than left to be discovered. It needs the Dock at
    the bottom
    of the screen: a Dock on the left or the right cannot be moved
    between screens this way at all, and the menu tells you so instead of quietly
    doing nothing. And Zonas does not fight you for it — it corrects when you press
    ⌘, not the moment you move your own pointer.

Installing

On first launch nothing visible happens except a small grey icon appearing at
the top right of your menu bar.
There is no Dock icon. Opening it from
Applications brings up a window that explains the rest.

  1. Download Zonas
    and open the file it saves.
  2. Drag Zonas onto the Applications folder, which is what the disk image's
    window shows you. Do not run it from the disk image or from ~/Downloads:
    macOS would then ask for the Accessibility permission again on every single
    launch, forever.
  3. Open it from Applications. A window comes up explaining where it went and
    what to do; there is no Dock icon, and the app lives in the menu bar.
  4. Give it the Accessibility permission from that window. macOS does not let
    any app move another app's windows without it.
  5. Hold ⇧ Shift, drag any window, and let ⇧ go over a zone. Add ⌃ Control
    while you drag to gather several zones into one rectangle. Press to
    leave everything where it was.

Requires macOS 14 or later, on Intel and Apple Silicon.

Upgrading needs nothing: drag the new copy over the old one. Your layout file is
not touched, and the Accessibility permission survives, because it is tied to the
signing certificate rather than to the particular build. The welcome window does
not come back on an upgrade.

Known rough edges

  • One layout at a time. Multiple layouts and rules that pick a layout per
    monitor — including monitors that are not plugged in — come after that.
  • The editor cuts and moves zones. It cannot yet type exact numbers, draw a free
    overlapping zone, or manage layouts; the file does all three.
  • Starting a drag on top of a modal sheet moves the window behind it instead of
    doing nothing.
  • Pinning the ⌘Tab switcher needs the Dock at the bottom of the screen, and it
    will say so if yours is not.
  • Everything here was measured on one Mac with two screens. If something behaves
    oddly on a different multi-monitor desk, that is the most likely place for it.

Signed with a Developer ID and notarized by Apple.