Releases: pablocaviglia-uy/zonas
Release list
Zonas 0.7.0
Snap windows into zones you define in a text file.
One new thing in this release: the keyboard. Hold ⌃⌥ and press an arrow,
and the window you are working in moves to the zone in that direction. Nothing
in your layout file needs to change.
What is new since 0.6.0
-
⌃⌥ with an arrow moves the front window between zones. ⌃⌥→ sends it to
the zone on its right, ⌃⌥← to the one on its left, ⌃⌥↑ and ⌃⌥↓ up and down.
⌃⌥↩ fills the screen — the same Maximised the top edge offers — and
⌃⌥Z snaps the window into the zone it is already over. The keys are taken
from the application in front, so ⌃⌥→ moves the window rather than also moving
the cursor a word.Where an arrow sends a window depends only on where the window is. There
is no cycling: pressing the same key from the same place always gives the same
result, whatever you pressed before. → goes to the nearest zone to the right
that is beside the window — a line from the window's middle runs into it, or
the window is tall enough to cover it. When a window is beside several zones
at once, say a full-height column next to two stacked ones, the top one
wins; for ↑ and ↓, the leftmost. Reading order, whichever row you came from.
If nothing is beside the window in that direction, the key does nothing and
the log says so.Zonas registers exactly these six combinations with macOS and hears nothing
else you type — it is the mechanism Rectangle, Alfred and Raycast use, and it
needs no permission beyond the Accessibility one Zonas already has. If another
window manager holds one of the combinations, that key does nothing here and
the log names it.defaults.shortcutsin the file names the keys:"control+option"unless
you say otherwise, any two or more ofshift,control,optionand
commandjoined with+, orfalseto turn them off. One key on its own is
refused, because ⌥→ is a word in every text field and a global shortcut would
take it from all of them.
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.
- Download Zonas
and open the file it saves. - 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. - 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. - Give it the Accessibility permission from that window. macOS does not let
any app move another app's windows without it. - Hold ⇧ Shift, drag any window, and let ⇧ go over a zone. Drag against the
top edge of the screen to fill the whole of it. Add ⌃ Control while
you drag to gather several zones into one rectangle. Or hold ⌃⌥ and press
an arrow to move the front window without touching the mouse. 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. It does not draw
the maximise band either — it edits zones, and the band is not one. - The arrows do not cross screens: ⌃⌥→ at the right edge of a screen stays
there. And there is no shortcut per zone by number yet. - 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.
Zonas 0.6.0
Snap windows into zones you define in a text file.
One new thing in this release, and it needs no change to your layout: the top
edge of the screen fills the whole screen.
What is new since 0.5.0
-
Drag a window against the top edge and Zonas offers you the whole screen.
Hold ⇧ as always, push the window up until the pointer reaches the top of the
screen, and instead of a zone you get one rectangle over everything with the
word Maximised across it. Let go of ⇧ and the window fills the screen.There is nothing to add to your file. It works in the layout you already have,
including one written long before this release, and in the layouts of anybody
who has never opened the file at all.The band reaches from the very top of the screen down 24 points into your
zones, and the menu bar counts as part of it. That is deliberate and it is
what makes the gesture comfortable: macOS stops the window when its title bar
meets the menu bar, but it does not stop the pointer, so throwing a window at
the top of the screen leaves the cursor up there — over a strip that no zone
can ever cover, because zones are fractions of what is left after the menu
bar.Holding ⌃ Control turns the band off for as long as you hold it, which is
how you aim at the zones underneath it. Gathering builds a rectangle out of
zones, and the whole screen is not one of them — without this rule, sweeping
along a top row of zones would keep turning into "maximise" under your hand.defaults.maximisein the file is the depth in points;0removes the band
entirely. It readsmaximizeas the same key, so the spelling cannot silently
cost you the feature.This is not macOS's full screen: no separate Space, the menu bar stays
where it is, and the window remains an ordinary window you can drag out again.
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.
- Download Zonas
and open the file it saves. - 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. - 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. - Give it the Accessibility permission from that window. macOS does not let
any app move another app's windows without it. - Hold ⇧ Shift, drag any window, and let ⇧ go over a zone. Drag against the
top edge of the screen to fill the whole of it. 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. It does not draw
the maximise band either — it edits zones, and the band is not one. - 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.
Zonas 0.5.0
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.
- Download Zonas
and open the file it saves. - 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. - 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. - Give it the Accessibility permission from that window. macOS does not let
any app move another app's windows without it. - 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.
Zonas 0.4.2
Snap windows into zones you define in a text file.
Two things this release fixes were the two most obvious ways the app could leave
somebody stuck: the minute after installing it, and a gesture that only worked
if you let go of two keys in the right order.
What is new since 0.4.1
-
There is a window on first launch. Until now, installing Zonas and opening
it produced no visible result at all except a small grey icon at the top right
of a screen nobody was looking at — no Dock icon, no window, and no way to
learn that the Accessibility permission was missing or what the gesture was.
The release notes said so in bold, and a release note is not a window.It is one screen, not a six-page tour. It says what the app is, it draws
your layout at your screen's proportions — the same drawing code the
overlay uses, following the file while the window is open — and it sketches
your menu bar with Zonas' icon where macOS actually put it, notch included on
the machines that have one. The permission row has three states rather than
two, because "not granted" and "granted but the event tap never came up" are
different problems and used to be reported identically: people were being told
to switch on a toggle that was already on. The stuck state now says the thing
that costs an afternoon to find out — that switching the toggle off and on
again keeps the old code requirement, and only removing the entry with −
and adding it back rewrites it. -
Merged zones survive letting go of both keys at once. Holding ⌃ Control to
gather several zones and then releasing ⇧ and ⌃ together used to drop the
window into a single zone — whichever one the cursor happened to be over. The
two releases arrive a few milliseconds apart and the order decided the result,
so the gesture worked reliably only if you released ⇧ first, which is not
something anybody can be expected to discover.What you gathered now survives the release and is let go of when the pointer
moves on. Release the keys in either order, or together, and the window lands
on the rectangle the highlight was showing. Starting a sweep over after
gathering one zone too many still works the same way: let go of ⌃ and keep
moving. -
Links to the site no longer preview as an icon marooned between two grey
bars in Slack, iMessage and the rest.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Download Zonas
and open the file it saves. - 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. - 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. - Give it the Accessibility permission from that window. macOS does not let
any app move another app's windows without it. - 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.
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. - Everything here was measured on one Mac. If something behaves oddly on a
multi-monitor desk, that is the most likely place for it.
Signed with a Developer ID and notarized by Apple.
SHA-256 0d382df52b3aa5d19fa2fb11298ea89d8d2042ef0021f7411ce2d76d7b07a2e3
Zonas 0.4.1
Snap windows into zones you define in a text file.
There is a website now: pablocaviglia-uy.github.io/zonas
— and a download link that just downloads,
without any of this page in the way.
What is new since 0.4.0
Nothing in the app's behaviour changed. Everything here is about finding it,
downloading it and installing it — which for four releases has been the weakest
part of the whole thing.
- A new app icon. The old one was a dark slate square with three slightly
darker rectangles in it; at Dock size it was a smudge, and it sat in the disk
image right next to Apple's bright blue Applications folder. Same motif —
three zones, the middle one wide — but lit. - The disk image has a window now, instead of opening as a plain file list:
the app on the left, Applications on the right, and an arrow between them
saying what to do. That drag is not decoration — running Zonas from the disk
image or from Downloads makes macOS ask for the Accessibility permission again
on every single launch, forever. - A demo GIF in the README and on the site: the layout file being edited from
quarters to thirds, saved, and the next window landing in the layout it just
described. Nothing clicked, nothing restarted. - A direct download link.
Zonas.dmgis now uploaded alongside the versioned
file, soreleases/latest/download/Zonas.dmgalways points at the newest
build. Same bytes, same notarization — the ticket is stapled to the code, not
to the file name. - The README opens with a download button and plain instructions rather than an
argument about configuration files.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Download Zonas
and open the file it saves. - Drag Zonas onto the Applications folder, which is what the window now
shows you. Do not run it from the disk image or from~/Downloads. - Open it from Applications. Nothing visible happens except a small grey
icon appearing in the menu bar. That is expected: grey means it is running
but has no permission yet. - Click that icon → Accessibility Permissions…, and turn Zonas on in the
panel that opens. macOS does not let any app move another app's windows
without it. The icon stops being grey. - Hold ⇧ Shift, drag any window, and let ⇧ go over a zone. Press ⎋ to
leave everything where it was.
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.
Known rough edges
- First launch still explains itself only here and on the website. There is
no welcome window yet. It is the next thing being built and the largest gap in
the project. - 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. - Everything here was measured on one Mac with one screen attached. If something
behaves oddly on a multi-monitor desk, that is the most likely place for it.
Signed with a Developer ID and notarized by Apple.
SHA-256 30cec519cecc8e61bd63a28a4923d127cfcf64f59de14a4782fa5727257a1c3a
Zonas 0.4.0
Snap windows into zones you define in a text file.
The gesture changed, and this is the whole release
Hold ⇧ Shift and drag a window. Let go of ⇧ over the zone you want, and the
window fills it. Press ⎋ Escape to leave everything where it was.
Letting go of the mouse button no longer ends anything. That sounds like a
detail and is not: a trackpad drag is one continuous press with nowhere to rest,
so lifting a finger to reposition it is not optional on a small pad — and until
now every lift threw the gesture away and snapped the window wherever the cursor
happened to be at that instant. It looked exactly like Zonas cancelling on you
after about a second.
Now you can let go, move, take hold again, and the zones stay up the whole time.
The snap happens when ⇧ does. If you let go of ⇧ first, it happens when you
release the button — whichever of the two is last, so the result is the same
either way round.
Two consequences worth knowing:
- ⎋ is the way out. Releasing ⇧ used to cancel, and now it commits, so
Escape takes over that job. - With the button up, the highlight follows your cursor. Watching the zones
light up with nothing held takes about one gesture to get used to.
Gathering several zones with ⌃ Control, added in 0.3.0, gets much easier as a
side effect: you can lift, reposition, and carry on gathering.
Also in this release
- The log now writes a
-- 2026-08-05 --rule when the day changes. Without it
a file spanning two days cannot be filtered by time at all. - Diagnostics on the drop that say how long the gesture lasted, where the mouse
event came from, and whether the button was physically down — which is how the
problem above was found at all.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Open
Zonas-0.4.0.dmgand drag Zonas onto the Applications folder.
Do not run it from the disk image or from~/Downloads— macOS runs apps
from there out of a temporary copy whose path changes on every launch, and
the Accessibility permission would have to be granted again every time. - Open it from Applications.
- On first launch nothing visible happens except a small grey icon
appearing in the menu bar. Grey means it is running but has no permission
yet. - Click that icon → Accessibility Permissions…, and turn Zonas on in the
panel that opens. Without it macOS does not allow any app to move another
app's windows. The icon stops being grey. - Hold ⇧ Shift, drag any window, and let ⇧ go over a zone.
Upgrading needs nothing: your layout file is not touched.
Known rough edges
- First launch still explains itself only in these notes. There is no
welcome window yet. It is the next thing being built and the largest gap in
the project. - One layout at a time. Multiple layouts and rules that pick a layout per
monitor — including monitors that are not plugged in — are next 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. - Everything here was measured on one Mac with one screen attached. If something
behaves oddly on a multi-monitor desk, that is the most likely place for it.
Signed with a Developer ID and notarized by Apple.
SHA-256 0ae9a7947b9911b8f9071f809aa44c83bf300afc06e9af2f1d4bea3135685bff
Zonas 0.3.0
Snap windows into zones you define in a text file. Hold ⇧ Shift while
dragging a window, the zones light up, drop it and the window fills the one
under the cursor.
What is new since 0.2.0
One window can now cover several zones. Start the drag with ⇧ as usual, then
hold ⌃ Control as well and sweep across the zones you want: they are
gathered rather than chosen one at a time, and the window is given all of them
as a single rectangle — with the gaps between them gone and only the outer ones
left. Two quarter-height zones become one full-height column. A column and the
one beside it become a two-thirds window. Everything, and the window fills the
screen.
It is PowerToys FancyZones' gesture, and the details are the part worth knowing:
- Drag first, then press Control. On macOS, Control held while the mouse
button goes down is the secondary click, so pressing it first turns the whole
thing into a right-click and nothing happens. - Let go of Control to start the selection over. Everything the cursor
crosses while it is down joins the selection, so this is the way out of a
sweep that picked up one zone too many. - The highlight is always the exact rectangle the window is about to get, so a
selection with a hole in it visibly fills the hole. - ⇧ and ⌃ are next to each other, and reaching for the second with the same hand
tends to lift the first — which cancels the drag, by design. If your hands do
that, putspan: "command"in thedefaultsblock of your file and the
second key moves under the other thumb.
The key is configurable through defaults.span, and naming the same key you
already use for dragging is refused with the line number, since one key cannot
mean both "show me the zones" and "add this one to the ones I have".
The menu bar reminder now tells you the whole gesture instead of half of it.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Open
Zonas-0.3.0.dmgand drag Zonas onto the Applications folder.
Do not run it from the disk image or from~/Downloads— macOS runs apps
from there out of a temporary copy whose path changes on every launch, and
the Accessibility permission would have to be granted again every time. - Open it from Applications.
- On first launch nothing visible happens except a small grey icon
appearing in the menu bar. Grey means it is running but has no permission
yet. - Click that icon → Accessibility Permissions…, and turn Zonas on in the
panel that opens. Without it macOS does not allow any app to move another
app's windows. The icon stops being grey. - Hold ⇧ Shift and drag any window.
Upgrading from 0.2.0 or 0.1.0 needs nothing: your layout file is not touched,
and the new key has a default.
Known rough edges
- First launch still explains itself only in these notes. There is no
welcome window yet, and that is the next thing to fix. - One layout at a time. Multiple layouts and rules that pick a layout per
monitor — including monitors that are not plugged in — are next. - 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. - All of this was measured on one Mac with one screen attached. If something
behaves oddly on a multi-monitor desk, that is the most likely place for it.
Signed with a Developer ID and notarized by Apple.
SHA-256 acbeb6159c2ae1f988ad09d9553a723620be4ee23acc2c98b7392592e471c2e4
Zonas 0.2.0
Snap windows into zones you define in a text file. Hold ⇧ Shift while
dragging a window, the zones light up, drop it and the window fills the one
under the cursor.
The layout is a file you write — with comments, with ratios like 1/3, saved
anywhere you like and symlinked out of your dotfiles repo. Edit it, save, and
the zones change underneath you. If it does not parse, Zonas tells you which
line, keeps the zones it was already using, and does not touch a byte of what
you wrote.
What is new since 0.1.0
A visual editor. Menu bar → Edit Zones… opens your screen at 1:1 over
the dimmed desktop. Click a zone to cut it in two, ⇧ to rotate the cut, drag a
divider to move every edge lined up with it, ⌥ to move one side only and off the
grid, ⌫ or the ✕ to delete, ⌘Z to undo. Every zone shows its size in points and
as a fraction, and it snaps to the same denominators the file can write, so what
you draw comes out as 1/3 and not as 0.3333333333333333.
It writes as you go, through the same writer zonas fmt uses — your
comments, your key order and any key this version has never heard of all survive
the round trip. If it ever could not promise that, it refuses to write and says
so.
Windows that would not move now move. This is the bigger half of the
release, and it is invisible until you notice it is gone:
- Electron apps built their window out of enough nested layers that Zonas gave
up looking for the window at all. Measured on one of them, with its window
filling the screen: the previous release identified a window at 0 of 1995
sampled points. You could drag it anywhere, see the zones light up, and
nothing would ever move. - If another accessibility app on your Mac had switched on macOS' enhanced
accessibility mode, every app silently ignored the size it was given —
Chrome, Teams, Firefox, iTerm2, all of them. Zonas turns that off for the
instant it takes to place the window and puts it straight back. - An app that refuses to be as small as the zone no longer hangs off the edge of
the screen. Chrome will not go below 500 points wide and WhatsApp not below
800; the window keeps the size the app insisted on and is slid back just far
enough to stay reachable. - Full-screen windows, system panels and notification banners are left alone
instead of being moved around, and the log says which and why. - A frozen app can no longer make Zonas stop responding to the mouse.
An ignore list. Add ignore: ["com.some.app"] to the file and Zonas will not
touch that app at all — no zones, no snap. zonas apps prints the identifier of
everything you have open, ready to paste in.
The file moved to ~/.config/zonas/zonas.json5. If you are upgrading, this
happens by itself on the first launch, and your old file is left exactly where
it was — nothing in the migration writes to it, so it is its own backup. It is
called .json5 now because a file containing comments and .25 was lying to
every tool that saw a .json extension.
gap, margin and modifier come out of the file, so the air between
windows, the air at the edge of the screen and the key you hold are all yours to
set. And there are command line tools: check (with the line number of whatever
is wrong), fmt, monitors and apps.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Open
Zonas-0.2.0.dmgand drag Zonas onto the Applications folder.
Do not run it from the disk image or from~/Downloads— macOS runs apps
from there out of a temporary copy whose path changes on every launch, and
the Accessibility permission would have to be granted again every time. - Open it from Applications.
- On first launch nothing visible happens except a small grey icon
appearing in the menu bar. Grey means it is running but has no permission
yet. - Click that icon → Accessibility Permissions…, and turn Zonas on in the
panel that opens. Without it macOS does not allow any app to move another
app's windows. The icon stops being grey. - Hold ⇧ Shift and drag any window.
The menu also has Edit Zones…, Open Layout File… and Open Log…,
which is where anything that went wrong will say so.
Known rough edges
- First launch still explains itself only in the release notes. There is no
welcome window yet, and that is the next thing to fix. - One layout at a time. Multiple layouts and rules that pick a layout per
monitor — including monitors that are not plugged in — are next. - 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. - All of the above was measured on one Mac with one screen attached. If
something behaves oddly on a multi-monitor desk, that is the most likely
place for it.
Signed with a Developer ID and notarized by Apple.
SHA-256 2d5678f84570939374d4a932190f10e4693c0a786838b442db147ae780be43d1
Zonas 0.1.0
Snap windows into zones you define in a text file. Hold ⇧ Shift while
dragging a window, the zones light up, drop it and the window fills the one
under the cursor.
The layout is a file you write — with comments, with ratios like 1/3, saved
anywhere you like and symlinked out of your dotfiles repo. Edit it, save, and
the zones change underneath you. If it does not parse, Zonas tells you which
line, keeps the zones it was already using, and does not touch a byte of what
you wrote.
Installing
Requires macOS 14 (Sonoma) or later. Universal: Apple Silicon and Intel.
- Open
Zonas-0.1.0.dmgand drag Zonas onto the Applications folder.
Do not run it from the disk image or from~/Downloads— macOS runs apps
from there out of a temporary copy whose path changes on every launch, and
the Accessibility permission would have to be granted again every time. - Open it from Applications.
- On first launch nothing visible happens except a small grey icon
appearing in the menu bar. Grey means it is running but has no permission
yet. - Click that icon → Accessibility Permissions…, and turn Zonas on in the
panel that opens. Without it macOS does not allow any app to move another
app's windows. The icon stops being grey. - Hold ⇧ Shift and drag any window.
The menu also has Edit Zones, which opens the layout file in your editor,
and Open Log, which is where anything that went wrong will say so.
Known rough edges
- No visual editor. Zones are defined in the file — that is the point for now,
but it is a real thing to know before downloading. - One layout at a time. Multiple layouts and per-monitor rules are next.
- Some apps refuse to shrink below a minimum size. Xcode will not go under
600 points wide, so it does not fit a quarter-width column on a laptop
screen. Zonas asks, the app declines, and the log says exactly what happened.
Signed with a Developer ID and notarized by Apple.
SHA-256 80817d19cf82bc4d77cf41f911a13830916ff7d18cc1cb188a3fbd680f5a4f6c