First, some background for the non-technical among you. A window manager is a piece of software that controls the windows on your computer. It will do things like placement, drawing, keybinding, et cetera. If you’re on Windows or Mac OS X, you have a window manager built-in to your operating system and cannot easily change it. However, if you’re on a more traditional *nix (Linux, Solaris), you are free to select your window manager. In this post, I’ll talk a little about what I use and why it’s awesome
Many people on Linux use what are known as desktop environments. These represent a combination of a window manager, a file manager, and some other essential tools. For example, the Gnome desktop environment includes the Nautilus file manager, the Gnome taskbar, either the Metacity or Compiz window managers. A Gnome desktop environment running Metacity might look like the following:
However, a bit over a year ago, my friend Brett introduced me to the wonderful world of tiling window managers. The idea behind a tiling window manager is very simple: windows never overlap. It seems that this is a giant step back; after all, overlapping windows were one of the big new features in Microsoft Windows 2.0. Well, call me a Luddite, then, because I haven’t gone back to “normal” window managers since. Whenever I’m on my laptop (which uses Gnome because it’s small screen and poor keyboard are ill-suited to a tiling window-manager) or a lab machine, I wonder how I ever got anything done. Below is a screenshot of what might be a typical display on my desktop:
On the left, you can see a large gvim window editing a LaTeX file. On the right, an evince window displays the compiled PDF. Below that, I have an rxvt-unicode terminal emulator open for miscellaneous tasks. Finally, on the right-hand edge of the screen, I have a copy of GKrellM open displaying my system stats and such. Don’t worry — a simple middle-click collapses that 80-pixel bother down to 5 pixels when I want to actually focus on my work.The window manager here is called awesome. It’s a fork of dwm, which is closely related to the original tiling window manager I used, wmii. Awesome has a lot of, well, awesome features. For one thing, most of the non-performance-centric parts are written in Lua, so it’s a snap to configure, and easily extensible. It also has a lot of quite nice tiling modes, some of which aren’t exactly tiling. For example, the following screen shot displays EasyTag and gmpc in the “magnifier” mode, which displays a foreground window and many tiled background windows:
The configuration file that I’m using for awesome can be found here, the theme here, and the GTK+ theme here. Some notable features of this configuration:
- Tabbing support – tag some clients with <Super>-t and press <Super>-y to tab them. <Super>-Tab switched between items in a tab group. Animated GIF demonstrating this
- Configurable presets for master/slave windows. Essentially, this means that I can say “I always want Pidgin to go in a particular place. Which is nice.
- Named tags. Awesome (like almost all non-Windows window managers) uses virtual desktops (“tags”) to provide many workspaces. Those are the “term comm music web 5 6 7 8 9″ that you see in the upper-left-hand corner of my screenshots. I have cleverly renamed my first few workspaces into something that reflects their usage. All 9 workspaces can still be accessed with <Super>-1 through <Super>-9
- Easy program launching with <Super>-p.
There are lots of other neat things about awesome, but I figure this is about enough for one blog post. If you have any questions or suggestions, don’t hesitate to leave a comment. Ciao!










What about Ion? I know Brett used to use that, and I tried it for a while. I ended up going back for 2 reasons — first, I had a great navigation configuration using the (mostly useless) numpad and then got a keyboard that agreed that the numpad was useless and left it out. Second, I found a tiling WM somewhat irritating for things like web browsing that often spawn new windows that you may actually prefer to have obscuring the main window. Similarly, alert boxes, which were designed for floating window managers, don’t play too nicely with tiling WM’s.
Have you had problems with the web-browser issue and what have you done to allievate it?
~KMarsh
Awesome and wmii both have “floating” modes that are toggle-able on a per-window basis, and are automatically set for windows (like dialog boxes) that have the right X property set (which they tend to).
Some web sites do try to spawn fixed-size floating windows, but I see this extremely-rarely, which doesn’t bother me, because if I want it floating, I just press <Super>-space and it floats properly.