Xmonad/Notable changes since 0.11

From HaskellWiki
< Xmonad
Revision as of 03:14, 16 January 2016 by Allbery b (talk | contribs) (document breaking withArgs [] in core)
Jump to navigation Jump to search

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 darcs changes 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

data-default

Use of data-default allows using def where previously you had to write defaultConfig, defaultXPConfig defaultFoo.

core

setlocale

The setlocale package is now used instead of a binding shipped with xmonad proper. This allows using Main.hs instead of Main.hsc.

bugfixes

#240, #572, #135

Contrib

New modules:

 Layout.BinarySpacePartition
 Layout.Dwindle
 Layout.Stoppable
 Prompt.ConfirmPrompt
 Prompt.Pass
 Config.Prime
 more...

breaking changes

updatePointer

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

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
      -- ...
    }