For years I’ve been a die-hard KDE fan; while I’ll admit to temporarily jumping ship during the tumultuous 4.0 through 4.2 release cycles, and routinely trying out other desktop environments just to see how they schoon, I’ve pretty much stuck with my pal Konqi since back around 3.4.
For my desktop, especially at work, KDE still runs the show. But KDE doesn’t seem to enjoy running properly on my laptop, and frankly does a better job of getting in the way of my workflow than accelerating it. After some time with XFCE, LXDE, Openbox, and even IceWM, I think I finally found what I’ve been looking for in a desktop environment: Awesome.
Ummm… awesome?
So, maybe you’re asking yourself what a desktop environment (OK, window manager — I know…) called “awesome” is like, and if your answer involves sparkling effects, windows whizzing around the screen, and a spinning octohedron of desktops, you probably want to stop reading now and check out the less enthusiastically named “compiz“. Anyway, that’s not what I was looking for.
When I took some time to think about my workflow and what I wanted from my desktop, I came up with a quick list of what my ideal windowing environment would be like:
- It should automate window management as much as possible, so I don’t have to mouse around doing a lot of resizing, moving, etc.
- It should maximize the screen real estate given to applications
- It should be flexible enough to work with different applications appropriately, and smart enough to do so automatically.
- It should be keyboard-friendly enough that I don’t have to use a mouse for window management.
- It should be extensible, with a scripting language and simple API (like emacs)
- It should be theme-able in every detail, because I’m picky about how things look.
Basically, what I wanted was a window manager for Emacs freaks. I also realized that what I’ve been looking for is a tiling window manager.
After OpenBox, awesome seems to be one of the most talked about window managers among the minimal-desktop-environment crowd; and it seems like nearly every screenshot I could find of Awesome had an Emacs instance running, so I decided it might be the one for me.
Looking down its list of features, it sure answered a lot of my points:
- It can tile or float windows
- Its interface is minimal
- Its configuration is a lua script
- It has a full lua API to allow scripting of its behavior
- It’s fully operable without any mousing — but still allows you to use the mouse if you want to
- It has themes — notably, the zenburn theme I like to use in Emacs
So without further ado, I fired up aptitude and got cooking.
The learning curve
Awesome has, without a doubt, the most hideous learning curve of any windowing environment I’ve ever used, bar none. Just changing the desktop wallpaper required me to learn Lua and dig through a few pages of the Awesome wiki.
Lua is a mercifully simple language, something like Javascript but with some intriguing notions about collection types. That, added to the fact that awesome has a reasonably up-to-date wiki, and that there are scores of users who have posted their rc.lua and theme configurations online, makes it simple enough for a determined individual to find the information required to tweak it all to his liking.
So far, here are a few of the tweaks I’ve made:
- Theme and background to my liking
- Customized the top panel with battery and cpu speed & temperature monitor.
- Created named “tags” (kind of like virtual desktops) for common applications I use; each tag has its own layout mode appropriate to the application.
- Applications automatically open on the appropriate tags.
- Applications only get titlebars if they’re floating. This one still doesn’t quite work the right way.
As you can see in the screenshot, I also added a nice conky display, which I’ve also been hacking on. My newly-acquired lua skill apply there as well.
What I like
I’m weird like this, but I like the feeling that my software can do a lot more than it’s doing, I just have to learn how to make it so. It’s kind of the fun of discovery.
I like the fact that my screen space is not being used up by redundant panels and title bars. When it’s maximized, it’s just content and that little panel along the top.
I like that I can do any and all window management tasks using the keyboard — very nice when I’m writing code or blogging.
I like how little window management I actually need to do.
I like how blazing fast everything pops up. Because it’s 2011, I have a multi-core processor, and I shouldn’t have to wait 5 seconds for a terminal to appear (I’m looking at you, KDE!).
What I don’t like
I wish the API documentation were a little more fleshed out. Sometimes it’s pretty vague, and it’s hard to find what I need. I still don’t know how to do some things I want to do, and I don’t know the terminology to search for it.
I also miss something akin to the “Present Windows” effect I have on KDE (a.k.a. “expose” on compiz/OSX). I found something that’s supposed to simulate it, but it’s not quite right. That’s more of a mousy thing anyway, so it’s not a huge deal when I’m being keyboard-centric.
I don’t like not being able to move floating windows using alt+click. There’s probably a way to fix this, I just need to look it up.
Finally, there are a few programs that just go absolutely nuts in Awesome — notably, GIMP. I don’t use GIMP a lot, but I haven’t quite tweaked things just right so that it lays out the right way.
Conclusion
I’m sticking with Awesome on the laptop for now. I don’t think I’ll be switching my desktop workstations over anytime soon, but if I start mastering the configuration API in a real way, that may be a possibility.
Of course, there’s always another window manager to try…
you are right, it’s the best out of all the tiling wms, however configuration requires some trial and error which needs some time, updating the config , etc…
i always hoped for Enlightenment to evolve, it’s the most futuristic DE ( as you said, i know we are talking about WMs) with the libraries provided too, but . shame that it is getting less active.
Configuring things in a WM like awesome is an ongoing challenge, but that’s probably why I run it. Some people do crossword puzzles, some people memorize sports statistics — I reconfigure my window manager (or emacs, if I run out of things to do with the WM).
I was hard-core KDE (who I think are also doing a lot of cutting-edge things, even though the default configuration looks very Windows 7-ish) for the longest time, and I kept hoping the tiling mode introduced a few versions back would actually start working work a darn; but eventually I realized that as they were adding more features I was removing more and more from my desktop to achieve speed and simplicity.
Once you go tiling, you never go back. I didn’t believe it until I finally did it.