windex

A macOS window manager with grid-based snapping and smooth animations, written in Rust. windex lives in the menu bar and lets you snap the focused window to halves, thirds, and quarters — or push it to another monitor — entirely from the keyboard.

What it does

Every Window, One Keystroke Away

Halves & thirds

Snap the focused window to the left, right, top, or bottom half — or to thirds, including left and right two-thirds.

Quarters & corners

Send a window to any corner of the screen with a single shortcut for tidy four-up layouts.

Maximize & center

Fill the screen or drop a window neatly into the middle without reaching for the mouse.

Multi-monitor

Move a window to the next or previous display and keep working across every screen.

Smooth animations

Windows glide into place with a short, configurable easing curve instead of snapping instantly.

Menu bar & TOML config

Runs quietly from the menu bar with no dock icon. Every hotkey is remappable through a simple TOML file.

Keyboard first

Default Shortcuts

ActionShortcut
Left / right half⌃⌥ ← / →
Top / bottom half⌃⌥ ↑ / ↓
Left / center / right third⌃⌥ D / F / G
Left / right two-thirds⌃⌥ E / T
Corners (TL, TR, BL, BR)⌃⌥ U / I / J / K
Maximize⌃⌥ Enter
Center⌃⌥ C
Move to next / previous monitor⌃⌥ N / P

Every binding is remappable through a TOML config file, so the defaults are only a starting point.

Under the hood

How It's Built

Written in Rust

A single native binary — small, fast, and dependency-light — built with the Rust toolchain and shipped with a one-command installer.

macOS Accessibility API

windex moves and resizes other apps' windows through the system Accessibility API, the same foundation the built-in window controls use.

Configurable easing

An animation engine tweens each window into position with adjustable duration and easing, so movement feels deliberate rather than abrupt.

Curious about windex?

It's an open-source side project built for the love of a tidy desktop. If you'd like to hear more or follow along, get in touch.

Get in Touch