← Projects

Window Snug

A keyboard-driven window manager for macOS — free, notarized, and it collects nothing

August 22, 2026 v1.0.0 appmacOSSwift
Window Snug

Press ⌥⌘← and the front window takes the left half of the screen. Press it again and it becomes two-thirds. Again, one-third. That cycle is the whole idea: most windows do not want to be exactly half, and the alternative — a second shortcut for every fraction, or dragging to fine-tune — is worse than the problem.

Three panels side by side, each showing an orange block filling a different fraction of a dark screen: one half, two thirds, one third
First press ½, second ⅔, third ⅓ — the same shortcut, walking through the useful fractions.

What it does

Halves⌥⌘ + arrows — press again to cycle ½ → ⅔ → ⅓
Quarters⌃⌘ + arrows (upper), ⌃⇧⌘ + arrows (lower)
Center / Fullscreen⌥⌘C · ⌥⌘F — fullscreen fills the screen without entering a native full-screen Space
Move between displays⌃⌥⌘ + arrows, proportionally
Resize⌃⌥⇧ + arrows, 5% a step around the window’s centre
Undo / Redo⌥⌘Z · ⌥⇧⌘Z, up to 64 steps

Every shortcut is rebindable: click a field in Preferences and press the combination you want.

Where the keymap comes from

The defaults are Spectacle’s — Eric Czarny’s free, open-source window manager, which people used for most of a decade until it stopped being maintained in October 2019. The layout stayed in their fingers. Window Snug keeps it verbatim, down to the modifier for lower-right, so anyone coming from Spectacle installs it and keeps working.

The Window Snug menu bar dropdown listing Center, Fullscreen, the four halves, the four corners, display and third navigation, resize, and undo and redo, each with its keyboard shortcut
The whole command set lives in the menu bar. There is no Dock icon and no window to keep open.

The addition is the cycle: press the same shortcut again and the window walks on to two-thirds, then one-third.

The Window Snug settings window showing an Accessibility access granted banner, a launch-at-login toggle, and a list of rebindable shortcut fields
Click a field, press a combo. Launch at login. Nothing else to configure.

How it ships

Swift, 14 source files, macOS 13 or later, 1.9 MB. Built with XcodeGen so the project file is generated rather than merged, and configured for two targets: a sandboxed build for the Mac App Store, and a non-sandboxed Developer ID build that is notarized by Apple and distributed straight from the download page.

Updates go through Sparkle. The appcast is signed with an EdDSA key whose public half is compiled into every installed copy, so an unsigned feed — or one signed by a different key — is rejected rather than installed.

Releases are not done by hand. Tagging v* builds, notarizes, publishes the GitHub release, regenerates the version-history page and the appcast from CHANGELOG.md, and pushes both back to the site repository.

Privacy

It collects nothing — no accounts, no analytics, no network requests beyond checking for its own updates. The one permission it asks for is Accessibility, which macOS requires before any app can move another app’s windows; it asks on first launch with the right settings pane already open.