Open source

Panes

Windows-style window snapping for Mac.

Made by Joy Ahmed at ZettaByte

A small, free menu-bar app, written in Swift, that moves windows the way your hands already expect if you came from Windows. Every key is Ctrl + Alt plus one more key. On a Windows keyboard that is exactly what is printed on the keys, so Panes shows them that way too: Ctrl+Alt+←, not Mac symbols.

Or drag a window by its title bar to a screen edge, like on Windows: left or right edge for a half, a corner for a quarter, the top edge to fill the screen. A preview shows where it will land before you let go.

Snapping to halves, corners and thirds, then showing the desktop.

Why Panes

Joy used Windows for years. Win + ← to snap a window, Win + D to see the desktop, and he never thought about it. Then he moved to a Mac with a Windows keyboard, and window management became the thing he fought with every day.

So he built Panes: a menu-bar app that moves windows the way those hands already expect. It is free, and the free edition stays free. A Pro edition with automatic stacking and saved layouts is in the works and is not out yet.

What it does

Halves

Ctrl+Alt with the arrow keys: left or right half, top or bottom half.

Quarters

Ctrl+Alt with U, I, J and K sends a window to the top-left, top-right, bottom-left or bottom-right corner.

Thirds

Ctrl+Alt with 1, 2 or 3 puts a window in the left, middle or right third of the screen.

Fill and centre

Ctrl+Alt+Return fills the screen; Ctrl+Alt+C centres the window.

Show desktop

Ctrl+Alt+D works like Win + D. Press it again and exactly the apps it hid come back.

Next screen

Ctrl+Alt+N sends the window to the next screen.

Drag to an edge

Drag a window by its title bar to a screen edge, as on Windows. A preview shows where it will land before you let go.

Settings

Every key can change. An ignore list keeps apps you never want moved out of it, and gaps between windows run from 0 to 24 points. Open Panes again from Spotlight while it is running and Settings comes up.

Decisions, and what they cost

Every one of these is recorded in the repository itself. They are here because a choice explained is worth more than a feature listed.

  1. Small windows behave

    Some windows refuse to resize, like a settings window. Panes still puts them in the corner you asked for, and Up only moves them up. It does not slide them to the middle.

  2. Every key can change, and a clash is refused

    In Settings → Keys, click a key and press a new combination. Panes refuses a combination that is already taken and tells you which action has it.

  3. The window math has no Mac UI code in it

    Where a window goes for each action lives in its own module, PanesCore, with no AppKit in it, so it is tested without moving a single window. The app target only does the moving.

  4. A self-test that never touches your windows

    The self-test opens its own test windows and moves them through every snap, including a window that cannot resize. Your real windows are never involved.

  5. Never signed ad hoc

    Each ad-hoc build looks like a new app to macOS and loses the Accessibility permission, so the build script refuses to sign that way. A real Apple Development certificate keeps the same identity every build, and the permission survives a rebuild.

  6. Free stays free

    The public repository is the free edition. Its package file builds the Pro edition only when the Pro folders are present, and the public copy has none.

At a glance

Language mix

  • Swift87.5%
  • Shell12.5%
Platform
macOS 14 or newer
Kind
Menu-bar app
Language
Swift, native
Licence
GPL-3.0
Price
Free
  • Swift
  • Swift Package Manager
  • macOS 14+

Everything you can type or press

Keys

Every key is Ctrl + Alt plus one more key.

Ctrl Alt ← / →
Left half / right half
Ctrl Alt ↑ / ↓
Top half / bottom half
Ctrl Alt Return
Fill the screen
Ctrl Alt C
Centre
Ctrl Alt U I J K
Top-left, top-right, bottom-left, bottom-right
Ctrl Alt 1 2 3
Left, middle, right third
Ctrl Alt D
Show desktop. Press again and exactly the apps it hid come back
Ctrl Alt N
Send the window to the next screen

Dragging

Left or right edge
A half
A corner
A quarter
Top edge
Fill the screen

Build it yourself

macOS 14 or newer and Xcode. The build signs Panes.app with your own Apple Development certificate, puts it in ~/Applications and starts it. The first time, macOS asks to let Panes control your computer: turn it on in System Settings → Privacy & Security → Accessibility.

git clone https://github.com/joyahmed/panes.git
cd panes
sh scripts/build-app.sh

# build, unit tests and the style check
sh scripts/verify.sh

Download

A signed download is coming soon, so you will be able to unzip it and drag Panes to Applications. Until then, build it yourself from the steps above. If you use Rectangle, quit it first: it uses the same keys.

View the source on GitHub