Metacity (According to that page, there is no Metacity homepage. While there might be some truth to it, the site also says: But this is a place where you can find out about Metacity. (emphasis theirs), so we can treat it as such.) is my current window manager, because it’s simple, relatively fast and doesn’t look like a Unix window manager from the ’80s. I don’t need the eye-candy Compiz Fusion provides (though there are some useful not-only-for-the-eyes features in it, I prefer speed) and it’s not fast enough, since I don’t have a fast video card. Metacity also supports compositing, but that’s slow too.

One thing I always wanted in Metacity (and, for that matter, in every window manager) is forcing specific applications to specific workspaces. Metacity is meant to be a somewhat minimalist WM, so it doesn’t support placing windows according to user-definied rules. Devil’s Pie to the rescue! It is:

A window-matching utility, inspired by Sawfish’s “Matched Windows” option and the lack of the functionality in Metacity.

Just what poor Metacity users need. Now one can do

(if (is (window_class) "Firefox")
    (begin
      (set_workspace 2)
      (undecorate)
      (maximize)))

to constrain Firefox windows to the 2nd workspace, remove the borders (i.e. the WM decorations) and maximize it. Or

(if (and (is (window_class) "Skype")
         (is (window_role) "Chats"))
    (set_workspace 3))

to send Skype chat windows to the 3rd workspace.

It can even resize the windows, make them sticky or transparent &c. Basically everything what the WM can do. While the included documentation is very brief (to say the least), make sure you read it. There's a good article about its configuration (and supported expressions + examples) on this page. I won't repeat it here. Basically the configuration file format is s-expression based, so I can almost feel at home.