Xmonad/Using xmonad in KDE
Below configuration is for xmonad 0.5, known to work on Kubuntu
motivation
easier system monitoring on laptops with networking widget ability to browse all programs and utitlities with desktop bar (kicker)
starting xmonad
set the KDEWM variable
KDEWM=/home/greg/bin/xmonad
I don't know where the right place is to do this, so I just inserted this line
in /usr/bin/startkde
Dealing with KDE windows
Without doing anything, you now have a working KDE environment. One nice thing is that system notification windows will pop-up as small windows in the upper left window.
Xmonad Configuration
import XMonad
import XMonad.Config
import qualified Data.Map as M
import qualified XMonad.StackSet as W
main = xmonad $ defaultConfig
{
, manageHook = manageHook defaultConfig <+> myManageHook
}
where
myManageHook = composeAll . concat $
[ [ className =? c --> doFloat | c <- myFloats]
, [ title =? t --> doFloat | t <- myOtherFloats]
, [ resource =? r --> doIgnore | r <- myIgnores]
, [ className =? "Firefox-bin" --> doF (W.shift "2:web") ]
, [ className =? "Opera" --> doF (W.shift "2:web") ]
]
where
myIgnores = ["gnome-panel", "desktop_window", "kicker", "KDE Desktop", "KNetworkManager", "KMix", "Power Manager", "KPowersave", "klipper", "knotes", "panel", "stalonetray", "trayer"]
myFloats = ["MPlayer", "Gimp", "kdesktop"]
myOtherFloats = ["alsamixer"]
After ignoring the KDE kicker and panels, they will all be placed on the first desktop, which should be reserved for these items. It looks kind of odd, but it works.
KDE Configuration
You will probably want to configure the kicker bar to autohide.