October 02, 2013

Why you should try a tiling window manager

What is a tiling window manager?

Window managers control the placement and appearance of programs on your screen.

Image

Most popular window managers are what are called "compositing window managers," which is what you are using by default in Microsoft Windows, OSX, Gnome, and KDE. They use the desktop metaphor, where each program is treated like a re-sizable piece of paper. You can move them around freely, change their size, and cause them to overlap.

Image

In contrast, a tiling window manager is more like a well-organized drawer than a desk. The entire surface is divided into non-overlapping buckets where windows are displayed. If you've used pretty much any IDE, like Eclipse or Visual Studio, or a terminal multiplexer, like screen or tmux, you're already familiar with this approach.

Why should I use one?

They're efficient

Unlike most popular compositing window managers, tiling window managers really make an attempt at managing your windows for you. Instead of having you constantly reorganize the individual windows on your screen, you specify at a high level how you want windows to be placed and the window manager does it for you. New windows are intelligently placed based on the high-level directives you've already given.

Tiling also lends itself well to really efficient keyboard shortcuts. Because there's an unambiguous arrangement, you can quickly do things like switch focus to the window immediately to the left, right, top, or bottom, as opposed to most compositing window managers where the best keyboard option is Alt-Tabbing through a linear list of all your windows:

Image

They scale

With innovative features like tags (Awesome) and nested workspaces (ion3/notion), it's possible to sanely deal with huge numbers of windows and workflows. You're able to group and manipulate windows together in more sophisticated ways than you can in traditional window managers that limit operations to all instances of a single application or everything on a virtual desktop.

They're customizable

Most tiling window managers are written by developers for developers. They tend to provide rich, well-documented APIs that expose hooks for everything you could want.

Which one should I use?

There are a number popular tiling window managers to choose from, but the most popular (based my totally unscientific polling) are:

My preferred window manager is notion and it's what I recommend for anyone wanting to dip their toes into the world of tiling window managers. The main reasons I suggest it are:

As of Ubuntu 12.10, you can simply apt-get install notion to install it. It's also available in the repositories of a number of other distributions.

In some follow-up posts, I'm going to detail the tweaks that I've made to my notion configuration to improve my workflow.