Kristian Lyngstol's Blog

A free software-hacker's blog

Window Managers – WMII and Awesome

I’ve been trying out wmii and awesome (wm) for a few months, and must say it’s a mixed pleasure switching from Compiz to wmii and awesome.

First let me tell you a little bit about wmii and awesome: They are both ‘dynamic tiling window managers’, which basically mean they resize windows for you so you always use the entire screen. Additionally, they both work on ‘tags’ instead of ‘workspaces’, which is just an other way of saying they work on workspaces, but diffrently. Really.  [Edit: The major difference is that you can have a window in more than one tag, where with traditional workspaces, your only option is to have a window in either one or all workspaces/viewports/thingamajings]

So why did I stop using Compiz? Because I didn’t have time to figure out why I had screen glitches when I was scrolling after upgrading to Ubuntu 9.04. I knew it probably wasn’t Compiz, but I also knew it was probably related to something that Compiz uses (like TFP or similar). It’s just too much dark magic at work, and it’s frankly not very mature (there, I said it. A long-time Beryl/Compiz-developer said that the technology that Compiz uses isn’t very mature).

So anyway, I’d heard good things about wmii, so I tried it.

I liked it.

I finally got used to navigating with hjkl, after using GNU+Linux for 10 years.

Let me tell you why I like it: I essentially use two programs for what a wm is concerned: urxvt and firefox.  And mplayer, but that’s hardly an issue. Firefox is usually maximized, and I quickly start and stop terminals. In Compiz, I wrote maximumize to make that easier. With WMII, terminals just worked.

Tags with wmii was also fun, but I didn’t feel that I really got to use them properly. You can’t view multiple tags at the same time, and if a window has multiple tags (ie: exist on multiple workspaces/viewports), you easily end up removing tags from it if you want to move one of the tags around. This typically means that if I tag all my firefox-windows with ‘f’, then decide to move the calendar-window from tag 2 to tag 3, it’s no longer tagged with ‘f’ unless I re-tag it.

However, one thing really ruled with wmii: Pretty much everything is a script, or oriented around scripts. The defaults were a little strange: by default, it used ALT as mod key, which is rather common to use for other apps. And it also had ‘exec’ as the first option if you used Mod+a to execute certain actions, which essentially meant I crashed/stopped the wm several times by accident.  But this was all based around simple shell scripting and piping. And it was easy to hack. Which I did. And it was great fun.

But here’s the problem: WMII has no notion of multihead. This was a major drawback, as I had to use multiple X screens, which isn’t nearly as dynamic. This essentially turned into the show stopper. I couldn’t move my windows around, and I had to restart X if I connected my laptop to a projector or external monitor.

So I turn to awesome. And immediately I notice a few issues: First of all, it uses x-terminal to start terminals. This is good. What’s not good is that this is set to gnome-terminal by default on Ubuntu 9.04. I wasn’t running GNOME. It didn’t start. There was no indication of why it didn’t start. I won’t really consider this an awesome-issue, but an ubuntu-issue.

Awesome handles itself similar to wmii, but it actually handles multihead in xinerama/xrandr/twinview/mergedfb/whateveryouwannacallit. It simply works. The tags seem simpler; Where in wmii I created tags with names easily (for instance a “mail” tag, or a “customer A”-tag) with Mod+shift+t/Mod+t, awesome seems to come with nine tags pre-created and no names (ie: tag one, two, three…). It does seem able to display multiple tags at once, though, which is nice. And better yet: It’s really easy to toggle what tags are shown.

Awesome and wmii is also different in that Awesome deals with “window layouts” where wmii deals with columns. In wmii, a column is just that: a column of windows. You can move your windows with mod+shift+hjkl, and moving them to the left/right will move or create a column. Awesome, on the other hand, has a number of layouts to select from, and will create columns and rows accordingly, which strikes me as more flexible. However, moving windows in awesome isn’t quite as nice: You don’t actually move them, you switch them with the next/previous window, which means you can’t intuitively move a window from left to right.

Awesome also has a nasty habit of displaying important windows (like the confirmation-dialog of nvidia settings) below other windows. This wasn’t an issue with wmii. However, the general feel of awesome is somewhat better.  It used the super-key by default as modifier-key, and it uses the F1/F2-key combos for help and running stuff, so fewer key-bindings to remember (although it uses mod+F1/F2, not Alt+F1/F2). Oh, and Mod+F1 is actually just a shortcut to open manual pages, and Mod+F3 is a shortcut to open ssh terminals (pretty cute, really).  I still haven’t felt the need to configure awesome much, but it seems fairly straigth forward.

What I miss most in awesome, that wmii had, was the ease of navigating windows. Awesome places all window-titles in the menu/status-bar at the top, which essentially means it’s impossible to tell what window has focus. I’m guessing I can improve that with a theme, but I shouldn’t have to.

So what window manager to use? Well, both awesome and wmii are good choices if you don’t need/want a full DE (KDE/GNOME/XFCE/…). I’d say that if you have two monitors, or are likely to use two monitors, you probably want awesome over wmii. Otherwise, I’d probably go with wmii, due to the window navigation and the ease of customizing it.


Awesome:  Better defaults, quirky window navigation, less dynamic tag-creation, better multihead. Seems more prone to bugs (dialogs below other windows, changing tag on one head seems to change it on the other too from time to time.)

WMII : Actual help on startup. NO multihead support. Powerful tag creation/deletion. No way to veiw multiple tags. Really nice window navigation. A tad too locked into coulmns.

