Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macOS Window Hotkeys

A tiny, native macOS window manager for keyboard-first workflows. It uses macOS Accessibility APIs and a global event tap—no Raycast, Hammerspoon, or third-party runtime required.

Shortcuts

Hyper means ⌃ Control + ⌥ Option + ⌘ Command.

Shortcut Action
Hyper + ← Left half
Hyper + → Right half
Hyper + ↑ Top half
Hyper + ↓ Bottom half
Hyper + 1 / 2 / 3 Left / center / right third
Hyper + ⇧ + 1 / 2 / 3 Left / center / right two-thirds
Hyper + C Center without resizing
Hyper + H Hide focused app
Hyper + Return Maximize
Hyper + R Restore / toggle previous frame
Hyper + [ / ] Previous / next display

Run windows in a terminal to display the same cheatsheet.

Install

Requirements:

  • macOS 13 or newer
  • Xcode Command Line Tools (for the Swift compiler)
  • ~/.local/bin on your PATH

Clone the repository and run:

./install.sh

The installer:

  1. Compiles the Swift source into ~/Applications/Window Hotkeys.app.
  2. Ad-hoc signs the app with a stable bundle identifier.
  3. Installs the windows cheatsheet command in ~/.local/bin.
  4. Registers a user LaunchAgent so the hotkeys start at login.

On first launch, approve Window Hotkeys in:

System Settings → Privacy & Security → Accessibility

The service detects the permission automatically; it does not need to be restarted afterward.

Uninstall

./uninstall.sh

The script stops the LaunchAgent and removes the app, command, service definition, and log file.

Development

Validate the source without installing:

./test.sh

The project intentionally has no package dependencies. Window geometry is calculated against each display's visible frame, respecting the menu bar and Dock.

License

MIT

About

Native, dependency-free macOS window hotkeys for keyboard-first workflows

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages