xmonad-contrib v0.15 Release Notes

Release Date: 2018-09-30 // over 5 years ago
  • ๐Ÿ’ฅ Breaking Changes

    • XMonad.Layout.Groups & XMonad.Layout.Groups.Helpers The layout will no longer perform refreshes inside of its message handling. If you have been relying on it to in your xmonad.hs, you will need to start sending its messages in a manner that properly handles refreshing, e.g. with sendMessage.

    ๐Ÿ†• New Modules

    • XMonad.Util.Purex

      Unlike the opaque IO actions that X actions can wrap, regular reads from the XConf and modifications to the XState are fundamentally pure -- contrary to the current treatment of such actions in most xmonad code. Pure modifications to the WindowSet can be readily composed, but due to the need for those modifications to be properly handled by windows, other pure changes to the XState cannot be interleaved with those changes to the WindowSet without superfluous refreshes, hence breaking composability.

      This module aims to rectify that situation by drawing attention to it and providing PureX: a pure type with the same monadic interface to state as X. The XLike typeclass enables writing actions generic over the two monads; if pure, existing X actions can be generalised with only a change to the type signature. Various other utilities are provided, in particular the defile function which is needed by end-users.

    ๐Ÿ› Bug Fixes and Minor Changes

    • Add support for GHC 8.6.1.

    • XMonad.Actions.MessageHandling Refresh-performing functions updated to better reflect the new sendMessage.