I am mildly obsessed with window management. When I ran Linux full-time, I tried nearly every window management system I could find and ultimately fell in love with “tiling” window managers. I used Xmonad for more than a year and then switched to i3.
I have used a Mac at home for a long time and previously tried Slate and Spectacle for moving windows around quickly. When I was finally able to get a Mac at work I refocused my efforts into finding just the right solution.
I was quite happy with Spectacle until a colleague showed me that Slate now supports Javascript configuration, which makes it possible to do very sophisticated things. I used that facility to re-implement my favorite feature of Spectacle: the ability to cycle a window through three different sizes along one screen edge.
Here I’ll show you how it’s done. If you don’t desperately want to code up your own Slate system after reading this, I’ve done something terribly wrong.