MacSnap is a small native macOS menu bar app for moving, tiling, and restoring windows with simple keyboard shortcuts.
It stays out of the Dock, lives in the menu bar, and works through macOS Accessibility permission.
| Shortcut | Action |
|---|---|
Command + Control + Left Arrow |
Move the focused window to the left side of the current display |
Command + Control + Right Arrow |
Move the focused window to the right side of the current display |
Command + Control + Up Arrow |
Center the focused window on the current display |
Command + Control + Down Arrow |
Restore the focused window to its saved original position |
Command + Option + Left Arrow |
Move the focused window to the display on the left |
Command + Option + Right Arrow |
Move the focused window to the display on the right |
Command + Option + Up Arrow |
Move the focused window to the display above |
Command + Option + Down Arrow |
Move the focused window to the display below |
Command + Option + F |
Maximize the focused window |
Command + Option + M |
Minimize the focused window |
Left, right, and center tiling cycle through 50%, 33%, and 25% widths each time you repeat the same shortcut. Moving a window to another display keeps its size and centers it on the target display.
MacSnap stores a window's original frame the first time it moves, maximizes, or minimizes that window. Restore uses that saved frame.
The menu bar icon provides the same window actions as the shortcuts, plus:
- Request Accessibility permission
- Open Accessibility settings
- Start at Login
- Quit
MacSnap needs Accessibility access to move and resize windows owned by other apps.
On first launch, open the MacSnap menu bar item, choose Request Permission, then enable MacSnap in:
System Settings > Privacy & Security > Accessibility
Build and launch a debug app bundle:
./script/build_and_run.shUseful development modes:
./script/build_and_run.sh --logs
./script/build_and_run.sh --debug
./script/build_and_run.sh --verifyCreate a local macOS .app bundle:
./script/package_app.shThe release bundle is written to:
dist/MacSnap.app
The local package is ad-hoc signed for personal use. It is not prepared for Mac App Store submission.