XMonad: A Window Manager for “real” people :)

XMonad in Gnome I have been a happy Gnome user for many years now and only recently started thinking about switching to KDE 4.2 when Ubuntu 9.04 (Jaunty Jackalope) comes out. However, it so happened that I bought two new widescreen monitors and setup a dual-monitor environment. This is when I started realizing the Gnome was clumsy at best when it comes to managing windows across monitors.

The reason I bought multiple monitors is to maximize my work area so I do not have to keep switching between overlapping windows. Gnome it seems is ill-suited to effectively and effortlessly managing space.

When I maximize a window on a widescreen monitor, the window takes up the entire space on the screen. Although this is the expected behavior, I could not rest looking at the huge amount of space being wasted. What I would like better is having two windows occupying the height of the screen but sitting right next to each other (i.e. tiled). This way less space is wasted and you get to see both windows at the same time. I could do this in gnome, but with considerable effort, as closing a window and re-opening another requires another round of frantic window arrangement.

In comes a tiling window manager … Tiling window managers do not allow overlapping windows (except for dialogs). They are a good solution when you need to tile windows to occupy all available screen space. Also, most tiling window managers emphasize keyboard control over mouse control. If you are productivity freak you will love the keyboard shortcuts that do away with a painful context switch required in navigating with the mouse.

There are many Tiling Window Managers out there. Rat Poison, Stump WM, Ion, dwm, wmii and XMonad are a few. I chose XMonad because I was able to figure how to integrate XMonad into the Gnome desktop environment. Most of these window managers don’t play well with Gnome. I use a number of Gnome apps and I would hate to not be able to use them.

Okay, here is how you Install XMonad on Ubuntu to work within Gnome

mkdir ~/.xmonad
cd ~/.xmonad
vim xmonad.hs


Then paste the following into the xmonad.hs file and save it.

import XMonad
import XMonad.Config.Gnome
import XMonad.ManageHook

myManageHook :: [ManageHook]
myManageHook = 
    [ resource  =? "Do"   --> doIgnore ]

main = xmonad gnomeConfig
    { manageHook = manageHook gnomeConfig <+> composeAll myManageHook}


sudo apt-get install xmonad libghc6-xmonad-dev



Note that libghc6-xmonad-dev is a 200MB dependency!

vim ~/.gnomerc


Add this line .gnomerc file and save.

export WINDOW_MANAGER=xmonad

The installation is done. Now to experience your new Window Manager, log out and then log back in. You will see your usual desktop with Gnome panels.

To learn more about XMonad and how to use it, follow these links:

http://ubuntu-snippets.blogspot.com/2008/08/xmonad-tiling-window-manager.html
http://tombuntu.com/index.php/2009/03/17/introduction-to-the-xmonad-tiling-window-manager/
https://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome/0.5

XMonad in Gnome

No Trackbacks

One Comment

  1. Worked like a charm! you’re great!

    Posted September 4, 2009 at 6:04 am | Permalink