Before, loading a module would be guarded by an optional platform
condition. This made it possible to avoid loading and evaluating a
module if it did not support the host platform.
Unfortunately, this made it impossible to share a single configuration
between GNU/Linux and Darwin hosts, which some wish to do.
This removes the conditional load and instead inserts host platform
assertions in the modules that are platform specific.
Fixes#1906
If the configuration is `null`, the compiled configuration
`xmonadBin` should not be used and instead the WM startup command
should be set to the bare `xmonad` binary.
The `libFiles` option allows Home Manager to manage additional files
for xmonad.
Also compile xmonad during configuration build time. This avoids the
need to compile the configuration during activation.
This avoids a conflict for when the user has an xmonad package
installed through `haskellPackages.ghcWithPackages`, which is
necessary for wanting to load the xmonad config with ghc.
This removes the deprecated use of `xsession.windowManager` as a
string.
This commit also adjusts the xmonad module to become a full module.
I.e., the backwards compatibility hack was removed.