Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 2.39 KB

File metadata and controls

75 lines (51 loc) · 2.39 KB

MacSnap

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.

Shortcuts

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.

Menu Bar

The menu bar icon provides the same window actions as the shortcuts, plus:

  • Request Accessibility permission
  • Open Accessibility settings
  • Start at Login
  • Quit

Permission

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 Run

Build and launch a debug app bundle:

./script/build_and_run.sh

Useful development modes:

./script/build_and_run.sh --logs
./script/build_and_run.sh --debug
./script/build_and_run.sh --verify

Package

Create a local macOS .app bundle:

./script/package_app.sh

The 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.