All in all, something I miss in both of these is a way to switch focus between screens without using a mouse. Maybe I’m missing it somewhere in Awesome, but wmii will never be able to do this as long as it requires multiple X screens. Awesome was very intuitive: Things like moving windows with the mouse ‘just worked’.

[Edit: Awesome can switch between screens with Mod+Ctrl+j/k. Just goes to show you should read man files before hitting the “publish” button]

Oh yeah, I still haven’t given up on Compiz. I just took a break. Maybe I’ll work on wmii or awesome, or go back to Compiz… Who knows.

9 responses to “Window Managers – WMII and Awesome

  1. amphi July 21, 2009 at 6:51 pm

    perhaps give xmonad a try

  2. smspillaz July 22, 2009 at 9:43 am

    I like tiling window managers too, but I think your issue with compiz is probably driver related, or at least the nvidia drivers are mega suckage at doing texture refreshing. (BTW, you will hit the same issues with kwin and mutter too). Talk to onestone :P

    Have you tried compiz’ non opengl/composite mode? It does decoration reparenting now so it should Just Work [TM] (or at least with kwd).

    It would be nice to see you come back to compiz at some point – we’re still plugging away (albeit slowly, maniac has zero time and onestone has limited time, it’s mostly b0le cornelius and myself nowadays). Perhaps take some of your inspiration to the window manager designed to rule the world.

    – Sam

    P.S: b0le wrote a plugin to do tagging in compiz called ‘tag’ fittingly. I don’t think it’s done yet but give it a try if you can.

  3. kristian July 22, 2009 at 10:49 pm

    Nice to hear Compiz is still alive, although it sounds like it’s struggling.

    I haven’t given up on Compiz, and I know my issues are probably a driver issue, but I just don’t have the time that I used to. I’ve just bought an apartment and renovated it pretty much completely, and I’m working full time… Doesn’t leave much time.

    I haven’t used Compiz since February though. Like I said, I might go back to Compiz, at which point I expect I’ll do some coding, but I wouldn’t count on it being any time soon. Too much of my energies is being diverted to either Varnish or ‘home improvement’.

    As for xmonad, I might indeed give it a try. There seems to be quite a lot of tiling window managers out there…

  4. Luke Hudson September 18, 2009 at 2:19 am

    This plugin for compiz is the beginning of a beatiful merging of compiz and tiling window managers.

    This gives keyboard-driven window moving/sizing/tiling.

    What it lacks:
    ‘tags’ concept from WMII/awesome
    focus left/right/up/down window from WMII/Ion

  5. Nikhil Murthy October 2, 2009 at 6:55 pm

    Awesome that you’re liking tiling WMs! I made the foray into tiling WMs over the summmer (switched from Compiz) and it’s just awesome how I’m not wasting my screen real estate anymore. However, I do love the plugin architecture and some of the glitz that Compiz provides. I read your post on the compiz-fusion forums that you’re planning on working on a real tiling plugin for Compiz (Grid is great, but it doesn’t compare to a real tiling WM). I would love to help you out with this in whatever way possible. Please shoot me an email anytime if you’d like help. I was thinking of beginning work myself on basically an awesome clone plugin for Compiz, which would be configured via Python instead of Lua.

  6. Lewis November 20, 2009 at 4:15 pm

    I was having a problem with display and scrolling in compiz on my laptop when I tried it the other day to see what its current state was.

    Maximumize was the part of compiz that I missed the most when I started trying a variety of window managers, until I got into messing with tiling WMs.

    I would recommend looking at xmonad if you use Xinerama. It’s what I have been using for a while now. I had to switch to Xinerama to make it work well with multiple displays, but think that it was probably worth switching (although I still haven’t modified my shell scripts I was using to launch hulu and mplayer on the tv.. i modified my shiftTo hook to auto take hulu over there though). greedyView is weird, but I kind of like it (I can switch to a tag on my other monitor and pull it onto this monitor, rearrange, switch back/swapping what was on one monitor for the other). Takes a little bit to get used to the Haskell syntax in the config file too, but I am taking a closer look at Haskell and having fun playing with it.

    I imagine it has a way to support tagging clients to multiple windows but have never looked into it. There are a great many configuration options available for it. I bound buttons to launch man pages and shell connections and what not with completion in xmonad, but tend to forget to use them.

    Hiding windows under other windows sometimes was one or the things I sort of disliked when I played with awesome. That and they seem to change their configuration syntax often, from what I hear. It only hit me once while I was using it, but then again, I only used it for a couple of weeks. It did support a non-Xinerama multi-head setup great though.

  7. Eliot December 31, 2009 at 10:30 pm

    Nice comparison of wmii and awesome. I use wmii and was curious about how it compares to awesome. I find the navigation using h,j,k,l intuitive and I think I’d miss titlebars on each window if they weren’t there. I’m also learning script wmii so that has been fun. And I only have one monitor so a lack of dual head support is not an issue for me. I’ve heard good things about Xmonad also but haven’t given it a serious trial. Take a look at my wmii blog posts here:

  8. C2H5OH March 20, 2010 at 11:14 pm

    Some time ago I tried i3 ( and it’s meant to be a better wmii with proper multihead support. When I tested it, the WM was fairly recent but I think it has evolved quite fast.

  9. kristian March 27, 2010 at 1:57 am

    i3 looked really promising, I agree with most of their statements, until I got to the ‘autoconf/automake’-part. I’ve sort of been hacking on my own little as-of-yet non-functional wm, but I’ll definitely take a closer look at i3 when I get a spur of inspiration.


Get every new post delivered to your Inbox.