skip navigation

Valid XHTML 1.0!

Valid CSS!

This page is standards compliant and Section 508 accessible

End of navigation

Ratpoison - The Ultimate Keyboard-based Window Manager for X

Short version: The Ratpoison keyboard-based window manager for X is great, but the out of the box configuration is very featureless. I have created a configuration package for ratpoison that gives it workspaces, a clipboard, and keyboard macros right out of the box. There are popup selection boxes for selecting the workspace, selecting the window, and for the clipboard (cut and paste individually or as a queue or stack). Just untar, run a script, and go.

Long version

For all but a few tasks, KDE, Gnome, MS Windows, and Mac OSX put their energy in the wrong place for a power user. For most tasks (at least all the ones I do), a single full-screen window is the best way to work. No widgets, no flashing interruptions, no weather forecast, no system monitor, no clock. Ratpoison is simple: every window is full-screen (although if you want you can split in various ways like with Vim or screen). Press Ctrl-t Ctrl-(1-9) to select workspaces 1 through 9 (like workspaces in KDE/gnome), Ctrl-t (1-9) to select window 1-9 of the current workspace (like the windows within a workspace in KDE/gnome). Of course there are selection popups if you need them, but if you use your computer half as much as I do you'll have all the locations memorized just through use (I already knew where everything is after two days). I used to get so frustrated with KDE because everything would go down if I restarted X, but with screen and ratpoison, everything comes back up exactly where it was, still running (assuming it wasn't a complete reboot of course). With my research and hobby stuff combined, I have about 40 windows or terminals open, several with long simulations running, so it was no trivial task to restart KDE and get everything the way it was after a reboot. Stuff running on remote computers like my simulations now come back unmolested even if I reboot thanks to screen. And of course we're talking miniscule resource usage compared to KDE, which is important for my old laptops but not for the main system I run the main VNC servers on.

Like screen, everything is scriptable on the command line, so you can use bash, perl, python, etc to script it. I've already created a clipboard application in an hour that has 9 slots that can be cut/pasted individually or can push/pop as a stack or queue. So for example, if I'm emailing a news story blurb, I can push the URL and a couple of selections without leaving the Firefox window, then pop them all off the queue in Mutt when writing the email. The only time I use the mouse during that whole operation is when selecting the parts of the story text I want to excerpt. In contrast, I never could get Klipper to work, and even trying usually crashed Klipper or KDE.

I also implemented keyboard macros, so that for example, Ctrl-q pages back in screen sessions instead of Ctrl-a ESC Ctrl-b Ctrl-b.

For me the real beauty of it is that it is small and simple enough that I can grok how to do just about anything I can imagine within the confines of the ratpoison way of doing things. I can look at the man page and figure out how to do just about anything. If that's not enough, the source code is small enough that I can make changes if I want to (and I already have). It's a mere 18,000 lines of code (including whitespace) which is about as small as I can imagine something as complex as a window manager could be.

I imagine one could do everything I'm doing using KDE, Gnome, fvwm, or many other window managers, but they're so complicated I'd hesitate to try. I was already using KDE for years like I use ratpoison (opening windows to full screen), and dragging the mouse around to change windows was starting to drag (har har). The one time I tried scripting KDE I gave up in frustration because it was complicated, poorly documentated, and didn't work. By stripping out absolutely all mouse interaction and visual framing, ratpoison is simple enough for mere mortals to understand. It is fully documented and I haven't found any bugs yet (knock knock).

I always thought window manager visual effects stuff was stupid anyhow, and I also think the mouse should only be used for mouse-like things, such as graphics editing. For anyone who shares my views on those two philosophical points, this is the window manager for you.