During my lunch break yesterday, i ran across a couple comments on slashdot like “maybe emacs just works and thats why ppl are using it” and “tiling window managers are awesome”. So in my usual, screw it – lets see, i fired up emacs (not the first time) which ended pretty quick and I did some quick googling on a decent tiling window manager to try.

Enter xmonad, written in haskell no less (something I was going to learn after I wrap up my C# starter project, a calculator with a lexer so I can insert arbitrary words into a math equation, does proper math too, not just “eval(x)”). Anyway, within 20 minutes, I was sold. A tiling window manager is the best thing since sliced bread. Solves my window management issues I’ve been trying to fix since who knows when, things I’ve looked to for answers from desktop effects like scale, expose, overview of multiple desktops with drag and drop of windows, all that pretty flurry graphical stuff that gives you good feelings but then you rarely use.

Key Points: 
  • Focuses on little to no need for the mouse
  • The only window decoration is a 1 px border that changes color if it’s focused, you’d be surprised how much faster programs start without decorations
  • with no decoration, dragging a window involves alt-click, which is all I do anyway so low barrier to entry for me, but floating a window is rarely needed
  • you dont minimize, you tile so no need for decoration buttons
  • alt+shift+c closes any window – this could be seen as annoying but everything centers around alt anyway so it becomes natural quick
  • Navigating between tiled windows is dead simple, I don’t lose track of what’s opened.
  • alt+space swaps to different layout arrangements (3 total by default) which handle any use case I have
  • Moving windows between virtual desktops is easy
  • Use on a multimonitor setup is where things really shine. If my first monitor is desktop 1 and my second monitor is desktop 4, I can easily swap them by selecting desktop 4 on monitor 1. No need to drag something over or anything like that.
  • I can push windows around way to easy

I could probably type in all sorts of blurbs that might not really get the point across. If you’re bothered with window management, give xmonad a try and read up their quick guide to usage. Doesn’t take much time to get use to it.

I’ve honestly been putting off getting another monitor for my setup, i just imagined it being a pain to use but xmonad makes me feel like a master of window management and now I’m eager to get another monitor or two.


  1. xmonad is nifty. I first heard about tiling window managers from a co-worker who used awesome but then later moved to xmonad. In its default config, it’s very usable, but the best part is that it can be customized to do pretty much anything.

    I’m stuck dealing with a lot of things that require Windows right now, but I’m looking forward to being able to fire up my Arch partition soon and getting back to playing with xmonad. I’m still trying to figure out enough Haskell to get my dzen2 status bar the way I want it.

    • The best part is also a kicker for general install size, requiring an extra 400+ MB for the haskell build system or whatever it was exactly. My root system lives on an 8GB SSD with some other points mounted to the 750GB HDD.

      Still curious to play around with arch, always hearing so much about it, but I’m generally a fan of PPAs in ubuntu, and usually just install the mini.iso and then any packages I need after that. I’ve generally been rather happy to step away from slackware, gentoo, and the likes from the yonder years (though slackware is still my goto when there’s bad releases and I want something stable!)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: