Personal tools

Xmonad/Using xmonad in KDE

From HaskellWiki

< Xmonad
Revision as of 16:59, 14 January 2008 by Gregwebs (Talk | contribs)

Jump to: navigation, search

Below configuration is for xmonad 0.5, known to work on Kubuntu

Contents

1 motivation

easier system monitoring on laptops with networking widget ability to browse all programs and utitlities with desktop bar (kicker)

2 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

3 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.

3.1 Xmonad Configuration

import XMonad

import XMonad.Config

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.

4 KDE Configuration

If you don't use the KDE kicker bar much, you may want to configure the kicker bar to autohide, and show when the mouse touches the lower left corner of the screen. Right click on the bar, select "Configure Panel", select "Hiding" on the left, select "Hide Automatically", select "Raise when the pointer touches the screen's", select "Lower left Corner"