For about eight years, I was a very happy WindowMaker user. It was very lightweight, aesthetically pleasing, and I had interiorized its behaviour and keybindings so much, I didn’t feel I’d ever switch away. I periodically tried (forced myself even!) to use any of the other, more en vogue environments… Experimented using Gnome for a week, KDE for a week, XFCE for a week (so I would have enough time to learn their ways)… And always came back to my good, well-known wmaker. In 2006, when we held DebConf6 in Mexico, I saw how other people worked with ion3. I fell immediately in love with it. Not because it is prettier, snappier or has nicer widgets than other window managers - but because it is enormously more usable. Quoting Tuomo Valkonen, the ion3 author,
Ion is not perfect and certainly not for everyone, but neither is any user interface. Usability is subjective.
Using a keyboard-oriented, tiling window manager represented -for the first time in 20 years (I had my first contact with a Macintosh in 1986)- a radical user interface change. For my way of working, I just don’t need a desktop, I don’t need having a background space or overlapping windows. What I need is a way to functionally organize the windows I have open at any given time, quickly switch between them (and not depending on the mouse, please!), maximizing screen space and all that. ion3 was godsent. Now, in 2007 there was (yet another) huge flamefest. Valkonen basically does not want distributors distributing any version of ion3 that’s not the latest, and introducing changes not approved by him - He basically demands ion to be non-free. So, it was moved to the non-free section of Debian where only Womble decided to keep giving it support. And, of course, by September 2007 Julien Danjou announced he had written another window manager: Awesome. My main motivation for switching away from ion3 is that… I don’t want to use non-free software. But I was very comfortable with ion3. It was only after I saw many other people using Awesome at DebConf8 I decided to bite the bullet and switch. It looked at least as comfortable as ion3. But… Well, I cannot come up with better phrasing than what Joey said when he switched to Awesome, almost exactly a month ago. When changing between the mainstream window managers, the differences are mostly cosmetic. But with these really different window managers… I cannot but reproduce Joey’s words:
I wish I had a good analogy to explain to my nontechnical readers what changing to a new window manager is about. One way to think about it is that it's like driving a car down the road, and suddenly swapping the steering wheel and brakes out for a tiller and gear shifter. And having to downshift for braking until you learn that the brakes moved to the turn indicator lever. By trial and error. But that's really only part of it. Another way to look at it is adopting a new philosophy. Or, in some cases a cult. (In some cases, with crazy cult leaders.) Whether they use Windows or a Mac, or Linux, most computer users are members of a big established religion, with some implicit assumptions, like "thy windows shall be overlapping, like papers on the desktop, and thou shalt move them with thy mouse". So, changing to a new window manager is a process of being dumped into a different environment, where nothing works like you've come to expect, and trying to construct a mental model that you can use to make sense of it. But it's also a process of modifying that environment to behave the way you like. And when done whole-heartedly, this doesn't just mean trying to make it like the environment you were used to before. It means trying to absorb the underlying philosopy of the window manager, and think up new ways of doing things, inspired by that philosopy, and modify the environment to allow doing those things. So ideally, "I switched to a new window manager" doesn't mean "my screen has some different widgets on it now". It means "I'm looking at the screen with new eyes."
So, what’s so different? Besides learning some new keybindings (expected, of course), Awesome has several suggested layouts to help you organize your workflow, usually (although not always) consisting of a main area and a side area, tiled side by side (or one above the other, or several stranger ways). This sounds rigid, but it is incredibly comfortable - and I’ve only been an Awesome user for three days! But what sets Awesome apart from basically anything else is the concept of tags. Whey you see an Awesome session, you recognize something similar to the very well known workspaces concept we have had in any Unix-like environment for many years, right? Well, but they are not workspaces. They are tags. What is the difference? When I work with workspace, each of my windows can be in a different workspace. So in one, I’ll have my mail-related stuff. In another one, I might be browsing. In another one, I have my development things, and I might be following some logfiles in yet another one. Awesome allows you to use tags for categorization in much a more flexible way. For example: I am mostly a web-oriented developer. I usually need four things when developing a system: A browser, Emacs, the log for my development server, and a console where I can peek and poke at my objects and interactions. Of course, cramming them all into the same screen makes no sense - It would be better to follow the good ol’ desktop metaphore, and just switch the focus and raise the window, right? In Awesome, I can have them all set to the maximum screen size - and use the most common combinations as well. Each of the windows can be tagged to more than one workspace (and yes, this is immensely more flexible than the always visible hint on traditional WMs). To begin with, I’ll give each major process a tag to itself, to work full-screen. Emacs is on tag 1, my browser on tag 2. The log and the console share a terminal (i.e. via screen or terminator). This console by itself is not too useful, so I’ll set it to tag 4, and we will go back to it later. So if I’m building a view or following online documentation, I will add tag 3 to both Emacs and the browser. I’m also setting tag 4 to the browser - That allows me to use it next to my terminal, following the results of my website-clicking. And, of course, tag 5 will be set to Emacs and to the console, so I can quickly check any quick API-related question that does not need the documentation or look at a newly written method. By the way, have you noticed CapsLock is the most stupid key invented, ever? Ok, I gave a good use to it: It’s called Mod4. Imagine it is just an extra Ctrl, Alt or Meta key. So, Mod4-1 gives me Emacs. Mod4-2 gives me the browser. Mod4-3 gives Emacs+browser, Mod4-4 gives browser+console, and Mod4-5 gives Emacs+console. And, of course, the handy Mod4-0 gives me all of my open windows tiled side by side. Even this is a pattern of being a newbie, I know - I could keep 4 and 5 free, and just tag several simultaneous tags to be active. How? Switch to tag 1 exclusively (Mod4-1), and activate tag2 as well (Ctrl-Mod4-2). There, I have Emacs and browser side by side. Want to get the console instead of the browser? Simple. Ctrl-Mod4-2 (toggle off tag 2), Ctrl-Mod4-3 (toggle on tag 3). Anyway - As you can see, I am excited at finding a very new and nice tool to help me work better. Today I was playing a bit with the Awesome widgets, but that’s something to be talked about later. In Debian, we are at a crossing point: Awesome is just reaching ion3’s popularity. And I’m adding my two main machines’ votes to Awesome. This is Awesome. Quoting (yes, one last quote) the official Awesome site, This gonna be LEGEN… wait for it… DARY!.
Anonymous 2008-09-05 14:39:37
I had about a month ago
I had about a month ago moved from ratpoison, to awesome … and I must admit, that it is really awesome :)
Anonymous 2008-09-06 10:12:47
Ben was not maintaining ion3
Ben was not maintaining ion3 in Debian when it became non-free, the former maintainer gave the package away because of that, and Ben took it over.
eolo999 2008-09-05 13:56:22
Give a look to xmonad
My route: ion3 -> awesome -> xmonad
Give a look to xmonad: http://xmonad.org/
I really find it awes… wonderful.
GaRaGeD 2008-09-08 14:10:32
Me too :)
It’s good when someone like you validates what I have decided a few months ago :)
I’ve been using awesome like 3 month now, and I cannot be happier, I used KDE for like 8 years, nothing I triesd before fitted as well as awesome, is not only about low memory footprint, it’s about usability too.
I always tiled manually my windows (hate maximized) til I found awesome
gwolf 2008-09-08 08:16:25
Good catch - correcting it.
Ben asked me to do binary NMUs a couple of times (as non-free is not autobuilt), so I assumed he was still the maintainer. Note taken, thanks.
Ian McEwen 2008-09-06 11:09:37
Good post! Another wm you might be interested in is stumpwm; it’s the successor to ratpoison (which you may have heard of), written entirely in Common Lisp. The benefit of that language choice? It can be reprogrammed, to its very core, WHILE IT IS RUNNING. Keyboard commands are emacs-like, with fully configurable everything (as per the previous sentence); it’s still not 1.0, but because of Common Lisp’s awesome debugging system, derived from the REPL, it’s pretty hard to “crash” per se if you set it up right. It doesn’t have the tagging features you describe in Awesome, though — perhaps a combination project is in order!
Anyway, I think we can agree that variety in window managers is, well, awesome! Thanks for a good post.
joey 2008-09-05 13:47:32
Aha! I had not noticed how
Aha! I had not noticed how the tag toggling could be used to make a client be on more than one tag. What you described is very useful.
rmayorga 2008-09-06 23:31:07
I actually use wmaker for a while and I feel very confortable there, then I get seduced by gnome and keep using it for years, until I had to use a low resource computer, then I move to awesome, now is my default choice :)