GridSnap – an open-source Divvy-style window snapper for macOS

Hacker News Top Tools

Summary

GridSnap 是一款开源的 macOS 窗口平铺工具,作为 Divvy 的替代品:按下快捷键弹出网格,拖选单元格即可将窗口吸附到对应位置,并支持预设、多显示器和撤销功能。

No content available
Original Article
View Cached Full Text

Cached at: 10/15/26, 04:12 PM

konieczkow/gridsnap

Source: https://github.com/konieczkow/gridsnap

GridSnap

An open source alternative to Divvy for macOS. Press a shortcut, a grid appears, drag across the cells you want, and the window snaps there. Save a region as a preset and it becomes a one-keystroke snap.

Pressing the shortcut, dragging on the grid, and the window following

  • Grid overlay with live preview: the window follows your drag and jumps back if you cancel
  • Presets with their own global shortcuts; a Full screen preset on ⌃⌥F comes built in
  • Undo the last snap
  • Configurable grid size and gap between windows
  • Snap the focused window or the one under the cursor
  • Works across multiple displays
  • Menu bar app, launch at login, no Dock icon
  • No network access, no analytics, no accounts

Requirements

  • macOS 14 or later. Tested on macOS 26; on older versions the grid gets a frosted panel instead of the glass material.
  • Apple Silicon or Intel.
  • To build: Xcode Command Line Tools with the macOS 26 SDK. No Xcode project, swiftc compiles the files directly.

Install

With Homebrew:

brew install --cask konieczkow/tap/gridsnap

Or download GridSnap-x.y.z.zip from the latest release, unzip it and drag GridSnap to Applications.

On first launch GridSnap asks for Accessibility, which it needs to move other apps’ windows. Turn it on under System Settings › Privacy & Security › Accessibility (the menu bar icon has a Grant Accessibility… item that opens that pane). GridSnap picks the grant up on its own, no relaunch needed.

Or build it yourself:

git clone https://github.com/konieczkow/gridsnap.git
cd gridsnap
./build.sh install
open /Applications/GridSnap.app

Use

ActionHow
Show the grid⌃⌥D (change it in Settings)
SnapClick or drag cells, release
CancelEsc, or drag outside the panel and release
DismissClick anywhere outside the grid
Save a presetHold Shift when releasing, or use + in Settings
Apply a presetIts shortcut, or the Presets menu
Undo last snap⌃⌥Z by default, press again to redo

The grid appears on the display under the cursor and the window snaps to that display, so moving the mouse to another monitor before pressing the shortcut moves the window there. Presets snap to the display the window is already on.

Wider gutters in the grid mark halves, thirds and quarters.

Settings (menu bar icon › Settings…) holds both shortcuts, columns and rows, the gap in points between snapped windows, the target rule, and the presets table. Names and shortcuts are editable in place; − removes the selected preset.

Development

./build.sh            # builds build/GridSnap.app
./build.sh install    # also copies it to /Applications

Resources/icon.png is the icon source; regenerate AppIcon.icns from it with iconutil if you change it.

Files in Sources/: main.swift startup, AX.swift window plumbing, Grid.swift overlay, Presets.swift, Hotkeys.swift, ShortcutButton.swift recorder, SettingsWindow.swift, Menu.swift, Defaults.swift stored settings.

macOS ties the Accessibility grant to the app’s code signature. The default ad-hoc signature changes with every build, so you’d re-grant permission after each rebuild. To avoid that, create a self-signed certificate once (Keychain Access › Certificate Assistant › Create a Certificate, type “Code Signing”, name it GridSnap Dev) and the build script picks it up. Any other identity works via CODESIGN_IDENTITY="name" ./build.sh.

Known limitations

  • Full-screen windows ignore snapping.
  • Some apps enforce a minimum window size and won’t shrink to a small cell. The window then stays on screen and overlaps the neighbouring cells.

License

MIT, see LICENSE.

Similar Articles

@GitHub_Daily: Mac's window management starts to get messy with seven or eight windows open; finding things relies on scrolling through Mission Control. PaperWM spoon takes a different approach, arranging windows in a flat, scrollable long strip instead of overlapping them. New windows are placed to the side without blocking others, and keyboard shortcuts allow scrolling left and right to switch between them, like flipping through a film reel. GitH…

X AI KOLs Timeline

PaperWM spoon is a Hammerspoon plugin that provides tiling window management for Mac, arranging windows on a scrollable strip and operated via keyboard shortcuts, aiming to improve multi-window workflows.

@alin_zone: Mac screenshot tool CleanShot X is under siege from indie developers. Note-taking, expense tracking, TodoList — the classic indie developer trifecta — are no longer saturated. In 2026, everyone is charging into screenshot software. Today I'm sharing three, try them as needed, still some interesting features: Snapzy, Macshot …

X AI KOLs Timeline

Mac screenshot software CleanShot X is facing competition from new tools launched by indie developers (Snapzy, Macshot, Capso), and the screenshot software space is starting to get crowded in 2026.

@wsl8297: Working on a Mac often means juggling a dozen open windows. Finding the specific one you need is often more exhausting than the actual work. Recently, I came across Paneru, an open-source window manager with a straightforward concept: it uses a horizontal "scroll bar" to organize windows, making switching between them orderly and intuitive. It’s somewhat like Niri on Linux...

X AI KOLs Timeline

Paneru is an open-source tiling window manager for macOS that features a unique horizontal scroll bar layout. Designed to solve the chaos of managing multiple windows, it draws inspiration from Niri on Linux.

Snapdown

Product Hunt

Snapdown is a Mac tool that converts anything on your screen into clean Markdown.

Snapset

Product Hunt

Snapset is a Mac menu bar app that saves and restores your entire workspace — apps, window positions, browser tabs, and open folders — and automatically rearranges it when switching to a different display.