Nudge

Free macOS window snapping with shortcuts and edge dragging

Category
Window Manager
WM Type
snap
License
free
Open Source
Yes
Keybindings
Yes
Scripting
No
Last Update
2026-08-28

Features

  • 19 Customizable Shortcuts
  • Drag-to-Edge Snapping
  • Snap Preview Overlay
  • Halves, Quarters and Thirds
  • Move Windows Across Displays
  • Restore Previous Size
  • Ignore Specific Apps
  • Menu Bar App

Install

$brew tap mikusnuz/tap && brew install nudge-run

About

Nudge is a free, open-source window manager written in pure Swift and AppKit. It offers 19 remappable shortcuts for halves, quarters, thirds, two-thirds, maximize, center, restore and display moves, plus drag-to-edge snapping with a preview overlay. It runs from the menu bar and is MIT licensed.

Who It's For

Nudge is for Mac users who want the standard set of snap positions (halves, quarters, thirds and maximize) on keyboard shortcuts and screen-edge drags, and don't want to pay for it. The project positions itself as a free alternative to Magnet, and its default shortcuts follow Magnet's Ctrl+Option layout, so people moving from Magnet can keep their muscle memory. It also suits anyone who prefers a small native utility: the site describes it as "Pure Swift and AppKit. No Electron, no frameworks," with an install size under 1MB.

How It Works

Nudge uses fixed positions, not automatic tiling. You trigger one of 19 actions with a shortcut, or drag a window to a screen edge or corner, and Nudge resizes it to that slot. While you drag, a preview overlay shows where the window will land. The actions cover left/right/top/bottom halves, four quarters, left/center/right thirds, left/center/right two-thirds, maximize, center, restore, and next/previous display.

Nudge moves windows through the macOS Accessibility API, so it needs Accessibility permission. According to the v1.0.3 release notes, when the standard Accessibility call fails (as it can with Electron apps), Nudge falls back to a SkyLight private API. The same release turns off Chrome's AXEnhancedUserInterface before moving windows so Chrome's animated resize doesn't get in the way. For multiple monitors, there are dedicated next/previous display shortcuts, and pressing the same snap shortcut twice moves the window to the next display. You can exclude specific apps from the menu bar, and you remap shortcuts under Nudge → Settings → Shortcuts. Nudge has no config file or scripting layer.

Default shortcuts from the README:

| Action | Shortcut | |---|---| | Left / Right Half | ⌃⌥← / ⌃⌥→ | | Top / Bottom Half | ⌃⌥↑ / ⌃⌥↓ | | Top Left / Top Right | ⌃⌥U / ⌃⌥I | | Bottom Left / Bottom Right | ⌃⌥J / ⌃⌥K | | Left / Center / Right Third | ⌃⌥D / ⌃⌥F / ⌃⌥G | | Left / Center / Right Two Thirds | ⌃⌥E / ⌃⌥R / ⌃⌥T | | Maximize | ⌃⌥↩ | | Center | ⌃⌥C | | Restore | ⌃⌥⌫ | | Next / Previous Display | ⌃⌥⌘→ / ⌃⌥⌘← |

Compared to Alternatives

Nudge compares itself to Magnet, saying it "offers the same core features" (halves, quarters, thirds, multiple monitors, custom shortcuts) but for free, whereas Magnet is a paid App Store app. Rectangle is the closest open-source alternative: both are free, open-source snap managers that offer keyboard shortcuts and drag-to-edge snapping. Rectangle is the established Spectacle successor with extras such as customizable gaps, while Nudge is a newer project whose default bindings follow Magnet's layout.

Requirements

  • macOS 11 Big Sur or later
  • Universal binary for Apple Silicon and Intel Macs
  • Accessibility permission (System Settings → Privacy & Security → Accessibility)
  • No SIP changes required
  • Signed and notarized DMG; latest release is v1.0.3 (March 2026)

Getting Started

Install with Homebrew (brew tap mikusnuz/tap && brew install nudge-run) or download the DMG from GitHub Releases and drag it to Applications. On first launch, grant Accessibility access when prompted. Try ⌃⌥← and ⌃⌥→ to snap a window to each half, or drag a window to a screen edge to see the preview overlay. To change bindings, open Nudge → Settings → Shortcuts. To build from source, install xcodegen, run xcodegen generate, open Nudge.xcodeproj in Xcode 14 or later, and press ⌘R.

Discussion