Xmonad/Notable changes since 0.7

From HaskellWiki

This page is for keeping a record of significant changes in darcs xmonad and xmonad-contrib since the 0.7 release.

The idea is to put here a list of things which a user upgrading from 0.7 to 0.8 might like to know, so that they are sure to be included in the 0.8 release notes.

Changes to the xmonad core[edit]

  • defaultGaps has been removed, see XMonad.Hooks.ManageDocks.avoidStruts, which is now the preferred method for setting gaps. Those that still want or need manual gap-setting ability (if you're not sure, you probably don't) can use the new contrib module XMonad.Layout.Gaps.

Changes in xmonad-contrib[edit]

  • New contrib modules:
    • XMonad.Layout.MultiToggle.Instances defines some common Transformer instances for convenience in working with XMonad.Layout.MultiToggle
    • XMonad.Layout.Gaps allows manual configuration of gaps, along with keybindings for toggling and adjusting their size. Useful in situations where gaps are desired but ManageDocks is not appropriate.
    • XMonad.Actions.CycleRecentWS
    • XMonad.Actions.WindowNavigation is a rewrite of XMonad.Layout.WindowNavigation that lets you navigate across screens. It has some bugs.
    • XMonad.Config.Gnome, XMonad.Config.KDE, and XMonad.Config.Xfce greatly simplify initial basic desktop integration, including ewmh's for taskbars and panels, gap toggling, and sensible desktop default key rebindings.
    • XMonad.Config.PlainConfig allows those without a Haskell compiler or the desire to learn Haskell syntax to do common configurations in text. This has been split off into a separate project called xmonad-light using ~/.xmonad/xmonad.conf rather than xmonad.hs. See shepheb's xmonad-light, your package manager, or
darcs get http://code.haskell.org/~shepheb/xmonad-light


  • Changes to contrib APIs
    • ManageDocks now allows individual toggling of multiple gaps.
    • PerWorkspace has additional functions which allow applying layout modifiers per-workspace (rather than simply selecting layouts per-workspace).
    • Search's "promptSearch" and "selectSearch" functions have shorter invocations now; the browser argument is unneeded as XMonad will instead default to whatever $BROWSER is, or to using Firefox.
    • Search's simpleEngine has changed. It is now named 'searchEngine'. It takes two arguments, a site name (which will be used as a prompt), and the URL string. If you want to replicate the old simpleEngine, it'd look like 'newEngine = searchEngine "" "http://..."'.
    • WindowGo now has two convenience functions for going to your text editor (based on $EDITOR) and your browser ($BROWSER).
    • HintedTile now requires an alignment argument. Add 'TopLeft' as the second to last argument (the argument right before Tall or Wide) to match the old behavior.
    • UrgencyHook lets you specify when you want the hook to trigger (default is the same: window not visible)