Xmonad is a cool tiling window manager for ubuntu. Though there are lots of other window managers out there (like dwm and scrotwm). The main reason why I liked Xmonad more is because you can combine it with gnome. This means that you can still drag windows around and you get to keep the panels. And also because I really like the new ubuntu font in 10.10. :D
I also used kupfer so I can quickly search and startup programs. There is also gnome-do, which has prettier UI, though I like kupfer more since it doesn't create new instances of a program when one is already running.
First you install Xmonad and Kupfer
sudo apt-get install xmonad kupfer
Then you set your default window manager to Xmonad
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager xmonad --type string
Then create this file in your home directory (~/.xmonad/xmonad.hs)
import XMonad import qualified XMonad.StackSet as W import XMonad.Config.Gnome import XMonad.Util.EZConfig import XMonad.ManageHook import XMonad.Actions.CycleWS import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.SetWMName import XMonad.Hooks.ManageHelpers import XMonad.Layout.NoBorders myManageHook :: [ManageHook] myManageHook = [ resource =? "Do" --> doIgnore , isFullscreen --> doFullFloat ] main = xmonad $ gnomeConfig { modMask = mod4Mask , terminal = "urxvt" , borderWidth = 2 , manageHook = manageHook gnomeConfig <+> composeAll myManageHook , logHook = ewmhDesktopsLogHook >> setWMName "LG3D" -- java workaround , layoutHook = smartBorders $ layoutHook gnomeConfig } `additionalKeysP` [ ("M-S-q", spawn "gnome-session-save --gui --logout-dialog") -- display logout-dialog -- Lock Screen , ("M-S-l", spawn "gnome-screensaver-command -l") , ("M-p", spawn "kupfer") , ("M-", spawn "kupfer") , ("", nextWS) , ("", prevWS) , ("M1-", windows W.focusDown) , ("M-", nextScreen) , ("M-", prevScreen) ]
...thanks to @poymode and @engwan for helping me with setting this up on my pc. And also to markjeee for brainwashing us with these cool stuff. :D