Difference between revisions of "Xmonad/Using xmonad in KDE"

From HaskellWiki
Jump to navigation Jump to search
(added new page)
 
(layout)
Line 7: Line 7:
 
== starting xmonad ==
 
== starting xmonad ==
 
set the KDEWM variable
 
set the KDEWM variable
  +
<code>
 
KDEWM=/home/greg/bin/xmonad
 
KDEWM=/home/greg/bin/xmonad
  +
</code>
 
I don't know where the right place is to do this, so I just inserted this line
 
I don't know where the right place is to do this, so I just inserted this line
 
in /usr/bin/startkde
 
in /usr/bin/startkde
Line 34: Line 36:
 
]
 
]
 
where
 
where
myIgnores = ["gnome-panel", "desktop_window", "kicker", "KDE Desktop", "KNetworkManager", "KMix", "Power Manager", "KPowersave", "klipper", "knotes", "panel", "stalonetray", "trayer"]
+
myIgnores = ["gnome-panel", "desktop_window", "kicker", "KDE Desktop", "KNetworkManager", "KMix", "Power Manager", "KPowersave", "klipper", "knotes", "panel", "stalonetray", "trayer"]
 
myFloats = ["MPlayer", "Gimp", "kdesktop"]
 
myFloats = ["MPlayer", "Gimp", "kdesktop"]
 
myOtherFloats = ["alsamixer"]
 
myOtherFloats = ["alsamixer"]

Revision as of 16:50, 14 January 2008

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.