my faceChris Foley is a computer programming enthusiast. He loves exploring new programming languages and crafting nice solutions. He lives in Glasgow, Scotland and works as a software developer.

WinSplit Revolution

Disclaimer: WinSplit Revolution has been discontinued. I've removed links to their website as it is now used by a different company. They're selling a similar product which I have nver used so don't want to endorse.

A couple of days ago, I started testing a utility called WinSplit Revolution. It’s a handy little gadget that makes tiling and resizing windows as quick as a keystroke. I’ve never been satisfied with moving windows around and resizing them with the mouse. It’s awkward to get them to line up nicely and, although Windows has vertical and horizontal tiling options, they aren’t perfect either.

Eclipse and Visual Studio make it really easy to view code windows side by side. You just drag them around and they create or snap into frames. You can flick between tabs and if you want to adjust the sizes, moving a divider will resize the panes either side.

It’s been on my to-do list for a while to write a window manager to emulate some of these features. I don’t know why I didn’t think of it before but it occurred to me the other day that someone must have solved this problem before. So, I started reading…

It turns out that tiling window managers, as they are called, are quite common on Linux (or at least there are several available). This is not the case on Windows, at least not since Windows 1 which only had a tiling window manager. These days it’s stacking managers (or compositing for some of the fancy effects) and according to Wikipedia, there’s not much you can do to change that:

the window manager is tightly coupled with the kernel's graphical subsystems and is largely non-replaceable

So it looks like windows users are stuck with moving windows around. On the plus side, there is a whole host of utilities which make this easy. I spent some time sizing up some of the options and ended up installing WinSplit Revolution.

How it Works

The basic functionality can be accessed through shortcuts: [Ctrl] + [Alt] + [Numeric keypad]. The numbers on the numeric keypad correspond to the four edges, the four corners and the centre. So, if I want my window on the right half of the screen, it’s [Ctrl] + [Alt] + [6]. If I keep tapping the 6 it cycles through half, two thirds and one third of the width. Similar dimensions are defined for top, bottom, the corners and the centre. The defaults are sensible but if you absolutely have to, you can edit the shortcuts and sizes.

In general, I’m not too keen on keyboard shortcuts but here the physical layout of the numeric keypad corresponds to the window’s positions on screen. It’s so quick and easy to line up 2, 3, 4 or more windows into their own chunks of the screen. Sure, I still have to do each window individually, but it’s only a few quick keystrokes. No more dragging window corners about!

There are a few more shortcuts: shunt a window to other monitors, maximise, minimise, etc. A fun one brings up a window tools dialog that lets you take screenshots, and change window transparency.

What it’s good for

Here are some uses I have found for WinSplit Revolution in the last couple of days:

Perhaps the best part is not the layouts you can set up but how easy it is to change between them. If I’m doing a task of any complexity, I can have several different programs open at once and at different times, I need information from different combinations. The quicker and easier I can rearrange my desktop the better.

What’s the downside?

It’s been a glowing review and I’ve not been using WinSplit Revolution for a long time so it’s possible that I’ve just not encountered some of the problems yet. It’s not as flexible as the window manager I had envisaged making. However, it has saved me the effort of making it and I think the ease of use for the common cases trumps the extra flexibility.

Of course, I may still make my window manager/tiler but it will be more for fun than out of necessity.

Two Weeks Later

I drafted this blog post two weeks ago and since then I have made a few more observations. Rather than try to work them into the original, it seems more natural to add them at the end.

Making windows easier to manipulate has changed the way I like to work. Before, it was a pain to flick between windows so I liked programs to be self-contained. It’s no wonder IDEs effectively have file managers and consoles built into them! Now that seems crazy. I’d much rather have smaller windows that have specific tasks. Windows Explorer can be my file manager. Command Prompt is my console. IE is my browser. Notepad is my text editor. And if I don’t like my operating system’s standard tools, I can install others. The only one I use from that previous list is Windows Explorer. The rest I have swapped for Chrome, Git BASH and Geany.

In effect, I have replaced the limited tools provided by environments with specialist tools built for the job. It feels like I am working with my operating system instead of against it. I’m even beginning to enjoy GIMP’s separate tool windows, a feature that used to really bug me!

In Conclusion

Screen sizes have increased rapidly in the last few years and they can easily accommodate more windows than their smaller predecessors. Unfortunately, the interactions the Windows operating system provides for manipulating them have not changed much in the last ten to fifteen years. WinSplit Revolution helps to bridge that gap and provides some simple interactions for arranging windows on the screen. I’ve been using it for about a fortnight and would not like to be without it.

09 February 2012