I started out my "run a new Desktop Environment every week" adventure roughly one month ago with Enlightenment (which is really quite excellent).
Then I transitioned to the Awesome Window Manager. One week passed. Then two weeks. It's now taken me three full weeks to wrap my head around Awesome. And, truth be told, I'm still not sure what I think of using Awesome as my day-to-day environment.
For those unfamiliar, Awesome is – at least at first glance – a simple, tiling window manager, similar in many ways to dwm (which it is a fork of). The name “Awesome” was inspired, I kid you not, by Neil Patrick Harris...specifically the character he played on How I Met Your Mother.
My first few days of living with Awesome (as my one and only Desktop Environment) were quite pleasant. I've always been a fan of tiling window managers (such as xmonad) and I had spent some time with Awesome in the past, so I was able to hop right in and do basic things without too much of a learning curve.
And, really, what's not to love? It's a (deceptively) simple environment and uses about as little RAM as is possible for a piece of software to use (we're talking a handful of MB here). The raw speed and lightweight nature of Awesome is incredibly refreshing – especially coming from memory and CPU-hungry environments like Unity, GNOME, and KDE.
Then, after a few days of relative Desktop Environment bliss, I was smacked in the face with Awesome's biggest weakness: it's too damned customizable.
Widgets (and Themes) in Awesome are created using Lua (the programming language, not the Hawaiian martial art focused on breaking bones). This is a double-edged sword. On the one hand, you get the awesome (with a lower-case “a”) power of using mature (yet lightweight) scripting language to extend and modify nearly every aspect of your system. But, on the other hand, you have to use a scripting language to extend and modify your system, which, despite being right up my alley, makes me feel instantly sleepy.
So I dove right in. I was going to customize the living daylights out of my environment using Lua. And, you know what? I did. And it was...truly terrible. The widgets I created were buggy, dreadful, useless messes, leaving me with two options: I can either stay the course and try to fix my newly created widgets until they were usable, or I could scrap it all and start with a default Awesome installation, free from the disease that is known as "Bryan's Terrible Lua Code."
The choice was clear. My custom code went right into the trash. And, almost instantaneously, I began enjoying Awesome again.
One of the most awesome things about Awesome, in my opinion, is the tagging system. Think of tags like virtual desktops. Only backwards. And upside down. And better.
Basically, you don't use virtual desktops (or workspaces) at all. You have tags. And you can have the same applications window assigned to multiple tags, which means that you can have two different “Tags” that show entirely different application windows (like with virtual desktops)...but you can also have your instant messenger window show on both Tags. It's a little thing... but so astoundingly handy.
In fact, leaving that feature behind to move on to my next Desktop Environment (which I did earlier today) was astoundingly hard.
In the end, I truly enjoyed my time with Awesome. I'm still undecided, though. Do I love it? Do I hate it? It's definitely some sort of strong emotion.
Maybe Awesome is my frenemy.