Configuración Personalizada de XMonad

XMonad es uno de los mejores gestores de ventanas para GNU/Linux. A partir de la versión 0.12, se requiere algo más de cuidado para que las ventanas respeten el espacio de barra de estado, de tal forma que esta última quede siempre visible.

A raíz de los cambios introducidos a partir de la mencionada versión, he empezado a re-escribir por completo mi configuración, utilizando dzen2 para la barra de estado. En el código fuente del módulo XMonad.Hooks.DynamicLog puede verse una forma sencilla de adaptar statusbar para dzen2:

---
--- dzen Dock
---
myDzen :: LayoutClass l Window
     => XConfig l -> IO (XConfig (ModifiedLayout AvoidStruts l))
myDzen conf = statusBar ("dzen2 " ++ flags) myPP toggleStrutsKey conf
 where
    fg      = "'#a8a3f7'"
    bg      = "'#000000'"
    flags   = "-dock -e 'onstart=lower' -fn 'profont-8' -x 0 -y 0 -w 500 -h 20 -ta l -fg " ++ fg ++ " -bg " ++ bg

toggleStrutsKey :: XConfig t -> (KeyMask, KeySym)
toggleStrutsKey XConfig{modMask = modm} = (modm .|. shiftMask, xK_Print )


El código fuente preliminar puede consultarse en github.