سؤال

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?

هل كانت مفيدة؟

المحلول

main = do 
    session <- getEnv "DESKTOP_SESSION" 
    let config = maybe desktopConfig desktop session
    xmonad $ config{ manageHook = myManageHook <+> manageHook config, ... }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top