Grid - A macOS window managment app
Install
brew install yannpom/repo/grid
Or download from GitHub releases
Grid v0.2
Grid is a macOS window managment app that let you bind custom shortcut to custom window positions via an easy to copy/edit/share YAML file.
Grid UI is very minimalist, it only has a menu in the status bar:
To get logs, run it form the command line: /Applications/Grid.app/Contents/MacOS/Grid
YAML configuration file
A default configuration file is created in ~/.grid.yaml
if it does not exists.
The default config is a kind of 9×9 grid with a larger center column (48%). But of course you can change/customize everything, and share your config file in a GitHub issue if you want.
Config is reloaded on file change. It makes it easy to edit/save/test your changes in seconds.
Basic Example
Config file: ~/.grid.yaml
actions:
- key: "CMD_ALT_LEFTARROW" # combination of (CMD, ALT, CTRL) + 1 key
name: "Center Left" # optional
positions:
- [.18, 0, .32, 1] # x=18%, y=0, width=32%, height=100%
- [.10, 0, .40, 1] # Repeated keypress loop through all positions
- [0, 0, .50, 1]
- key: ...
Advanced Example
define:
- &x1 0.26 # YAML variables can be defined to be reused multiple times
- &x2 0.74
- &w0 0.26
- &w1 0.48
- &w2 0.26
- &y1 0.33
- &y2 0.50
- &y3 0.66
- &h1 0.33
- &h2 0.5
- &h3 0.66
actions:
# Multiple hotkey for the same action
# (I like to use the keypad but I need backup hotkey on laptop keyboard)
- key: ["CMD_ALT_KEYPAD4", "CMD_ALT_H"]
name: "Left"
positions:
- [0, *y1, *w0, *h1] # use of variables
- [0, .05, *w0, .90]
- key: "CMD_ALT_1"
name: "Scenario #1"
# a 'scenario' moves multiple windows at the same time
scenario:
# based on the App Bundle Identifier:
- app: 'com.apple.finder'
# 5th position argument is the display number
# 0 = screen with focus
# 1 = main screen (laptop)
# 2 = 1st external screen
position: [0.0000, 0.0000, 0.5000, 0.4994, 1]
- app: 'com.spotify.client'
position: [0.0000, 0.0000, 0.2599, 0.3293, 2]
Copy position from actual window
Focus on a window, then click on “Copy current window info”:
A YAML snippet will get to your paperboard:
- app: 'com.sublimetext.3'
position: [0.1799, 0.0000, 0.3198, 1.0000, 1]
Copy paste the whole block to your config file, or only the position array, as you need.
Keylist
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 LEFTARROW RIGHTARROW DOWNARROW UPARROW RIGHTBRACKET LEFTBRACKET QUOTE SEMICOLON BACKSLASH COMMA SLASH PERIOD GRAVE RETURN TAB SPACE DELETE ESCAPE VOLUMEUP VOLUMEDOWN MUTE HELP HOME PAGEUP FORWARDDELETE END PAGEDOWN KEYPADDECIMAL KEYPADMULTIPLY KEYPADPLUS KEYPADCLEAR KEYPADDIVIDE KEYPADENTER KEYPADMINUS KEYPADEQUALS KEYPAD0 KEYPAD1 KEYPAD2 KEYPAD3 KEYPAD4 KEYPAD5 KEYPAD6 KEYPAD7 KEYPAD8 KEYPAD9 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
Accessibility permission
You need to grand ccessibility permission in System Preferences
/ Security & Privacy
/ Accessibility
/ Check Grid.app