Following up on Karmic, Lucid and Natty, we have Xmonad on Oneiric Ocelot. Let’s get my biases out of the way. I love Xmonad. I hate Ubuntu Unity.
$ sudo apt-get install gnome-panel xmonad
$ sudo vi /usr/share/applications/xmonad.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Xmonad
Exec=xmonad
NoDisplay=true
X-GNOME-WMName=Xmonad
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true
$ sudo vi /usr/share/xsessions/xmonad-classic.desktop
[Desktop Entry]
Name=XMonad Classic
Comment=Tiling window manager that works
TryExec=/usr/bin/gnome-session
Exec=gnome-session --session=xmonad
Type=XSession
$ sudo vi /usr/share/gnome-session/sessions/xmonad.session
[GNOME Session]
Name=Xmonad Classic
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;
DefaultProvider-windowmanager=xmonad
DefaultProvider-panel=gnome-panel
FallbackSession=gnome-classic
$ mkdir -p ~/.xmonad
$ vi ~/.xmonad/xmonad.hs
import XMonad
import XMonad.Config.Gnome
import XMonad.Layout.NoBorders
import XMonad.Layout.ThreeColumns
main = xmonad
gnomeConfig {
modMask = mod4Mask
, layoutHook = smartBorders (layoutHook gnomeConfig)
||| ThreeCol 1 (3/100) (1/2)
||| ThreeColMid 1 (3/100) (1/2)
}
$ xmonad --recompile
|
After you logout, be sure to select “Xmonad Classic” from the login menu (gear). I’ve added a command cheat sheet to a previous post (trust me, if you’ve never used Xmonad before you need to learn five command before you even begin). Perhaps you’d prefer something more visual:

Thanks to Haskell Wiki and myszek123.