I'm new to XMonad and I'd like to understand what's going on in this config file. It is a working config file, nothing is broken. I understand what each setting does but I don't understand what's happening under main = ....Any explanation is appreciated. Also, in this setup, how would one go about changing/adding a keybinding?-- Importsimport XMonadimport XMonad.Hooks.DynamicLog-- The main functionmain = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfigmyBar = xmobarmyPP = xmobarPP { ppCurrent = xmobarColor #429942  . wrap < > }toggleStrutsKey XConfig { XMonad.modMask = modMask } = (modMask, xK_b)myConfig = defaultConfig { modMask = mod4Mask                         , terminal = urxvt                         , borderWidth = 2 }If this is the wrong StackExchange website please feel free to move it to a more appropiate one. :)
Please explain what's going on in my XMonad config file
xmonad;dot files
The =<< is the action composition in Haskell and requires knowledge of how monads work in Haskell and the related syntax.To try and understand exactly what's happening there, maybe look at the links (below) describing the =<<, >>=[1][2].To add your own keybindings, you can add , keys = myKeys to your myConfig and then define your own myKeys as described on Xmonad wiki. For a sample keys map that I personally use, have a look at my bitbucket xmonad dotfiles.[1]: http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v%3a-61--60--60-[2]: http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:-62--62--61-