Quick install of Slate, the OSX window manager

december 2014

What is a window manager

If you're like me, you probably spend too many hours a day in front of your monitor. If you're also a little OCD and like things to go fast, then you should be using a window manager. If you don't, you should be ashamed, but I got you.

OMG I'm so convinced, but wtf is it?

A window manager helps you snap your windows into place on your screen. You configure it and then throw your applications from one monitor to the next, and then make them fit into the left half of the screen, the right half, a corner... Anything really! I suck at words, try this picture to understand better

They're actually getting quite popular

I personally like to use them to divide my screen into 3 terminals, but to everyone his own way of using it! (another good example is snapping 4 different chat clients in the 4 corners...)

OK I'm totally into this, what should I be doing?

There are a lot of options out there, I used a few of them and they all kind of do the trick, but since I prefer open software (also, it's free), I fought a little with SLATE for it to imitate the sizeup key bindings on OSX.
Because SLATE takes more than 10mins to understand, this will get you started in less. Make sure to also check out this very good article by Tristan Hume.
Now you have to see slate as a swiss army knife, the amount of features is simply stupid... This article is really quite limited to getting you setup and running with a basic config. You can then explore tweaking it to your needs at will. I'm going to try and help you get setup as fast as possible By the end of this tutorial you should be able to:

If you like these features, I highly recommend you go back to the documentation to customize the f*** out of your window management.


1. Install the slate application

The installation steps are on the github project, but honestly the easiest is to type this in the command line:

cd /Applications && curl http://www.ninjamonkeysoftware.com/slate/versions/slate-latest.tar.gz | tar -xz

2. Configure the slate application

The configuration is managed through a dotfile. So basically create a file in your home directory called ~/.slate To make things quicker, here is my file directly:

config defaultToCurrentScreen true

# Abstract positions
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias tophalf move screenOriginX;screenOriginY screenSizeX;screenSizeY/2
alias bottomhalf move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2
alias topleft corner top-left resize:screenSizeX/2;screenSizeY/2
alias topright corner top-right resize:screenSizeX/2;screenSizeY/2
alias bottomleft corner bottom-left resize:screenSizeX/2;screenSizeY/2
alias bottomright corner bottom-right resize:screenSizeX/2;screenSizeY/2
alias center move screenOriginX+screenSizeX/6;screenOriginY+screenSizeY/6 2*screenSizeX/3;2*screenSizeY/3
alias bigCenter move screenOriginX+screenSizeX/12;screenOriginY+screenSizeY/12 10*screenSizeX/12;10*screenSizeY/12

# Bind command+option+b to google chrome
bind b:cmd;alt focus 'Google Chrome'

# The triple keys
alias triple ctrl;alt;cmd
alias triple2 alt;ctrl;shift

# Location bindings
bind left:${triple} ${lefthalf}
bind m:${triple} ${full}
bind right:${triple} ${righthalf}
bind up:${triple} ${tophalf}
bind down:${triple} ${bottomhalf}
bind c:${triple} ${center}
bind v:${triple} ${bigCenter}
bind down:${triple2} ${bottomleft}
bind right:${triple2} ${bottomright}
bind left:${triple2} ${topleft}
bind up:${triple2} ${topright}

# Monitor switching bindings
bind right:alt,ctrl throw 1 resize
bind left:alt,ctrl throw 0 resize

It should probably look quite straightforward since I tried to put comments in there. The fun part is the # Abstract Positions, where I define the corners and the halves of the screen.

3. Relaunch and load config


Whenever you modify that .slate file, make sure you "Relaunch and load config" up in the top menu bar.
Now, bear in mind that I have given you the keyboard shortcuts that I like to use, but you could switch that main ctrl+cmd+alt for anything else).

Here are your new powers:

I'll probably write a follow up article explaining how to go further with slate, but hopefully this will be enough to hook you!

If you have any questions, leave them in the comment section below, enjoy!

comments powered by Disqus