I have discovered Slate – windows manager for Mac which is doing exceptionally great job in improving my productivity.
Begin with reading of this article from Tristan Hume on how to start working with Slate:
http://thume.ca/howto/2012/11/19/using-slate/
And here is slate by itself with full tutorial:
https://github.com/jigish/slate
Here is part of config which explains the idea:
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
config windowHintsSpread true
config windowHintsDuration 5
bind esc:cmd hint
alias mon-laptop 1680x1050
alias mon-monitor 2560x1600
alias right-top move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias right-bottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias left-top move screenOriginX;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias left-bottom move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-monitor}
alias full-screen move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-laptop}
bind pad9:cmd ${right-top}
bind pad3:cmd ${right-bottom}
bind pad7:cmd ${left-top}
bind pad1:cmd ${left-bottom}
bind pad5:cmd ${full-screen}
Here is my full config:
https://gist.github.com/mgalushka/d79c68464f191ba8e11a
I use next combinations to manage windows:
cmd+number on pad panel – I use it to move current active window to corresponding position: to corners/half the screen up and down.
For window hints I use cmd+esc