Question

I'm on a Fedora-derived distribution where XMonad plays nicely with the windowing environment. The main assignment within my ~/.xmonad.xmonad.hs looks something like

main = do 
     session <- getEnv "DESKTOP_SESSION" 
     xmonad $ maybe desktopConfig desktop session 

desktop "gnome"        = gnomeConfig 
desktop "kde"          = kde4Config 
desktop "xfce"         = xfceConfig 
desktop "xmonad-gnome" = gnomeConfig 
desktop _              = desktopConfig 

I see all these slick modifications I could make a la

xmonad $ desktopConfig {
   manageHook = myManageHook <+> manageHook desktopConfig
 , layoutHook = simpleTabbed ||| layoutHook desktopConfig
 }

at places like http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Config-Desktop.html.

I am a complete Haskell noob. How can I cleanly modify the xmonad $ maybe desktopConfig desktop session line to permit adding these goodies in a fashion that doesn't break the windowing environment dispatch?

Was it helpful?

Solution

main = do 
    session <- getEnv "DESKTOP_SESSION" 
    let config = maybe desktopConfig desktop session
    xmonad $ config{ manageHook = myManageHook <+> manageHook config, ... }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top