I haven’t really changed my xmonad config in a long time. I started running it around the time version 0.2 came out, and that was in May, 2007. It didn’t take me too long to get comfortable with a simple xmonad + dzen setup, so except for upgrading my config to work with new xmonad versions and trying out new contrib modules now and then, not much changed.

My old desktop (the orange looks bad in a jpg, but good on the desktop, trust me)

My dzen setup was pretty brittle though, and hard-coded to the screen resolution. And there were too many pieces. Everything started from a bash script, and by everything I mean xmonad, 3 dzens, stalonetray, gnome do, mpd, various gnome daemons, xbindkeys, xmodmap, xsetroot, xset, and xrdb. It was messy, but it actually worked really well.

Since I upgraded to Ubuntu 10.04 (Lucid Lynx), I decided to make another change and get rid of most of that setup. Now I’m just running Gnome, with the window manager switched to xmonad. Of course, there are still customizations, but they’re pretty minor compared to the old setup.

My shiny new desktop. Yes, that's a lot of tabs.

I just used the simplest setup to replace metacity with xmonad, and added the xmonad-log-applet so I can continue using some of the same panel setup from dzen. The installation instructions for that all worked properly, and the only problem I have with the applet is that it doesn’t seem to handle utf8, so some characters don’t display properly (like in the title bar of the browser I’m typing this into).

The log-applet uses pango for text formatting, which is easy enough, and the example code for the applet is easy to adapt. I used this pango reference to get the formatting I wanted, and the log applet blends nicely into the new Ubuntu theme.

One thing I still wish xmonad supported is compositing. I think it gives a desktop a nice, smooth, solidness that I miss in xmonad. Of course, xmonad more than makes up for the lack by being ridiculously good. I gave xcompmgr and fadeInactive another try, but it’s still unreliable and unstable.

Every time I do something like this, I end up taking a look around the xmonad wiki and in the contrib modules and finding something useful. This time I found two small ones.

  1. Place hook. A simple module that controls where floating windows will appear on the screen. I have mine appear centered on the mouse cursor, but without going offscreen or covering the panel: placeHook (withGaps (24,0,0,0) (inBounds(underMouse (0.5, 0.5))))
  2. fullScreenEventHook. This comes from EwmhDesktops, but is only in the development version. It just makes hitting F in a video player, or F11 in a browser to go to fullscreen mode work. Previously I was using toggleLayout to switch to a fullscreen layout.

Of course, digging in to my config like this also shows that it’s time for a cleanup in there. There are many bits that I just don’t use, and there’s some messiness where my attempts to customize have collided with my lack of Haskell skills. Still, my config file is on github, so feel free to dig for usefulness. I’m sure it’s there somewhere.

My one remaining problem from this upgrade is that I can’t remap control keys. I was using xmodmap to add two control keys where I could reach them easily, and not having them is really slowing me down. This looks like it’s due to this bug, which I really hope gets fixed before release.

Overall, I’m very happy with this setup. It’s going to take something really amazing to get me to switch from xmonad.


4 Comments on “Switching to Gnome + Xmonad”

You can track this conversation through its atom feed.

  1. Kalle says:

    If you're still having trouble with utf8 in xmonad-log-applet, I can recommend to just ditch the whole sanitize funtion in the sample xmonad.hs file. For me, that was the reason I couldn't get weird characters to work.

  2. Geoff says:

    This seems like a pretty ideal setup. Is it possible for you to post any of your config files (like the xmonad.hs and such). I've been messing around with XMonad recently and am gently starting to grow more accustomed to it. I'm simply using trayer at the moment, but it's not as crisp looking as what you got.

  3. Nathan says:

    My config files (not just for xmonad) are on github at https://github.com/neh/myconfig/tree/master/xmona… . My config is pretty customized and maybe a bit crazy though.

  4. graudējs says:

    About utf8, verify that you use utf8 locale.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>