Xmonad/Notable changes since 0.11
This page is for keeping a record of significant changes in darcs xmonad and xmonad-contrib since the 0.11 releases (Jan 1, 2013). See git log in the source repositories for the patches and more details covering documentation and bug fixes not noted here.
xmonad-contrib 0.11.1 was a release to address a build falure with X11-1.6.1. 0.11.2 addresses a security where window titles sent on to XMonad.Hooks.DynamicLog could contain <action="command"></action> tags, which potentially are executed by xmobar or dzen. 0.11.3 addresses a build failure with ghc-7.8.2 . xmonad-contrib 0.11.4 and xmonad-core-0.11.1 address a build failure with ghc-7.10.1
non-breaking changes[edit]
data-default[edit]
Use of data-default allows using def where previously you had to write defaultConfig, defaultXPConfig defaultFoo.
core[edit]
setlocale[edit]
The setlocale package is now used instead of a binding shipped with xmonad proper. This allows using Main.hs instead of Main.hsc.
bugfixes[edit]
#240, #572, #135
Contrib[edit]
New modules:
Layout.BinarySpacePartition Layout.Dwindle Layout.Stoppable
Prompt.ConfirmPrompt Prompt.Pass
Config.Prime
more...
breaking changes[edit]
updatePointer[edit]
XMonad.Actions.UpdatePointer.updatePointer arguments were changed. This allows including aspects of both of the TowardsCentre and Relative methods. To keep the same behavior, replace the entry in the left column with the entry on the right:
< 0.12 | >= 0.12 |
---|---|
updatePointer Nearest | updatePointer (0.5, 0.5) (1,1) |
updatePointer (Relative x y) | updatePointer (x,y) (1,1) |
updatePointer (TowardsCentre x y) | updatePointer (0.5,0.5) (x,y) |
getArgs must be called from main[edit]
If you used the idiom of checking for a first time startup vs. restart of xmonad:
args <- getArgs
when (null args) $ do
-- stuff to be run only on restart here
this must be changed, because getArgs no longer works from xmonad hooks. (See https://github.com/xmonad/xmonad/commit/307b82a53d519f5c86c009eb1a54044a616e4a5c for details.) You must move the args <- getArgs
into main
before the invocation of xmonad:
main = do
-- maybe spawnPipe here
args <- getArgs
xmonad someConfig $ {
-- ...
startupHook = when (null args) $ do
-- stuff to be run only on restart here
-- ...
}
ManageDocks changes[edit]
XMonad.Hooks.ManageDocks
was changed to cache windows with struts, providing significant performance improvements when there are many windows (formerly it was calling XQueryTree()
on every re-layout, and there is no way to filter this beyond querying only top level children). Users of ManageDocks
must ensure that they have added docksEventHook
to their handleEventHook
; this used to be optional (and in practice only needed with the KDE4+ Plasma dock and xfce4-panel
), but is now mandatory.
*URGENT* Bug in 0.12 ManageDocks[edit]
The above change in the 0.12 release has a bug which results in the first laid-out workspace not having any struts applied. The fix for this is to install the git version of xmonad-contrib
. You will also need to add docksStartupHook
to your startupHook
.