When we applied hlint hints inbd5b969d9b
, the definition of desktopLayoutModifiers got (via the hint to eta reduce) changed from desktopLayoutModifiers layout = avoidStruts layout to desktopLayoutModifiers = avoidStruts While the former is general enough to infer the type signature LayoutClass l a => l a -> ModifiedLayout AvoidStruts l a the latter just sees the usage site of , layoutHook = desktopLayoutModifiers $ layoutHook def in the desktopConfig function and thus—through the magic of MonomorphismRestriction—infers the specialized type Choose Tall (Choose (Mirror Tall) Full) Window -> ModifiedLayout AvoidStruts (Choose Tall (Choose (Mirror Tall) Full)) Window This obviously completely falls apart once someone wants to change the layout and still uses desktopLayoutModifiers (unaware that it is just avoidStruts at the moment). The easy fix is to give things type signatures, so nothing needs to be inferred. The _actual_ solution would be, in my opinion, to completely deprecate X.C.Desktop and remove it in a future release, as well as to completely rewrite the provided Example.hs. This needs more deliberation though. Fixes: https://github.com/xmonad/xmonad-contrib/issues/560 Related:bd5b969d9b
xmonad-contrib: Third Party Extensions to the xmonad Window Manager
You need the ghc compiler and xmonad window manager installed in order to use these extensions.
For installation and configuration instructions, please see the xmonad website, the documents included with the xmonad source distribution, and the online haddock documentation.
Getting or Updating XMonadContrib
-
Latest release: https://hackage.haskell.org/package/xmonad-contrib
-
Git version: https://github.com/xmonad/xmonad-contrib
(To use git xmonad-contrib you must also use the git version of xmonad.)
Contributing
Haskell code contributed to this repo should live under the
appropriate subdivision of the XMonad
namespace (currently includes
Actions
, Config
, Hooks
, Layout
, Prompt
, and Util
). For
example, to use the Grid layout, one would import:
XMonad.Layout.Grid
For further details, see the documentation for the
XMonad.Doc.Developing
module, XMonad's CONTRIBUTING.md and the xmonad website.
License
Code submitted to the contrib repo is licensed under the same license as xmonad itself, with copyright held by the authors.