Reputation: 1332
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?
Upvotes: 3
Views: 1250
Reputation: 85767
main = do
session <- getEnv "DESKTOP_SESSION"
let config = maybe desktopConfig desktop session
xmonad $ config{ manageHook = myManageHook <+> manageHook config, ... }
Upvotes: 2