[xmonad] Two patches for xmonad-contrib: new layout modifier and new "conditional" layout

Ilya Portnov portnov84 at rambler.ru
Sun Dec 1 16:59:36 UTC 2013


Hello XMonad world.

There are two patches for xmonad-contrib.

InRegion is a layout modifier. It runs underlying layout in restricted 
rectangle region. You specify that region with X,Y coordinates of 
top-left corner, and width, height of rectangle.
All numbers are specified as parts of whole region (e.g., screen 
dimensions). So, "inRegion 0 0 1 1 someLayout" will just run someLayout 
as is. "inRegion 0.15 0 0.7 1 Full" will give you 15% margins at left 
and at right.

IfMax layout is a "conditional layout". It runs one layout, if there are 
as maximum N windows, and otherwise it runs another layout. Example:
  > ifMax 2 Full (Tall ...)
In this example, if there are 1 or 2 windows, Full layout will be used; 
otherwise, Tall layout will be used.

With best regards,
Ilya Portnov.

-------------- next part --------------
1 patch for repository http://code.haskell.org/XMonadContrib:

Sun Dec  1 13:26:34 YEKT 2013  Ilya Portnov <portnov84 at rambler.ru>
  * IfMax-Layout
  This adds a new ("conditional") layout, IfMax, which simply runs one layout, if there are <= N windows, and else runs another layout.


New patches:

[IfMax-Layout
Ilya Portnov <portnov84 at rambler.ru>**20131201072634
 Ignore-this: dac53f2a0505e740f05fdf03f1db0c21
 This adds a new ("conditional") layout, IfMax, which simply runs one layout, if there are <= N windows, and else runs another layout.
] {
addfile ./XMonad/Layout/IfMax.hs
hunk ./XMonad/Layout/IfMax.hs 1
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  XMonad.Layout.IfMax
+-- Copyright   :  (c) 2013 Ilya Portnov
+-- License     :  BSD3-style (see LICENSE)
+--
+-- Maintainer  :  Ilya Portnov <portnov84 at rambler.ru>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- Provides IfMax layout, which will run one layout if there are maximum N 
+-- windows on workspace, and another layout, when number of windows is greater
+-- than N.
+--
+-----------------------------------------------------------------------------
+
+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
+
+module XMonad.Layout.IfMax
+    ( -- * Usage
+      -- $usage
+      IfMax (..)
+    , ifMax
+    ) where
+
+import Data.Maybe
+
+import XMonad
+import qualified XMonad.StackSet as W
+
+-- $usage
+-- IfMax layout will run one layout if number of windows on workspace is as 
+-- maximum N, and else will run another layout.
+--
+-- You can use this module by adding folowing in your @xmonad.hs@:
+--
+-- > import XMonad.Layout.IfMax
+--
+-- Then add layouts to your layoutHook:
+--
+-- > myLayoutHook = IfMax 2 Full (Tall ...) ||| ...
+--
+-- In this example, if there are 1 or 2 windows, Full layout will be used;
+-- otherwise, Tall layout will be used.
+--
+
+data IfMax l1 l2 w = IfMax Int (l1 w) (l2 w)
+  deriving (Read, Show)
+
+instance (LayoutClass l1 a, LayoutClass l2 a, Read a, Show a, Eq a, Typeable a)
+    => LayoutClass (IfMax l1 l2) a where
+
+  runLayout (W.Workspace _ (IfMax n l1 l2) s) rect = arrange (W.integrate' s)
+    where
+      arrange [] = do l1' <- maybe l1 id `fmap` handleMessage l1 (SomeMessage ReleaseResources)
+                      l2' <- maybe l2 id `fmap` handleMessage l2 (SomeMessage ReleaseResources)
+                      return ([], Just $ IfMax n l1' l2')
+      arrange ws | length ws <= n = do
+                                    (wrs, ml1') <- runLayout (W.Workspace "" l1 s) rect
+                                    let l1' = fromMaybe l1 ml1'
+                                    return (wrs, Just $ IfMax n l1' l2)
+                 | otherwise      = do
+                                    (wrs, ml2') <- runLayout (W.Workspace "" l2 s) rect
+                                    let l2' = fromMaybe l2 ml2'
+                                    return (wrs, Just $ IfMax n l1 l2')
+
+  description (IfMax n l1 l2) = "If number of windows is <= " ++ show n ++ ", then " ++
+                                description l1 ++ ", else " ++ description l2
+
+-- | Layout itself
+ifMax :: (LayoutClass l1 w, LayoutClass l2 w)
+      => Int            -- ^ Maximum number of windows for the first layout
+      -> l1 w           -- ^ First layout
+      -> l2 w           -- ^ Second layout
+      -> IfMax l1 l2 w
+ifMax n l1 l2 = IfMax n l1 l2
+
hunk ./xmonad-contrib.cabal 220
                         XMonad.Layout.Groups.Wmii
                         XMonad.Layout.HintedGrid
                         XMonad.Layout.HintedTile
+                        XMonad.Layout.IfMax
                         XMonad.Layout.IM
                         XMonad.Layout.ImageButtonDecoration
                         XMonad.Layout.IndependentScreens
}

Context:

[fix UrgencyHook and add filterUrgencyHook
Adam Vogt <vogt.adam at gmail.com>**20130924224738
 Ignore-this: 3b7c62275701e6758397977c5c09b744
] 
[export XMonad.Hooks.UrgencyHook.clearUrgency (issue 533)
Adam Vogt <vogt.adam at gmail.com>**20130923031349
 Ignore-this: dafe5763d9abcfa606f5c1a8cf5c57d6
] 
[minor documentation fix: manageDocks doesn't do anything with struts, so don't claim it does
Daniel Wagner <daniel at wagner-home.com>**20130814125106
 Ignore-this: a2610d6c1318ac0977abfc21d1b91632
] 
[don't pretend to be LG3D in X.C.Dmwit because this confuses modern GTK
Daniel Wagner <daniel at wagner-home.com>**20130813211636
 Ignore-this: 8f728dc1b4bf5e472d99419cc5920e51
] 
[XMonad.Actions.UpdatePointer: generalise updatePointer
Liyang HU <git at liyang.hu>**20130730071007
 Ignore-this: 3374a62b6c63dcc152dbf843cd0577f0
 
] 
[XMonad.Actions.UpdatePointer: document TowardsCentre
Liyang HU <git at liyang.hu>**20130730053746
 Ignore-this: 2d684b12e4fff0ebec254bea4a4546a3
 
] 
[Haddock formatting in H.Minimize
Adam Vogt <vogt.adam at gmail.com>**20130723155658
 Ignore-this: 5db3186a51dec58f78954466ded339cb
] 
[Bump version (and xmonad dependency) to 0.12
Adam Vogt <vogt.adam at gmail.com>**20130720205857
 Ignore-this: ce165178ca916223501f266339f1de39
 
 This makes a breakage due to missing patches in core a bit more obvious.
 Previously you would have a build failure regarding some missing identifiers
 (def re-exported by XMonad from Data.Default), while after applying this patch
 it will be clear that xmonad-core needs to be updated.
] 
[Fix issue 551 by also getting manpath without -g flag.
Adam Vogt <vogt.adam at gmail.com>**20130716030536
 Ignore-this: ded2d51eb7b7697c0fdfaa8158d612df
 
 Instead of taking Ondrej's approach of figuring out which man (man-db or
 http://primates.ximian.com/~flucifredi/man/) is used by the system, just try
 both sets of flags.
] 
[Escape dzen markup and remove xmobar tags from window titles by default.
Adam Vogt <vogt.adam at gmail.com>**20130708144813
 Ignore-this: cf56bff752fbf78ea06d5c0cb755f615
 
 The issue was that window titles, such as those set by, for example a browser,
 could set the window title to display something like
 
    <action=malicious shell command>normal title</action>
 
 Which could be executed by xmobar (or dzen).
 
 This adds a ppTitleSanitize which does the above functions. This way when users
 override ppTitle, the benefits are not lost.
 
 Thanks to Ra?l Benencia and Joachim Breitner for bringing this to my attention.
] 
[DynamicBars-use-ExtensibleState
gopsychonauts at gmail.com**20130618074755
 Ignore-this: afacba51af2be8ede65b9bcf9b002a7
 
 Hooks.DynamicBars was previously using an MVar and the unsafePerformIO hack (
 http://www.haskell.org/haskellwiki/Top_level_mutable_state ) to store bar
 state. Since ExtensibleState exists to solve these sorts of problems, I've
 switched the file over to use unsafePerformIO instead.
 
 Some functions' types had to be changed to allow access to XState, but the
 public API is unchanged.
 
] 
[Catch exceptions when finding commands on PATH in Prompt.Shell
Thomas Tuegel <ttuegel at gmail.com>**20130616230219
 Ignore-this: 5a4d08c80301864bc14ed784f1054c3f
] 
[Fix haddock parse error in X.A.LinkWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20130528133448
 Ignore-this: 42f05cf8ca9e6d1ffae3bd20666d87ab
] 
[use Data.Default wherever possible, and deprecate the things it replaces
Daniel Wagner <daniel at wagner-home.com>**20130528013909
 Ignore-this: 898458b1d2868a70dfb09faf473dc7aa
] 
[eliminate references to defaultConfig
Daniel Wagner <daniel at wagner-home.com>**20130528005825
 Ignore-this: 37ae613e4b943e99c5200915b9d95e58
] 
[minimal change needed to get xmonad-contrib to build with xmonad's data-default patch
Daniel Wagner <daniel at wagner-home.com>**20130528001040
 Ignore-this: 291e4f6cd74fc2b808062e0369665170
] 
[Remove unneeded XSync call in Layout.ShowWName
Francesco Ariis <fa-ml at ariis.it>**20130517153341
 Ignore-this: 4d107c680572eff464c8f6ed9fabdd41
] 
[Remove misleading comment: we definitely don't support ghc-6.6 anymore
Adam Vogt <vogt.adam at gmail.com>**20130514215851
 Ignore-this: 2d071cb05709a16763d039222264b426
] 
[Fix module name in comment of X.L.Fullscreen
Adam Vogt <vogt.adam at gmail.com>**20130514215727
 Ignore-this: cb5cf18c301c5daf5e1a2527da1ef6bf
] 
[Minor update to cabal file (adding modules & maintainership)
Adam Vogt <vogt.adam at gmail.com>**20130514215632
 Ignore-this: 82785e02e544e1f797799bed5b5d9be2
] 
[Remove trailing whitespace in X.A.LinkWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20130514215421
 Ignore-this: 5015ab4468e7931876eb66b019af804c
] 
[Update documentation of LinkWorkspaces Module
quesel at informatik.uni-oldenburg.de**20110328072813
 Ignore-this: da863534931181f551c9c54bc4076c05
] 
[Added a module for linking workspaces
quesel at informatik.uni-oldenburg.de**20110210165018
 Ignore-this: 1dba2164cc3387409873d33099596d91
 
 This module provides a way to link certain workspaces in a multihead setup.
 That way, when switching to the first one the other heads display the linked
 workspaces.
] 
[Cache results from calcGap in ManageDocks
Adam Vogt <vogt.adam at gmail.com>**20130425155811
 Ignore-this: e5076fdbdfc68bc159424dd4e0f14456
 
 http://www.haskell.org/pipermail/xmonad/2013-April/013670.html
] 
[Remove unnecessary contexts from L.MultiToggle
Adam Vogt <vogt.adam at gmail.com>**20130217163356
 Ignore-this: 6b0e413d8c3a58f62088c32a96c57c51
] 
[Generalises modWorkspace to take any layout-transforming function
gopsychonauts at gmail.com**20130501151425
 Ignore-this: 28c7dc1f6216bb1ebdffef5434ccbcbd
 
 modWorkspace already was capable of modifying the layout with an arbitrary
 layout -> layout function, but its original type restricted it such that it
 could only apply a single LayoutModifier; this was often inconvenient, as for
 example it was not possible simply to compose LayoutModifiers for use with
 modWorkspace.
 
 This patch also reimplements onWorkspaces in terms of modWorkspaces, since with
 the latter's less restrictive type this is now possible.
] 
[since XMonad.Config.Dmwit mentions xmobar, we should include the associated .xmobarrc file
Daniel Wagner <daniel at wagner-home.com>**20130503194055
 Ignore-this: 2f6d7536df81eb767262b79b60eb1b86
] 
[warning police
Daniel Wagner <daniel at wagner-home.com>**20130502012700
 Ignore-this: ae7412ac77c57492a7ad6c5f8f50b9eb
] 
[XMonad.Config.Dmwit
Daniel Wagner <daniel at wagner-home.com>**20130502012132
 Ignore-this: 7402161579fd2e191b60a057d955e5ea
] 
[minor fixes to the haddock markup in X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20130411193849
 Ignore-this: b6a139aa43fdb39fc1b86566c0c34c7a
] 
[add whenCurrentOn to X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20130408225251
 Ignore-this: ceea3d391f270abc9ed8e52ce19fb1ac
] 
[Allow to specify the initial gaps' states in X.L.Gaps
Paul Fertser <fercerpav at gmail.com>**20130222072232
 Ignore-this: 31596d918d0050e36ce3f64f56205a64
] 
[should bump X11 dependency, too, to make sure we have getAtomName
Daniel Wagner <daniel at wagner-home.com>**20130225180527
 Ignore-this: 260711f27551f18cc66afeb7b4846b9f
] 
[getAtomName is now defined in the X11 library
Daniel Wagner <daniel at wagner-home.com>**20130225180323
 Ignore-this: 3b9e17c234679e98752a47c37132ee4e
] 
[Allow to limit maximum row count in X.Prompt completion window
Paul Fertser <fercerpav at gmail.com>**20130221122050
 Ignore-this: 923656f02996f2de2b1336275392c5f9
 
 On a keyboard-less device (such as a smartphone), where one has to use
 an on-screen keyboard, the maximum completion window height must be
 limited to avoid overlapping the keyboard.
] 
[Note in U.NameActions that xmonad core can list default keys now
Adam Vogt <vogt.adam at gmail.com>**20130217233026
 Ignore-this: 937bff636fa88171932d5192fe8e290b
] 
[Export U.NamedActions.addDescrKeys per evaryont's request.
Adam Vogt <vogt.adam at gmail.com>**20130217232619
 Ignore-this: a694a0a3ece70b52fba6e8f688d86344
] 
[Add EWMH DEMANDS_ATTENTION support to UrgencyHook.
Maarten de Vries <maarten at de-vri.es>**20130212181229
 Ignore-this: 5a4b314d137676758fad9ec8f85ce422
 
 Add support for the _NET_WM_STATE_DEMANDS_ATTENTION atom
 by treating it the same way as the WM_HINTS urgency flag.
 
] 
[Unconditionally set _NET_WORKAREA in ManageDocks
Adam Vogt <vogt.adam at gmail.com>**20130117180851
 Ignore-this: 9f57e53fba9573d8a92cf153beb7fe7a
] 
[spawn command when no completion is available (if alwaysHighlight is True); changes commandToComplete in Prompt/Shell to complete the whole word instead of using getLastWord
c.lopez at kmels.net**20130209190456
 Ignore-this: ca7d354bb301b555b64d5e76e31d10e8
] 
[order-unindexed-ws-last
matthewhague at zoho.com**20120703222726
 Ignore-this: 4af8162ee8b16a60e8fd62fbc915d3c0
 
 Changes the WorkspaceCompare module's comparison by index to put workspaces without an index last (rather than first).
] 
[SpawnOn modification for issue 523
Adam Vogt <vogt.adam at gmail.com>**20130114014642
 Ignore-this: 703f7dc0f800366b752f0ec1cecb52e5
 
 This moves the function to help clean up the `Spawner' to the ManageHook
 rather than in functions like spawnOn. Probably it makes no difference, the
 reason is because there's one manageSpawn function but many different so this
 way there are less functions to write.
] 
[Update L.TrackFloating.useTransient example code
Adam Vogt <vogt.adam at gmail.com>**20130112041239
 Ignore-this: e4e31cf1db742778c1d59d52fdbeed7a
 
 Suggest useTransient goes to the right of trackFloating which is the
 configuration actually tested.
] 
[Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating
Adam Vogt <vogt.adam at gmail.com>**20130112035701
 Ignore-this: d54d27b71b97144ef0660f910fd464aa
] 
[Make X.A.CycleWS not rely on hidden WS order
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023328
 Ignore-this: 8717a154b33253c5df4e9a0ada4c2c3e
] 
[Add X.H.WorkspaceHistory
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023307
 Ignore-this: c9e7ce33a944facc27481dde52c7cc80
] 
[Allow removing arbitrary workspaces
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214343
 Ignore-this: 6fce4bd3d0c5337e5122158583138e74
] 
[Remove first-hidden restriction from X.A.DynamicWorkspaces.removeWorkspace'
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214148
 Ignore-this: 55fb0859e9a5f476a834ecbdb774aac8
] 
[Add authorspellings file for `darcs show authors'.
Adam Vogt <vogt.adam at gmail.com>**20130101040031
 Ignore-this: c3198072ebc6a71d635bec4d8e2c78fd
 
 This authorspellings file includes a couple people who've contributed to xmonad
 (not XMonadContrib). When people have multiple addresses, the most recent one
 has been picked.
] 
[TAG 0.11
Adam Vogt <vogt.adam at gmail.com>**20130101014231
 Ignore-this: 57cf32412fd1ce912811cb7fafe930f5
] 
[bump cabal-version to satsify hackage
Adam Vogt <vogt.adam at gmail.com>**20130101014159
 Ignore-this: 1dd69577a60bae63362a42022764e5fd
] 
[bump version to 0.11
Adam Vogt <vogt.adam at gmail.com>**20121231104252
 Ignore-this: 8c57d0f366509655d0473adf802eb1ce
] 
[Add more metadata to cabal file
Adam Vogt <vogt.adam at gmail.com>**20121231184513
 Ignore-this: b7767194e905f2bbd918bb0d371f281
] 
[X.A.Workscreen make the whole module description show up for haddock
Adam Vogt <vogt.adam at gmail.com>**20121231024600
 Ignore-this: a2ac895989090322a849695068f812b5
] 
[Note that an alternative to XMonad.Actions.ShowText is X.U.Dzen
Adam Vogt <vogt.adam at gmail.com>**20121231023042
 Ignore-this: ae6476e5d33a559fd8503c44413311b8
] 
[Add X.A.DynamicWorkspaces.renameWorkspaceByName.
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121227063531
 Ignore-this: 4b8aa0405de3969000b1a78eb12992
] 
[Change type of X.A.ShowText.handleTimerEvent so example code typechecks.
Adam Vogt <vogt.adam at gmail.com>**20121226013841
 Ignore-this: 3c58a9ff124ab02325df6f38e0eaec05
] 
[Describe arguments for X.A.ShowText.flashText
Adam Vogt <vogt.adam at gmail.com>**20121226013725
 Ignore-this: 7f00a11196115ebf814c616aaf8e96f
] 
[Add XMonad.Actions.ShowText
pastorelli.mario at gmail.com**20121225202635
 Ignore-this: 5f4818f7ec9ad37df58e73d4bb8b5590
] 
[Record polachok's fix for issue 507
Adam Vogt <vogt.adam at gmail.com>**20121216182724
 Ignore-this: 13743d035e50f642de017c3304f914e
] 
[Removes unused function spawnWithActions and redundant imports in XMonad.Actions.Launcher
c.lopez at kmels.net**20121215223714
 Ignore-this: 76d7ac195e186b491968a548a13889c
] 
[A.Launcher markup identifiers for haddock links
Adam Vogt <vogt.adam at gmail.com>**20121215165914
 Ignore-this: 2fd3fa1dd4e00d573dd359a4b6a7291b
] 
[Address warnings from Debug modules
Adam Vogt <vogt.adam at gmail.com>**20121215165525
 Ignore-this: f97416ae4feffe4e5f9916d14d9e1524
 
 The warnings were related to ghc-7.6 removing Prelude.catch
 (triggering warnings regarding the import hiding it), as well
 as defaulting of some numeric types.
] 
[Removes LocateMode and LocateRegexMode from XMonad.Actions.Launcher
c.lopez at kmels.net**20121214211230
 Ignore-this: b8ad32f23f15368a94202f9ad73995f2
] 
[debug-hooks
allbery.b at gmail.com**20120813223821
 Ignore-this: 7f41c93fdd6643c687598d2fe07aad5d
 Hooks to print diagnostic information to stderr (usually .xsession-errors)
 to help debug complex issues involving the StackSet and received events.
] 
[Remove trailing whitespace.
Adam Vogt <vogt.adam at gmail.com>**20121109014156
 Ignore-this: 72e3afb6e6df47c51262006601765365
] 
[Use Control.Exception.catch explitly to avoid warnings
Adam Vogt <vogt.adam at gmail.com>**20121109013506
 Ignore-this: 2cebdfe604c581f2b4a644e9aed726c7
 
 The base that comes with ghc-7.6.1 no longer includes Prelude.catch;
 so these modules were changed so that there is no warning for
 
 import Prelude hiding (catch)
 
 At the same time these changes should be compatible with older GHCs,
 since the catch being has never been the one in the Prelude.
] 
[Add missing type signatures.
Adam Vogt <vogt.adam at gmail.com>**20121109012752
 Ignore-this: f54f5d9907ae48d58c98de7f8eb1f8a
 
 For whatever reason, some patches applied were missing these signatures.
 While haddock has been able to include inferred signatures for a while,
 including type signatures makes it easier to see if and when types have
 been changed.
] 
[Rename variables "state" to avoid warnings about shadowing
Adam Vogt <vogt.adam at gmail.com>**20121109012316
 Ignore-this: cd063d632412f758ca9fed6393521c8f
 
 XMonad core re-exports Control.Monad.State, which includes
 a function "state" if you happen to use mtl-2. Since there's
 a chance xmonad still works with mtl-1 avoid imports like:
 
 import XMonad hiding (state)
] 
[Rename variable in L.Minimize to avoid shadowing.
Adam Vogt <vogt.adam at gmail.com>**20121109003410
 Ignore-this: b46d3e8e0d4106cea6966116be386677
 
 This "state" is new with a newer mtl.
] 
[Gut H.ICCCMFocus: issue 177 has been merged in core.
Adam Vogt <vogt.adam at gmail.com>**20121108225716
 Ignore-this: 937fe7f514ea6e36ee529e055e100e7f
 
 Keep the module for now: the LG3D bit might still be useful
 and there's no need to break configs unnecessarily.
] 
[ewmh-eventhook-custom
pastorelli.mario at gmail.com**20120816153032
 Ignore-this: 95176f6d955d74321c28caafda63faa0
 
 Add ewmhDesktopsEventHookCustom, a generalized version of ewmhDesktopsEventHook that takes a sort function as argument. This sort function should be the same used by the LogHook.
] 
[Added smart spacing to the spacing module
daedalusinfinity at gmail.com**20120923034527
 Ignore-this: 9104bc8feb832f63f2f18998c0f7ba92
 Added smart spacing to the spacing module, which adds spacing to all windows,
 except to windows on singleton workspaces.
] 
[Improves haddock documentation
c.lopez at kmels.net**20120826091716
 Ignore-this: a0ce4838652acfff7922c111e4d879bb
] 
[Improve comments, add an error throw that shouldn't happen
c.lopez at kmels.net**20120826085426
 Ignore-this: 7675070826b3c53499e4352e692d6036
] 
[fix a bug when ncompletions = nrows
c.lopez at kmels.net**20120826083137
 Ignore-this: 5f573028318473c333809217c271a81d
] 
[Fixes typos in Actions.Launcher haddock documentation
c.lopez at kmels.net**20120811112502
 Ignore-this: f8152c0ad59d2b0cc9a6c9061e83aaf0
] 
[Correctly get the autocompletion item when alwaysHighlight in XMonad.Prompt is True
c.lopez at kmels.net**20120811104805
 Ignore-this: fa2600df210c7d3472a797f19fb31a7
] 
[Removes warnings, adds a browser value for LauncherConfig in haddock comments
c.lopez at kmels.net**20120628114533
 Ignore-this: 2610cf63594db3df61bac52f3d8f5836
 
] 
[Changes on XPrompt:
c.lopez at kmels.net**20120628101749
 Ignore-this: 2384f5c1b886716b3d9785877c2e32f9
   
     * Adds mkPromptWithModes, creates a prompt given a list of modes (list of XPType).
 
     * Adds Setting `alwaysHighlight` to defaultXPConfig. When set to true, autocompletion always highlight the first result if it is not highlighted.
     
 Adds module XMonad.Actions.Launcher. This module allows to combine and switch between instances of XPrompt. It includes a default set of modes which require the programs `hoogle`, `locate` and `calc` to be installed to work properly.
 
] 
[accept more windows as docks
Daniel Wagner <daniel at wagner-home.com>**20120823124153
 Ignore-this: 21d9b406c7e39cca2cc60331aab04873
] 
[strip newlines from dmenu's returns to be compatible with the newest version of dmenu
longpoke at gmail.com**20120723212807
 Ignore-this: 3b11a35125d0bc23b33e0b926562f85a
] 
[A workscreen permits to display a set of workspaces on several
kedals0 at gmail.com**20120706093308
 Ignore-this: 572ed3c3305205bfbcc17bb3fe2600a3
 screens. In xinerama mode, when a workscreen is viewed, workspaces
 associated to all screens are visible.
 
 The first workspace of a workscreen is displayed on first screen,
 second on second screen, etc. Workspace position can be easily
 changed. If the current workscreen is called again, workspaces are
 shifted.
 
 This also permits to see all workspaces of a workscreen even if just
 one screen is present, and to move windows from workspace to workscreen.
] 
[refer to the new name 'handleEventHook' instead of the old name 'eventHook' in X.L.Fullscreen documentation
Daniel Wagner <daniel at wagner-home.com>**20120618181003
 Ignore-this: bd3b26c758cf3993d5a93957bb6f3663
] 
[UrgencyHooks made available as Window -> X () functions
gopsychonauts at gmail.com**20120504062339
 Ignore-this: 6a57cae1d693109b7e27c6471d04f50f
 Adds an UrgencyHook instance for the type Window -> X (), allowing any such
 functions to be used directly as UrgencyHooks. The Show and Read constraints
 were removed from the UrgencyHook class in order to permit this; these
 constraints were required only in a historical implementation of the module,
 which used a layout modifier.
 
 All existing configurations using UrgencyHooks should remain fully functional.
 New configs may make use of this modification by declaring their UrgencyHook as
 a simple Window -> X () function.
 
] 
[updates to XMonad.Prompt re: word-oriented commands
Brent Yorgey <byorgey at cis.upenn.edu>**20120510174317
 Ignore-this: 138b5e8942fe4b55ad7e6ab24f17703f
 
   + change killWord and moveWord to have emacs-like behavior: first move
     past/kill consecutive whitespace, then move past/kill consecutive
     non-whitespace.
 
   + create variants killWord' and moveWord' which take a predicate
     specifying non-word characters.
 
   + create variants defaultXPKeymap' and emacsLikeXPKeymap' which take
     the same sort of predicate, which is applied to all keybindings with
     word-oriented commands.
] 
[Added isUnfocusedOnCurrentWS and fadeInactiveCurrentWSLogHook for better support of fading/opacity on multi monitor setups
Jesper Reenberg <jesper.reenberg at gmail.com>**20120329141818
 Ignore-this: d001a8aafbcdedae21ccd1d18f019185
] 
[Fixed X.A.GridSelect to be consistent in the way it (now) sorts the shown
Jesper Reenberg <jesper.reenberg at gmail.com>**20120501180415
 Ignore-this: 1d0991f9fb44e42f5d1c5a4f427ea661
 elements when modifying the searchString.
 
 The implemented ordering sorts based on how "deep the needle is in the
 haystack", meaning that searching for "st" in the elements "Install" and "Study"
 will order them as "Study" and "Install". Previously there was no ordering and
 when using GridSelect to select workspaces, the ordering was not consistent, as
 the list of workspaces (if not modified manually) is ordered by last used. In
 this case either "Study" or "Install" would come first depending on which
 workspace was last visited.
] 
[Use getXMonadDir to get the default xmonad directory.
Julia Jomantaite <julia.jomantaite at gmail.com>**20120501121427
 Ignore-this: a075433761488b76a58a193aeb4e4a25
] 
[Minor haddock formatting for X.L.OnHost and X.A.DynamicWorkspaceOrder
Adam Vogt <vogt.adam at gmail.com>**20120428194552
 Ignore-this: 843ec567e249cc96d51ca931f1e36514
] 
[Remove trailing whitespace.
Adam Vogt <vogt.adam at gmail.com>**20120428194048
 Ignore-this: d61584110954e84d3611ef3497a29725
] 
[Add emacs-like keys to browse history in XMonad.Prompt
Carlos Lopez-Camey <c.lopez at kmels.net>**20120421110737
 Ignore-this: b90345f72007d09a6b732b974c0faf79
] 
[Adds an emacs-like Keymap in XMonad.Prompt
Carlos Lopez-Camey <c.lopez at kmels.net>**20120421012335
 Ignore-this: f281b8ad01f3d21055e2d6de79af2d79
] 
[add 'withNthWorkspace' to DynamicWorkspaceOrder.
jakob at pipefour.org**20120407184640
 Ignore-this: f5f87ffe9ddf1a12fab775e6fb8e856f
 Note this is very similar to the function of the same name exported by
 DynamicWorkspaces.  Ultimately it would probably be cleaner to
 generalize the one in DynamicWorkspaces to accept an arbitrary
 workspace sort as a parameter; this is left as an exercise for future
 hackers.
] 
[XMonad.Layout.OnHost allows host-specific modifications to a layout, which
allbery.b at gmail.com**20120320030912
 Ignore-this: 4c0d5580e805ff9f40918308914f3bf9
 is otherwise very difficult to do.  Similarly to X.L.PerWorkspace, it provides
 onHost, onHosts, modHost, and modHosts layout modifiers.  It attempts to do
 smart hostname comparison, such that short names will be matched with short
 names and FQDNs with FQDNs.
 
 This module currently requires that $HOST be set in the environment.
 You can use System.Posix.Env.setEnv to do so in xmonad.hs if need be.
 (Properly, this should be done via the network library, but I'm trying to
 avoid adding that dependency.)  An alternative would be to shell out to
 get the name, but that has considerable portability hurdles.
] 
[Bump version to 0.10.1
Adam Vogt <vogt.adam at gmail.com>**20120320005311
 Ignore-this: f0608ffaa877f605eaa86c45a107a14d
 
 Raising the X11 dependency while keeping the xmonad version the same leads to
 problems where cabal install uses the dependency versions following hackage,
 not what is installed.
] 
[narrower BorderResize rectangles placed within border edges
Jens Petersen <juhp at community.haskell.org>**20120314064703
 Ignore-this: 3a43bbdb7f2317d702edafb231f58802
 
   Change the border resize rectangles to be narrower and only extend
   inside the window not outside.  Most window managers just seem to use
   the border decoration area for starting resizes which is often just 1 pixel
   wide but as a compromise the width is now 2 pixels (before it was 10!).
   The rectangles are now placed symmetrically within the border and window.
   This seems to work ok with PositionStoreFloat for the Bluetile config.
] 
[add-dynamic-bars-module
Ben Boeckel <mathstuf at gmail.com>**20120316002204
 Ignore-this: 41347c8f894d8d0b5095dfad86784cf4
 
 This adds the X.H.DynamicBars module. It allows per-screen status bars to be
 easily managed and dynamically handles the number of screens changing.
] 
[bump X11 dependency so that noModMask is available
Daniel Wagner <daniel at wagner-home.com>**20120316000302
 Ignore-this: 971a75dcad25f66848eef4174cd4ddd1
] 
[Paste.hs: rm noModMask, shifted definition to X11 binding (see previous email)
gwern0 at gmail.com**20111203203038
 Ignore-this: dcd164ff8f8f135c8fdef08f42f9244d
] 
[GroupNavigation: fix import typo in usage
Jens Petersen <juhp at community.haskell.org>**20120312103349
 Ignore-this: 65367218ca50a33a37813469b4616f34
] 
[add sendToEmptyWorkspace to FindEmptyWorkspace
Jens Petersen <juhp at community.haskell.org>**20120312102331
 Ignore-this: 50e7992d80d2db43e4d0adf5c95e964f
 
 sendToEmptyWorkspace is like tagToEmptyWorkspace except
 it does not change workspace after moving the window.
] 
[xmonad-contrib.cabal: simplify xmonad dependency to >=0.10 && < 0.11
Jens Petersen <juhp at community.haskell.org>**20120312101800
 Ignore-this: 1ff5a0caa2a1e3487e9a0831e385b3d2
 
 Unless there is a particular reason for listing the lower and upper bounds
 separately then this seems simpler and cleaner.
] 
[ShowWName: Increase horizontal padding for flash
crodjer at gmail.com**20120305164517
 Ignore-this: de5fd30fad2630875c5c78091f07c324
 
 Currently the flash window width leaves a very small amount of padding. This
 patch adds some extra horizontal width, governed by text width and length.
] 
[persist-togglehook-options
Ben Boeckel <mathstuf at gmail.com>**20120311050143
 Ignore-this: 580bacb35b617c1198f01c5a7c0d3fef
 
 Save the state of ToggleHook options over a restart.
] 
[ShowWName flash window background color
Rohan Jain <crodjer at gmail.com>**20120306065224
 Ignore-this: 9cd8fcfc13cc326b9dcc79ef3cc21b26
 
 While calling paintAndWrite for flash window, the background color from config
 should also be passed on as window background in addition to as text background
 color. Otherwise the window color gets set to the default black which shows up
 when text cannot span whole of the window.
 
 This issue becomes visible when the font size is considerably large or even in
 small size with truetype fonts.
] 
[ShowWName: Fix flash location by screen rectangle
crodjer at gmail.com**20120305161240
 Ignore-this: 83ec4cce2297efc6736a1fe55f44ee73
 
 In case of using this hook with multiple monitors, the Tag flash was not
 following the screen's coordinates. This patch shifts the new window created for
 flash according to the Rectangle defined by the screen.
] 
[Fix typo in tabbed layout link for font utils docs
crodjer at gmail.com**20120229070022
 Ignore-this: 2f7e90269e08ce08264d7b1d05bb16f9
] 
[L.WorkspaceDir: cleanup redundant {definitions,imports}
Steffen Schuldenzucker <sschuldenzucker at uni-bonn.de>**20120229112124
 Ignore-this: 7a796b18a64e693e071e9ea3a6a01aa3
] 
[fix L.WorkspaceDir special char handling: remove "echo -n" processing
Steffen Schuldenzucker <sschuldenzucker at uni-bonn.de>**20120227122004
 Ignore-this: ab48687eb4c9018312089a13fd25ecd8
] 
[Add BorderUrgencyHook to XMonad.Hooks.UrgencyHook
allbery.b at gmail.com**20120225082616
 Ignore-this: 9fac77914ff28a6e9eb830e8c9c7e21e
 BorderUrgencyHook is a new UrgencyHook usable with withUrgencyHook or
 withUrgencyHookC; it allows an urgent window to be given a different
 border color.  This may not always work as intended, since UrgencyHook
 likes to assume that a window being visible is sufficient to disable
 urgency notification; but with suppressWhen = Never it may work well
 enough.
 
 There is a report that if a new window is created at the wrong time,
 the wrong window may be marked urgent somehow.  I seem to once again
 be revealing bugs in underlying packages, although a quick examination
 of X.H.UrgencyHook doesn't seem to show any way for the wrong window
 to be selected.
] 
[Adding use case for namedScratchpad.
nicolas.dudebout at gatech.edu**20120122235843
 Ignore-this: 44201e82bcd708cd7098f060345400f1
] 
[Actions.WindowGo: typo fix - trim 's' per cub.uanic https://code.google.com/p/xmonad/issues/detail?id=491
gwern0 at gmail.com**20120116224244
 Ignore-this: fb1d55c1b4609069c55f13523c091260
] 
[XMonad.Actions.PhysicalScreens: fix typo spotted by Chris Pick <haskell at chrispick.com>
gwern0 at gmail.com**20120115223013
 Ignore-this: eb73b33b07dc58a36d3aa00bc8ac31c2
] 
[roll back previous incorrect fix
Daniel Wagner <daniel at wagner-home.com>**20120111214133
 Ignore-this: 91496faef411e6ae3442498b528d119b
] 
[Extending: fix http://code.google.com/p/xmonad/issues/detail?id=490
gwern0 at gmail.com**20120111211907
 Ignore-this: 515afbed507c070d60ab547e98682f12
] 
[another documentation patch: XMonadContrib.UpdatePointer -> XMonad.Actions.UpdatePointer
Daniel Wagner <daniel at wagner-home.com>**20120111211226
 Ignore-this: 1444e4a3f20ba442602ef1811d0b32c7
] 
[documentation patch, fixes issue 490
Daniel Wagner <daniel at wagner-home.com>**20120111210832
 Ignore-this: 8d899e15f9d1a657e9fc687e2f649f45
] 
[X.H.EwmhDesktops note that fullscreenEventHook is not included in ewmh
Adam Vogt <vogt.adam at gmail.com>**20120102211404
 Ignore-this: 92f15fa93877c165158c8fbd24aa2360
 
 Just a documentation fix (nomeata's suggestion at issue 339).
] 
[X.H.EwmhDesktops haddock formatting.
Adam Vogt <vogt.adam at gmail.com>**20120102211203
 Ignore-this: cfff985e4034e06a0fe27c52c9971901
] 
[X.A.Navigation2D
Norbert Zeh <nzeh at cs.dal.ca>**20111208205842
 Ignore-this: 3860cc71bfc08d99bd8279c2e0945186
 
 This is a new module to support directional navigation across multiple screens.
 As such it is related to X.A.WindowNavigation and X.L.WindowNavigation, but it
 is more general.  For a detailed discussion of the differences, see
 http://www.cs.dal.ca/~nzeh/xmonad/Navigation2D.pdf.
] 
[documentation patch: mention PostfixOperators
Daniel Wagner <daniel at wagner-home.com>**20111210234820
 Ignore-this: 20a05b1f396f18a742346d6e3daea9a8
] 
[P.Shell documentation and add missing unsafePrompt export
Adam Vogt <vogt.adam at gmail.com>**20111207163951
 Ignore-this: a03992ffdc9c1a0f5bfa6dafc453b587
 
 Haddock (version 2.9.2 at least) does not attach documentation to any of a b or
 c when given:
 
     -- | documentation
     a,b,c :: X
 
] 
[Paste: 3 more escaped characters from alistra
gwern0 at gmail.com**20111129160335
 Ignore-this: 46f5b86a25bcd2b26d2e07ed33ffad68
] 
[unfuck X.U.Paste
Daniel Wagner <daniel at wagner-home.com>**20111129032331
 Ignore-this: d450e23ca026143bb6ca9d744dcdd906
] 
[XMonad.Util.Paste: +alistra's patch for fixing his pasting of things like email address (@)
gwern0 at gmail.com**20111128215648
 Ignore-this: 4af1af27637fe056792aa4f3bb0403eb
] 
[XMonad.Util.Paste: rm myself from maintainer field; I don't know how to fix any of it even if I wanted
gwern0 at gmail.com**20111128213001
 Ignore-this: 87a4996aaa5241428ccb13851c5eb455
] 
[XMonad.Prompt.Shell: improve 'env' documentation to cover goodgrue's problem
gwern0 at gmail.com**20111127231507
 Ignore-this: 7b652a280960cbdf99c236496ca091b0
] 
[Fix spelling 'prefered' -> 'preferred'.
Erik de Castro Lopo <erikd at mega-nerd.com>**20111125010229
 Ignore-this: f2eac1728b5e023399188becf867a14d
] 
[Restore TrackFloating behavior to an earlier version.
Adam Vogt <vogt.adam at gmail.com>**20111120045538
 Ignore-this: 1a1367b4171c3ad23b0553766021629f
 
 Thanks for liskni_si for pressing the matter: without this change it is very
 broken, with the patch it is still not perfect but still useful.
] 
[Explicitly list test files in .cabal
Adam Vogt <vogt.adam at gmail.com>**20111118232511
 Ignore-this: ac48a0d388293cc6c771d676aaf142e3
 
 In the future, require Cabal >= 1.6 to be able to just write tests/*.hs
] 
[TAG 0.10
Adam Vogt <vogt.adam at gmail.com>**20111118225640
 Ignore-this: 8f81b175b902e985d584160fc41ab7d1
] 
[Export types to improve haddock links.
Adam Vogt <vogt.adam at gmail.com>**20111118190642
 Ignore-this: 254c5a6941009701dc444043b0eeace5
] 
[Better control over GridVariants geometry
nzeh at cs.dal.ca**20110907133304
 Ignore-this: 59da789a28f702595159eeb6ddd30fd9
 
 Added new messages the layout understands to allow changing the grid aspect
 ratio and setting the fraction of the master to a given value rather than
 changing it relative to the current value.
] 
[Support for scratchpad applications with multiple windows
Norbert Zeh <nzeh at cs.dal.ca>**20110406140213
 Ignore-this: 4c7d5f2ff95292438464e0b1060ab324
 
 I recently found that I use xpad to add sticky notes to my desktop.  I wanted
 to be able to show/hide these in the same fashion as regular scratchpads.  This
 patch adds a function that allows to do this while reusing most of the existing
 NamedScratchpad code.
] 
[Additional messages for SplitGrid layout
Norbert Zeh <nzeh at cs.dal.ca>**20091215192142
 Ignore-this: eb945168d1c420e5a9ed87da12a7acf8
 
 This patch introduces two new message SetMasterRows and SetMasterCols for the
 X.GridVariants.SplitGrid layout, which set the number of rows/columns in the
 master grid to the given value.  This is useful when setting the number of rows
 and/or columns non-incrementally using an interface such as GridSelect.
] 
[Be consistent with core utf8-string usage.
Adam Vogt <vogt.adam at gmail.com>**20111118184745
 Ignore-this: 9de0599d0fb888c58e11598d4de9599e
 
 Now that spawn assumes executeFile takes a String containing utf8 codepoints
 (and takes an actual String as input) adjust Prompt.Shell to avoid double
 encoding. U.Run functions are updated to be consistent with spawn.
] 
[Export types to reduce haddock warnings.
Adam Vogt <vogt.adam at gmail.com>**20101023195755
 Ignore-this: 1cac9202784711ce0fc902d14543bab0
] 
[documentation patch: note the drawbacks of X.U.Dmenu
Daniel Wagner <daniel at wagner-home.com>**20111115022726
 Ignore-this: 97f9676ca075a6f96e090045886083ca
] 
[get ready for GHC 7.4: Num a no longer implies (Eq a, Show a)
Daniel Wagner <daniel at wagner-home.com>**20111115022650
 Ignore-this: faa34d69ddd27b98c6507740b42c9e97
] 
[Correct completions of utf8-named file in X.P.Shell
Adam Vogt <vogt.adam at gmail.com>**20111111215655
 Ignore-this: 9aa10143f313b06afdb11e61777a7d20
] 
[Expose X.L.Groups.Helpers and Groups.Wmii in xmonad-contrib.cabal
Wirt Wolff <wirtwolff at gmail.com>**20111104053703
 Ignore-this: fd50e32f61af64b9e53701787cebcd97
 
 They provide many useful exports and are linked from X.L.Groups so promote
 them from other-modules or missing status.
] 
[Small bugfix to XMonad.Layout.Fullscreen
Audun Skaugen <audun at skaugen.name>**20111023102940
 Ignore-this: adcfedf11b40be2cdd61f615551e0ae
 
 Fixed a small bug in the layout modifers where 
 windows entering fullscreen were not refreshed.
 
 Also fixed some funny whitespace characters.
] 
[documentation patch: add a bit more context to the code snippets in X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20111011204619
 Ignore-this: cbb03927204aa3c01aa9bea067d37bce
] 
[U.EZConfig allow removing more than one mouse binding.
Adam Vogt <vogt.adam at gmail.com>**20110923123907
 Ignore-this: 6f32ef805566f03977ea5c0fe0ace958
] 
[Remove X.A.GroupNavigation.currentWindow
Norbert Zeh <nzeh at cs.dal.ca>**20110920083922
 Ignore-this: 4b202a9c9e3a13c5e34862784ea4acfa
 
 This function does the same as X.StackSet.peek and all its uses have been
 replaced with X.StackSet.peek.
] 
[Fix typo in NoBorders example code.
Adam Vogt <vogt.adam at gmail.com>**20110814195314
 Ignore-this: 3ad6aaf287962bfce707b2324de91eec
] 
[Add XF86TouchpadToggle to the list of multimedia keys in X.U.EZConfig
Daniel Schoepe <daniel.schoepe at googlemail.com>**20110917151419
 Ignore-this: 84986d5b16c54199a589ed68842f5191
] 
[documentation patch to XMonad.Doc.Extending
Daniel Wagner <daniel at wagner-home.com>**20110916202845
 Ignore-this: 77998915c337590f127fd4a4b6029029
] 
[fix warnings in X.U.EZConfig
Brent Yorgey <byorgey at cis.upenn.edu>**20110908133246
 Ignore-this: 5322d61eaf30b13e68a5674f8ac7084d
] 
[X.A.CycleWS Refactor and add toggleWS' that excludes listed tags
Wirt Wolff <wirtwolff at gmail.com>**20110907232730
 Ignore-this: bec03fcb6aa16452d3a0425d156823a4
] 
[X.A.FlexibleManipulate: Set expected fixities for Pnt math operators
Wirt Wolff <wirtwolff at gmail.com>**20110904221247
 Ignore-this: 9ae239c4120eae866983ecfe5cc59894
 Restores broken mouseWindow discrete linear and resize to 0.9.1 behavior
] 
[GHC 7 compat
Daniel Wagner <daniel at wagner-home.com>**20110731170850
 Ignore-this: 17a43a709e70ebccc925e016d7057399
 
 * true error: more modules export foldl/foldl'/foldr, so explicitly use the Data.Foldable one
 * -Werror error: transition from Control.OldException to Control.Exception, assuming everything was IOException
 
] 
[Correct H.DynamicLog.dynamicLogXinerama comment. Wuzzeb's patch at issue 466.
Adam Vogt <vogt.adam at gmail.com>**20110714231741
 Ignore-this: 8434fe4c740fc06b5b17f016e28e0376
 
 Slight changes to the patch to 1. work with haddock, and 2. remove ppOutput
 which distracts from the formatting and is covered elsewhere.
] 
[ungrab-keyboard-before-action
Ben Boeckel <mathstuf at gmail.com>**20110515210312
 Ignore-this: 5b8f3c286e8231a4d7ade2acbb2ae84a
 
 If an action that requires the keyboard to be grabbed (e.g., launching dmenu),
 it is a race when submapping the action as to whether the action will have
 access to the keyboard or not. To fix this, the keyboard should be ungrabbed
 before executing the action.
] 
[add-movenext-moveprev-bindings
Ben Boeckel <mathstuf at gmail.com>**20110515193326
 Ignore-this: 2ad1ce1de0c2954b2946551dd62e6b3b
 
 Adds default bindings to GridSelect for the moveNext and movePrev motions.
] 
[X.L.LayoutHints: refresh only if hints are not satisfied
Tomas Janousek <tomi at nomi.cz>**20110615150333
 Ignore-this: e081f5fbd6a721e260212548d830ff6b
] 
[L.Spacing use imported fi
Adam Vogt <vogt.adam at gmail.com>**20110612192339
 Ignore-this: ac3b405e8c43d1b1db58ecf80fafab8e
] 
[Use a phantom type instead of undefined in L.LayoutBuilderP
Adam Vogt <vogt.adam at gmail.com>**20110609051858
 Ignore-this: f9009c339ac20245ca0b1dc8154b673f
 
 This better expresses the idea that the argument to alwaysTrue is just there to
 select an instance. Another option could be to do use a fundep, which seems to
 be compatible with the two instances so far.
 
 class Predicate p w | p -> w
 
] 
[Add more L.LayoutBuilderP documentation
Adam Vogt <vogt.adam at gmail.com>**20110609050922
 Ignore-this: 1441d917c84b165f30711e572e239392
] 
[Correct L.LayoutBuilderP module name in haddock.
Adam Vogt <vogt.adam at gmail.com>**20110609043940
 Ignore-this: 3c322c0767969fa42b1e2c32cf3f8a1a
] 
[Extend script for generating the code which runs tests
Adam Vogt <vogt.adam at gmail.com>**20110609040722
 Ignore-this: 44ebbee2683f50bc0728458f4babcce
 
 Now the number of runs each can be set, and the failures and successes are
 summarized in the same way as the core Properties.hs. There is some duplicated
 code which could be avoided by modifying Properties.hs.
] 
[Move tests from ManageDocks to tests/
Adam Vogt <vogt.adam at gmail.com>**20110609040220
 Ignore-this: 31d51fae83d88e15cdb69f29da003bf7
 
 The change to use a newtype for RectC is kind of ugly, but this way instances
 are less likely to conflict in the tests.
] 
[Export X.A.CycleWS.screenBy (issue 439)
Adam Vogt <vogt.adam at gmail.com>**20110607002053
 Ignore-this: 2eaa2a852a3356f6163c4d38f72e730f
] 
[X.H.FloatNext: export X.H.ToggleHook.runLogHook
Tomas Janousek <tomi at nomi.cz>**20110528191700
 Ignore-this: 5fd923e800a1a3f0977f126df7882c54
 
 Otherwise the user has to import XMonad.Hooks.ToggleHook as well, which he
 didn't have to in earlier versions.
] 
[Documentation fix (issue 445)
Adam Vogt <vogt.adam at gmail.com>**20110527033521
 Ignore-this: c73b88f9567af86bd560b911e33da301
 
 Daniel's change which broke -Wall (adding an import for haddock only) was
 somehow removed. Instead we can just modify the sample code to add the import.
] 
[X.A.AppendFile documentation fix.
Adam Vogt <vogt.adam at gmail.com>**20110527032854
 Ignore-this: 1ee126ddba1b06d07fba86ca43f74ab8
 
 Forgotten > means haddock complained (and generated incorrect output).
 More controversially I reworded a sentence and use do notation.
] 
[add-willhook-function
Ben Boeckel <mathstuf at gmail.com>**20110515191718
 Ignore-this: 9db50eec5b91baa973b4a92c72aeceaf
 
 Adds a function that hooks into whether the hook will be triggered on the next
 request.
] 
[use-map-in-toggle-hook
Ben Boeckel <mathstuf at gmail.com>**20110515191418
 Ignore-this: 2bf69aa1a875e7ef1748a5ab51b33daa
 
 Use "Data.Map String (Bool, Bool)" instead of "[(String, (Bool, Bool))]" in
 X.H.ToggleHook.
] 
[Extend GridSelect navigation
Ilya Portnov <portnov84 at rambler.ru>**20110515154246
 Ignore-this: f2d279b8e46e6eaf3477fdc5cf77be63
 Add moveNext and movePrev, which move selection to next/previous item. 
] 
[Generalize X.L.AutoMaster modifier
Ilya Portnov <portnov84 at rambler.ru>**20110514132549
 Ignore-this: 481c35dd721405bab8b085c45cb983ce
 Enable it to work not only with Windows, but with any (Eq) type.
] 
[Cleanup in X.L.LayoutBuilderP.
Ilya Portnov <portnov84 at rambler.ru>**20110514132232
 Ignore-this: 59d9ce37218424e1bc225a42d71982ab
 Remove unused datatype declaration and export usefull typeclass.
] 
[Aesthetics on Flexiblemanipulate
Mats Rauhala <mats.rauhala at gmail.com>**20110506094431
 Ignore-this: 8864c1ba9723ebcc3b183ea9d636a203
 
 Based on Adam Vogts recommendation on the mailing list. I had to give explicit
 type signatures to get rid of warnings, but nearly verbatim to his version.
] 
[Compile with ghc7
Mats Rauhala <mats.rauhala at gmail.com>**20110504192455
 Ignore-this: 218d2e19835f1e4315c01bd6214899ce
] 
[Add new layout combinator: LayoutBuilderP.
Ilya Portnov <portnov84 at rambler.ru>**20110511154010
 Ignore-this: 377b748cb6b84ef7c9f7cde1d4ebd535
 
 LayoutBuilderP is similar to LayoutBuilder (and is based on it), but LayoutBuilderP places windows matching given X.U.WindowProperties.Property (or any other predicate) into one rectangle, instead of fixed number of windows.
] 
[Action search autocomplete based on whole line
Mats Rauhala <mats.rauhala at gmail.com>**20110504215201
 Ignore-this: 869cf6954be97ea05cbcf7457ab430b7
 
 The previous version autocompleted based on words, but when searching from web
 sites, it makes more sense to autocomplete based on the entire search.
] 
[documentation: tell where to find a few auxiliary functions that might be useful in conjunction with X.A.DynamicWorkspaces
Daniel Wagner <daniel at wagner-home.com>**20110415224846
 Ignore-this: 1bd2232081ba045582d230b632c5bd08
] 
[Typo in window-properties.sh
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110413053002
 Ignore-this: 4b3d4ef6ba7229f11d93b3cf66055698
 Somewhere between my creating the original version of this script and
 adding it to the tree, a backslash got lost.  It appears to have been
 lost in the version I put on the wiki, so I suspect a copy-paste
 problem at that point.
] 
[XMonad.Hooks.FadeWindows: A generalized window fading hook
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110226002436
 Ignore-this: f21d1085ecca26602631f46c45bc198b
] 
[Script to simplify getting ManageHook information from a window
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224024937
 Ignore-this: ef0e0089dca94c7c2321f791d5d7ffe
] 
[XMonad/Hooks/DebugKeyEvents - debug helper to see what keys xmonad sees
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224023613
 Ignore-this: 5a6a99b7fcc31236152a82aa9c2cda16
] 
[Prevent non-default XUtils windows from being composited
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224003224
 Ignore-this: 41a67b8504c412e2754085eb0038f416
] 
[XMonad.Hooks.FloatNext: issue #406, make FloatNext use ToggleHook
gwern0 at gmail.com**20110412015217
 Ignore-this: d06aecd03be0cbd507d3738dfde6eee7
] 
[issue #406: ben boeckel <mathstuf at gmail.com> +XMonad.Hooks.ToggleHook
gwern0 at gmail.com**20110412015127
 Ignore-this: 125891614da94a5ac0e66e39932aa17e
] 
[Fix xinerama workspace swapping with A.CopyWindow.killAllOtherCopies
Adam Vogt <vogt.adam at gmail.com>**20110301033736
 Ignore-this: de5727d1248d94447c4634a05a90d1cc
 
 Spotted by arlinius in #xmonad, and this only shows up for xinerama setups.
 Using an algorithm that scales better with number of workspaces would probably
 be shorter too (visiting them in turn, rather than doing random access), but
 probably not worth the effort.
] 
[XMonad.Util.Run: resolve issue #441
gwern0 at gmail.com**20110411163740
 Ignore-this: 9e3da81df65f6750c822a5044952f1a1
 See <http://code.google.com/p/xmonad/issues/detail?id=441>
 
 > I have run into programs that fail when run by safeSpawn but succeed with spawn.
 > I tracked it down in one (python) and it seems to be due to uninstallSignalHandlers.
 > When run by safeSpawn, the program reports errors from wait.
 
 dylan did not supply a patch and his version doesn't match the declared type signature;
 since I don't want to break every `safeSpawn` user, I tossed a `>> return ()` in to make
 the type right, although I'm troubled at removing the exception functions.
] 
[AppendFile: additional example of usage
gwern0 at gmail.com**20110126201018
 Ignore-this: 2ba40977463ff15140067ef73947785c
] 
[Fix A.Gridselect image links (thanks dobblego)
Adam Vogt <vogt.adam at gmail.com>**20110119230113
 Ignore-this: e2b334e13c5900a72daff866270b13db
] 
[Bump version to 0.10 to help keep the correct contrib/core versions together.
Adam Vogt <vogt.adam at gmail.com>**20110115180553
 Ignore-this: c3f3bf382225ec14477ed9298aea89af
] 
[H.ICCCMFocus had atom_WM_TAKE_FOCUS incorrectly removed
Adam Vogt <vogt.adam at gmail.com>**20110106192052
 Ignore-this: c566320f252d9fe717080e2da37ff262
 
 It is possible that this atom should be defined in the X11 library, but fix the
 build of contrib for now. In any case, this would have to wait for a change and
 release of the X11 binding.
 
 rolling back:
 
 Wed Jan  5 22:38:39 EST 2011  Adam Vogt <vogt.adam at gmail.com>
   * Remove accidental atom_WM_TAKE_FOCUS from H.ICCCMFocus
   
   The XMonad module exports this already
 
     M ./XMonad/Hooks/ICCCMFocus.hs -7 +1
] 
[Remove accidental atom_WM_TAKE_FOCUS from H.ICCCMFocus
Adam Vogt <vogt.adam at gmail.com>**20110106033839
 Ignore-this: 318d60c8cf4ae4f22a7500948a40ebaf
 
 The XMonad module exports this already
] 
[Java swing application focus patch
haskell at tmorris.net**20110105032535
 Ignore-this: 301805eb559489d34d984dc13c0fa5d0
] 
[fix X.L.Gaps documentation, thanks to Carl Mueller for the report
Brent Yorgey <byorgey at cis.upenn.edu>**20101223010744
 Ignore-this: d60b64676668d5b82efb9215ac5605f6
] 
[Fix A.OnScreen example code typo
Adam Vogt <vogt.adam at gmail.com>**20101212161850
 Ignore-this: 486bfc9edc38913c8863e2d5581359eb
] 
[fix up funny unicode whitespace in Fullscreen
Brent Yorgey <byorgey at cis.upenn.edu>**20101212142241
 Ignore-this: 406c4eec83838923edfbf0dfc554cbb7
] 
[Add X.L.Fullscreen
Audun Skaugen <audunskaugen at gmail.com**20101116221611
 Ignore-this: 4b460e9a25abbb4f988801052232147a
] 
[Close the display correctly after counting the number of screens
quesel at informatik.uni-oldenburg.de**20101116081449
 Ignore-this: 6fbc269e34770935fed7d4fd9494154b
 
 This patch adds support for calling countScreens in arbitrary places. Prior to
 this patch one would end up with an open display for each call of the
 countScreens function with would eventually mess up X. This patch ensures that
 the display that is no longer needed is closed after the operation and thus
 using the function without side effects.
] 
[Compatibility with mtl-1 and mtl-2
Adam Vogt <vogt.adam at gmail.com>**20101115232654
 Ignore-this: 4fb7f279365992fe9e73388b0f4001ac
] 
[Rename state in A.Gridselect to avoid name shadowing (mtl-2)
Adam Vogt <vogt.adam at gmail.com>**20101115232222
 Ignore-this: cd81e11ae9f5372ddd71f0c2b60675d5
] 
[Substring search support for X.A.GridSelect. As keymaps get more complicated to support different styles, the gs_navigate element is fundamentially changed.
Clemens Fruhwirth <clemens at endorphin.org>**20101102211213
 Ignore-this: 95610ac8eb781cd74f6c3ce9e36ec039
] 
[Make substring search case insensitive
Clemens Fruhwirth <clemens at endorphin.org>**20101016212904
 Ignore-this: dce1ae9e4164c24447ae9c79c4557f11
] 
[Introduce grayoutAllElements in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016212559
 Ignore-this: 78ca0416b12a49965db876c77e02387f
] 
[Add substring filter to td_elementmap
Clemens Fruhwirth <clemens at endorphin.org>**20101016183644
 Ignore-this: d28b7173095c504ae0e9209303e4468a
] 
[Refactor for ad-hoc element and position matching turning td_elementmap into a function using the new td_availSlot and td_elements fields
Clemens Fruhwirth <clemens at endorphin.org>**20101016183554
 Ignore-this: 85e644a27395e97315efd1ed7a926da8
] 
[Remove nub from diamondLayer in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016183132
 Ignore-this: fe290f3712fa1e122e0123d3f87f418b
] 
[Convert access of td_elementmap from field styled to function call styled in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016164757
 Ignore-this: b46942bf7ca0bd451b0b402ea8b01bf7
] 
[Make use of field names when constructing TwoDState in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016164151
 Ignore-this: 17d947c11e6cb4c64e04fd4754568337
] 
[Pointfree and -XRank2Types don't mix in X.L.Groups.Helpers
Adam Vogt <vogt.adam at gmail.com>**20101113022839
 Ignore-this: 21aa9b687179c5622dc6fae749c7872
 
 It used to work with ghc-6.12 (and earlier?), but ghc-7RC2 type inference
 doesn't work with . instead of it's definition.
] 
[Restrict dependencies, since mtl-2 is incompatible
Adam Vogt <vogt.adam at gmail.com>**20101113022204
 Ignore-this: d6565f9033cc40fd177a20d1688f3ed7
 
 A couple removed constructors need to be replaced by the lowercase versions
 (ex. State = StateT Identity now). But it isn't clear that mtl-1 should be
 dropped.
] 
[X.L.TrackFloating docs and help nested layouts
Adam Vogt <vogt.adam at gmail.com>**20101030175615
 Ignore-this: a4362384ff8baab896715226772edf62
 
 Now TrackFloating remembers focus for the given layout when the other window is
 also tiled, but not fed to the given layout: this helps with X.L.IM, among
 others.
] 
[X.L.Maximize: Make layout forget maximized window when it is closed
Norbert Zeh <nzeh at cs.dal.ca>**20101029221551
 Ignore-this: 9e8bfacce7f90634532078584c82940a
 
 The X.L.Maximize layout modifier does not track whether the window it stores as
 maximized does still exist.  The X server reuses window IDs.  As a result, I
 was able to reproduce the following behaviour (e.g., by opening and closing
 xpdf windows): Create a window, maximize it, close it without restoring it to
 its normal state.  Open a new window with the same window ID (e.g., an xpdf
 window after just closing an xpdf window).  The new window will open maximized,
 which is not what one would expect.  This patch addresses this problem,
 removing the ID of the maximized window from the layout when the maximized
 window is closed.
] 
[Fix bug in L.TrackFloating
Adam Vogt <vogt.adam at gmail.com>**20101030000620
 Ignore-this: 2c3902ea9f1d70a7043965c8aa99891d
 
 Addresses the comment that:
 
 If the focus goes from the floating layer to tiling by deleting a floating
 window, it's again the master window that gets focus, not the remembered
 window.
] 
[Add X.L.Groups.Helpers to other-modules
Daniel Schoepe <daniel.schoepe at googlemail.com>**20101024191850
 Ignore-this: eb000855e28c39140762f09ce02dd35
 
 Not listing aforementioned module can cause build failures in libaries
 that depend on xmonad-contrib.
] 
[windowbringer-menu-choice
mathstuf at gmail.com**20100905013522
 Ignore-this: 3f57b88d725b04f07ce6a43b8d0f56ff
 
 Add functions to allow users to use a menu other than dmenu and pass arguments
 to the menu.
] 
[Add X.L.TrackFloating for tiled-floating focus issues (#4)
Adam Vogt <vogt.adam at gmail.com>**20101016165536
 Ignore-this: 19a4a81601c23900d78d85bd0627d5bb
] 
[minor documentation fixes
Daniel Wagner <daniel at wagner-home.com>**20101007011957
 Ignore-this: c5c046933f318f5a14f063ca387601b9
] 
[Minor documentation fixes in X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at googlemail.com>**20101004120509
 Ignore-this: 36a36d6e38f812744f8ec3df9bb56ffe
] 
[Clarify the note on -XRank2Types in L.Groups
Adam Vogt <vogt.adam at gmail.com>**20101002020841
 Ignore-this: 4ffe5d2d0be1e8b8a8c151b134e963f2
] 
[Mention X.L.Groups.ModifySpec's rank-2 type in the doc
quentin.moser at unifr.ch**20100117115601
 Ignore-this: 2061238abf835cb20579a4899655cec2
] 
[Orphan my modules
moserq at gmail.com**20101001104300
 Ignore-this: 781ebf36f25a94df96fde5f7bb7bc53e
] 
[Split X.L.Groups.Examples
moserq at gmail.com**20101001104142
 Ignore-this: 4d3bc3c44b1c0233d59c6ce5eefcc587
 
 X.L.G.Examples : rowOfColumns and tiled tabs layouts
 X.L.G.Helpers : helper actions
 X.L.G.Wmii : wmii layout
] 
[X.L.G.Examples: improve the tabs of tiledTabs
moserq at gmail.com**20100120103240
 Ignore-this: 58a449c35e1d4a30ecfdf80f015d2dee
] 
[X.L.G.Examples: improve the tabs of wmiiLike
moserq at gmail.com**20100120101746
 Ignore-this: 1519338158025fb580cac523e4a41b88
] 
[X.L.Groups: Always keep one group, even if empty.
quentin.moser at unifr.ch**20100118021526
 Ignore-this: 22d7f9b92484c3411ecba66b06f69821
] 
[Do not duplicate layouts in X.L.Groups
quentin.moser at unifr.ch**20100117114708
 Ignore-this: 100f8ccfbbcda9e8f5cc2b1470772928
 
 I liked the idea, but it completey messes up Decoration layouts.
] 
[Add missing module re-export (issue 366)
Adam Vogt <vogt.adam at gmail.com>**20100930002046
 Ignore-this: ecd6e4ff54d41f37a75be72f3d0e4a59
] 
[X.H.ManageDocks: event hook to refresh on new docks
Tomas Janousek <tomi at nomi.cz>**20100706185834
 Ignore-this: 96f931aa19c45acd28bdc2319c6a0cb6
] 
[This patch adds support for multiple master windows to X.L.Master
quesel at informatik.uni-oldenburg.de**20100518060557
 Ignore-this: 5c62202575966ee65e9b41ef41c30f94
] 
[X.L.LayoutHints: event hook to refresh on hints change
Tomas Janousek <tomi at nomi.cz>**20100706185925
 Ignore-this: 54eba739c76db176cbb4ef66e30c201f
] 
[Remove last excess definition of `fi' (fromIntegral)
Adam Vogt <vogt.adam at gmail.com>**20100913233850
 Ignore-this: 42d9282697573b361d763d980b816465
] 
[Explain fields added for "XMonad.Layout.ImageButtonDecoration"
Adam Vogt <vogt.adam at gmail.com>**20100913232720
 Ignore-this: 8eae99afb2857a91aabbf3b7f27c784e
] 
[Adjust X.C.Desktop documentation content.
Adam Vogt <vogt.adam at gmail.com>**20100803141117
 Ignore-this: 9c2616514be4dbb722958bc5a11357b1
 
 Correct errors regarding a description of `mappend' for X
 
 Use <+> more often since that's `consistent', and there is no difference since
 it's the same as >> when all arguments have the same type (which they do...
 otherwise people aren't just combining valid values for that field of the
 config).
] 
[Minimize: Replaced calls to 'sendMessage' (BW.focusDown) and 'windows' with alternative methods
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100727224841
 Ignore-this: 67257480b7b93181967a806fedf6fbc5
 Calling these functions during message handling results in the loss of layout state.
 This fixes a number of bugs related to the combination of X.L.Minimize with a decoration.
] 
[CurrentWorkspaceOnTop: proper reimplementation of XMonad.Operation
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100727194154
 Ignore-this: 101f55913bf836d1d87863b4c05d0665
 Fixes bugs in combination with stateful layouts and floating windows
] 
[A hook to handle minimize/restore window manager hints.
Justin Bogner <mail at justinbogner.com>**20100616051124
 Ignore-this: c562ce1df81bce9a7dc5e7fe2dc67a43
 
 XMonad.Hooks.Minimize handles both minimize and restore
 messages. Handling restore messages was already done in
 RestoreMinimized, which this module intends to replace.
] 
[WindowGo: bulk up 'runOrRaise' doc to point to 'raiseMaybe' for shell scripting
gwern0 at gmail.com**20100712045632
 Ignore-this: f8f2b04fe7c49827b935ada1345d2ce8
] 
[WindowGo: fmt & sp
gwern0 at gmail.com**20100712042915
 Ignore-this: dc733961f0308815fa2ec0afe118f9cb
] 
[Note that Simplest works well with BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20100622030850
 Ignore-this: b9b6060842651c0df47b23dddb3bf54a
] 
[XMonad.Util.Run: improve linking and rearrange docs
gwern0 at gmail.com**20100620175215
 Ignore-this: d7b76532309237ddfa22c31a1f1ef5a4
] 
[XMonad.Util.Run: correct broken example
gwern0 at gmail.com**20100620175158
 Ignore-this: b390fa0e36b0bd629e7016797e316760
] 
[XMonad.Util.Run: fix unicode char
gwern0 at gmail.com**20100620175140
 Ignore-this: 3e524f9d8a96cb47c2c8c7c265d8e649
] 
[XSelection.hs: update docs w/r/t unicode
gwern0 at gmail.com**20100615000902
 Ignore-this: 26042b8d27bed602c1844181036a9bb
 see http://code.google.com/p/xmonad/issues/detail?id=348
] 
[encode string of bytes not list of chars
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20100613113341
 Ignore-this: bd03772f1e1ab303646f36c28944b43
] 
[GroupNavigation.hs: clean up imports
gwern0 at gmail.com**20100608203832
 Ignore-this: 166ad0b78d8be8453339c7dd5e5cc266
] 
[remove decodeInput/encodeOutput
gwern0 at gmail.com**20100614232300
 Ignore-this: 2ed6a014130dba95c6b0a6fcac055110
 see http://code.google.com/p/xmonad/issues/detail?id=348
 they are just synonyms for 2 utf8-string functions, and don't really help
] 
[Developing: be good to mention hlint in a hacking guide
gwern0 at gmail.com**20100506160535
 Ignore-this: d86ab58539dd6c09a43789b9a549aa9d
] 
[Fix bug in history maintenance of X.A.GroupNavigation
Norbert Zeh <nzeh at cs.dal.ca>**20100604081431
 Ignore-this: 84a22797ec1b76a9b9805af3272911b0
 
 When the focused window was closed without a new window receiving focus, the
 closed window was not removed from the history database, making for example
 "nextMatch History (return True)" misbehave.  This patch fixes this.
] 
[PositionStoreHook: take decoration into account
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100602223015
 Ignore-this: 72192c7cabeaeb744711b651ac3ffc65
] 
[PositionStoreHook: take docks into account
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100602215048
 Ignore-this: 6ffa63f22e9b511a9d28bc1c04195a08
] 
[TopicSpace: +reverseLastFocusedTopics
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20100520072844
 Ignore-this: 97c860fb139269cd592beab275f78d57
] 
[TopicSpace: improve the lastFocusedTopic handling
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20091220212813
 Ignore-this: 9ad30b815e8a9cf002c8b17c07f05dc2
 
 Now the list of last topics is internally kept but
 only visually truncated.
] 
[X.A.GroupNavigation with containers < 0.3.0.0 compatibility
Norbert Zeh <nzeh at cs.dal.ca>**20100514222153
 Ignore-this: e0cf2a784ff02829ad10962863fd50ed
 
 This patch replaces the use of Seq.filter and Seq.breakl with two
 functions flt and brkl that do the same.  This is necessary to
 keep compatibility with containers < 0.3.0.0 because Seq.filter and
 Seq.breakl were introduced only in containers 0.3.0.0.
] 
[New module XMonad.Actions.GroupNavigation
Norbert Zeh <nzeh at cs.dal.ca>**20100510081412
 Ignore-this: c286dbd1b365326fa25a9c5c0e564af7
 
 This module adds two related facilities.  The first one allows cycling through
 the windows in a window group.  A group is defined as the set of windows for
 which a given Boolean Query returns True.  The second one keeps track of the
 history of focused windows and allows returning to the most recently focused
 window in a given window group before the currently focused window.
] 
[Add a way to update the modifier in X.L.LayoutModifier
Daniel Schoepe <daniel.schoepe at gmail.com>**20090822213958
 Ignore-this: f257a376bef57689287b68ed21ec903d
 
 This patch adds the possibility to update the state of a layout modifier when
 modifying the underlying layout before it is run(i.e. using modifyLayout). 
 The modified state is also passed to the subsequent call of redoLayout, whose 
 return takes precedence if both functions return modified states of the layout 
 modifier.
] 
[Remove trailing whitespace in A.KeyRemap
Adam Vogt <vogt.adam at gmail.com>**20100503153258
 Ignore-this: 59d38be8462d50c298f590d55ebda910
] 
[Adding XMonad.Actions.KeyRemap for mapping single keys
stettberger at dokucode.de**20100502152322
 Ignore-this: 113f6ef92fd31134fb6752a8b8253c3a
 
 With KeyRemap it is possible to emit different keys to client windows, when 
 pressing some key. For example having dvorak layout for typing, but us for 
 keybindings.
] 
[Move Util.Font to .hs, and enable -XCPP
Adam Vogt <vogt.adam at gmail.com>**20100429140744
 Ignore-this: 1e60993426bf8e146c9440e2dbb0f764
 
 As the CPP pass was the only feature being used in Font.hsc (no other FFI)
 it's better to avoid hsc2hs, if only to make the purpose of the module
 clearer from the filename.
] 
[A.Search: Remove unnecessary `do'
Adam Vogt <vogt.adam at gmail.com>**20100429134749
 Ignore-this: 2fc31d045a57ccd01f3af03cb46440c2
] 
[Fix escaping of URI
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20100423204707
 Ignore-this: 7dad15752eb106d8bc6cd50ffd2e8d3a
] 
[Prompt: handle case of historySize=0 better.
Adam Vogt <vogt.adam at gmail.com>**20100421183006
 Ignore-this: e4a74e905677649ddde36385a9ed47a2
] 
[Rearrange tests. See test/genMain.hs for instructions.
Adam Vogt <vogt.adam at gmail.com>**20100419014946
 Ignore-this: 1745e6f1052e84e40153b5b1c0a6e15a
] 
[Use CPP to add to exports for Selective tests (L.LimitWindows)
Adam Vogt <vogt.adam at gmail.com>**20100419014344
 Ignore-this: 74c228892f07bb827e4b419f4efdb04
] 
[Use imported `fi' alias for fromIntegral more often.
Adam Vogt <vogt.adam at gmail.com>**20100416212939
 Ignore-this: 51040e693066fd7803cc1b108c1a13d5
 
 Also moves `fi' into U.Image to avoid cyclic imports,
 though XUtils sill exports that definition.
] 
[Note that mouseResizableTileMirrored may be removed.
Adam Vogt <vogt.adam at gmail.com>**20100416161118
 Ignore-this: 2b005aa36abe224f97062f80e8558af7
] 
[Structure L.MouseResizableTile documentation.
Adam Vogt <vogt.adam at gmail.com>**20100416160641
 Ignore-this: c285ac8a4663bdd2ae957b3c198094da
] 
[X.L.MouseResizableTile: make everything configurable
Tomas Janousek <tomi at nomi.cz>**20100415214609
 Ignore-this: f8164dc63242c7e32210c9577a254bf7
] 
[X.L.MouseResizableTile: configurable gaps (dragger size and position)
Tomas Janousek <tomi at nomi.cz>**20100415213813
 Ignore-this: 5803861bbfecbc8c946b817b98909647
 
 (with the option of putting the draggers over window borders with no gaps at
 all)
] 
[Remove unnecessary imports.
Adam Vogt <vogt.adam at gmail.com>**20100416160239
 Ignore-this: 11beb14b87e294dafb54cc3764393c5b
] 
[update module imports
gwern0 at gmail.com**20100414211947
 Ignore-this: 804bee14960064b4e4efd33d07a60a2b
] 
[tests/test_XPrompt can build now.
Adam Vogt <vogt.adam at gmail.com>**20100414204612
 Ignore-this: ded6711134658fe371f19a909037c9cb
] 
[prettier haddock markup for L.NoBorders
Adam Vogt <vogt.adam at gmail.com>**20100405184020
 Ignore-this: 1a9862e6e7ec0e965201a65a68314680
] 
[ImageButtonDecoration: new image for menu button
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100402174910
 Ignore-this: 3977c4bfcb4052e07321ec9e83f917c6
] 
[image_buttons
trupill at gmail.com**20100331093808
 Ignore-this: 418dbf488435c7c803695407557eecfb
 
 * Added a XMonad.Util.Image module to manipulate simple images
   and show them into an X drawable
 * Added the possibility of using image buttons instead of plain
   text buttons into the title bar
 * Added a XMonad.Layout.ImageButtonDecoration as an example of
   how to use the image buttons
 
] 
[WindowMenu: own colorizer that works better with Bluetile's new theme
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100402184119
 Ignore-this: 708e1ad1654165fc5da5efc943a2a6b9
] 
[X.L.Named deprecate and implement using X.L.Renamed
Anders Engstrom <ankaan at gmail.com>**20100401212403
 Ignore-this: a74963ef4990c9e845b9142b8648cf26
 nameTail behaves slightly different if there are whitespace before the first word or the name contains tabs or other such whitespace. But I expect few users are affected since the only usecase where nameTail is actually needed is to remove automatically added prefixes. These prefixes will be removed as they should by the new implementation.
] 
[X.L.Minimize remove redundant imports
Anders Engstrom <ankaan at gmail.com>**20100401204400
 Ignore-this: f7bbfe96c8d08955fc845318f918ec86
] 
[Correct module header.
Adam Vogt <vogt.adam at gmail.com>**20100330181029
 Ignore-this: 53edd88f94f0b7d54fc350c47c38898c
] 
[minimize_ewmh
trupill at gmail.com**20100330183616
 Ignore-this: 4d14b74192af503c4b2e28ea877c85f5
] 
[Use more monoid instances to clean up U.WorkspaceCompare
Adam Vogt <vogt.adam at gmail.com>**20100222151710
 Ignore-this: ab7089175a7486144e01b706de04036e
] 
[Note that Groups has redundancies and the interface may change.
Adam Vogt <vogt.adam at gmail.com>**20100330175945
 Ignore-this: 2f4dc5a2355ace4005dd07fc5d459f1a
 
 Refer to:
 http://www.haskell.org/pipermail/xmonad/2010-January/009585.html
] 
[X.H.UrgencyHook: performance fix
Tomas Janousek <tomi at nomi.cz>**20100330141341
 Ignore-this: b626166259858f16bc5051c67b498c68
 
 cleanupUrgents would update the Map in extensible state 2-times the number of
 visible windows, resulting in excessive memory usage and garbage collection.
 This seems to make it behave correctly.
] 
[Update my e-mail address
quentin.moser at unifr.ch**20100117011109
 Ignore-this: f5efc4d494cb001d3cfbe2b2e169cbe5
] 
[New module: X.L.Groups.Examples
quentin.moser at unifr.ch**20100117010236
 Ignore-this: 8fc40821759d7ed439ecc6726417f52d
 
 Utility functions and examples using X.L.Groups.
] 
[New module: X.L.Groups
quentin.moser at unifr.ch**20100117005301
 Ignore-this: 167e191d520a36b94cf24121ead67dae
 
 The mother of all layout combinators.
] 
[New module: X.L.ZoomRow
quentin.moser at unifr.ch**20100117003939
 Ignore-this: c464ae1005679484e364eb6ece31d9fc
 
 Row layout with individually resizable elements.
] 
[New module: X.L.Renamed
quentin.moser at unifr.ch**20100117002612
 Ignore-this: 38a5c638e36090c746356390c09d3479
] 
[New module: X.U.Stack
quentin.moser at unifr.ch**20100117002104
 Ignore-this: e0c3969042ca5e1e8b9e50436519e52a
 
 Utility functions for working with Maybe Stacks, including:
   - useful conversions to and from lists
   - insertUp/Down, swapUp/Down, focusUp/Down, etc
   - maps, filters and folds
] 
[bugfix: removeKeys should remove all keys in the provided list
Daniel Wagner <daniel at wagner-home.com>**20100327192541
 Ignore-this: 711c776a19d428a2ab4614ee82641de4
] 
[fixed argument order to isPrefixOf in a couple of places in X.A.Search
Jurgen Doser <jurgen.doser at gmail.com>**20100316122010
 Ignore-this: 1a613748778d07de1b459a4268ff8d55
 In some places, ((!>), prefixAware, and one place in the documentation),
 isPrefixOf was used with wrong argument order.  In particular, this made
 combining search engines not work as advertised, for example, the predefined
 search engine "multi".
] 
[X.P.Ssh: add entries from .ssh/config to ssh prompt completion
Brent Yorgey <byorgey at cis.upenn.edu>**20091229171346
 Ignore-this: fa638a0af4cb71be91f6c90bdf6d5513
] 
[X.H.DynamicLog: let the user of xmonadPropLog choose property name
Tomas Janousek <tomi at nomi.cz>**20100319214631
 Ignore-this: 17c0cac2a469e0b70b0cea86f3aeed51
] 
[Replace.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210109
 Ignore-this: ee951e62c1de753907f77a8a6bac7cae
] 
[Workspace.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210101
 Ignore-this: c2888dc8aa919ce6da706ba8ea1c523a
] 
[Layout.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210054
 Ignore-this: 5ad02e9c968bb49773e2bf05310a3754
] 
[Directory.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210047
 Ignore-this: 1e83cd71f6439603b577874317cac8bb
] 
[MessageControl: rm trailing whitespace
gwern0 at gmail.com**20100314210038
 Ignore-this: d4dc93a8a68847123918db416080e018
] 
[LimitWindows.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210030
 Ignore-this: 7d138a5903d45ffeeb4e89f1b8923382
] 
[LayoutCombinators.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210021
 Ignore-this: e387bdea6c346fc8a892b06294995442
] 
[DecorationAddons.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210012
 Ignore-this: 2f54649e43ebf11e35bd8764d1a44675
] 
[Column.hs: rm whitespace
gwern0 at gmail.com**20100314210001
 Ignore-this: 6cfd701babde42d5dc61bfbe95305b20
] 
[DynamicWorkspaces.hs: rm whitespace
gwern0 at gmail.com**20100314205951
 Ignore-this: 9d64301708cb1702b9b46f1068efa891
] 
[Fix bugs with nested drawers in X.L.Drawer
Max Rabkin <max.rabkin at gmail.com>**20100310170159
 Ignore-this: 5c7665f3f3ea2c629deb0cca3715bb8d
 There were two bugs:
 1. The layout modifier assumed the rect's x was zero.
 2. The layout modifier assumed that the stackset's focus actually had focus.
] 
[Correct L.Drawer haddock markup and re-export required module.
Adam Vogt <vogt.adam at gmail.com>**20100308225258
 Ignore-this: 1cc5675a68a66cf436817137a478b747
] 
[Added X.L.Drawer
Max Rabkin <max.rabkin at gmail.com>**20100308212752
 Ignore-this: c7973679b7b2702178ae06fc45396dda
 X.L.Drawer provides a layout modifier for retracting windows which roll down
 (like the Quake console) when they gain focus.
] 
[X.U.WorkspaceCompare xinerama compare with physical order
Anders Engstrom <ankaan at gmail.com>**20100308115402
 Ignore-this: 49296fb6e09717f38db28beb66bc2c80
 Like the old xinerama workspace comparison, but order by physical location just like X.A.PhysicalScreens. Useful if using xinerama sort for statusbar together with physicalscreens.
] 
[X.U.Dmenu helpers to run dmenu with arguments
Anders Engstrom <ankaan at gmail.com>**20100308115022
 Ignore-this: 7d582e06d0e393c717f43e0729306fbf
] 
[X.L.LayoutScreens split current screen
Anders Engstrom <ankaan at gmail.com>**20100308114318
 Ignore-this: e7bd1ef63aee3f736e12e109cabb839
 This patch will allow the user to split the currently focused screen instead of all screens together. This is usefull for multiscreen users who have functioning xinerama, but wish to split one of the screens.
] 
[X.A.PhysicalScreens cleaning and allow cycling
Anders Engstrom <ankaan at gmail.com>**20100308113704
 Ignore-this: 3a9a3554cda29f976df646b38b56e8e7
 Remove redundant import to supress warning, did some refactoring to use xmonad internal things to find screens instead of using X11-stuff. Also added ability to cycle between screens in physical order.
] 
[Use imported 'fi' in H.ScreenCorners
Adam Vogt <vogt.adam at gmail.com>**20100222150633
 Ignore-this: 45ceb91d6c39f29bb937aa29c0bc2e66
] 
[X.H.ScreenCorners typos
Nils Schweinsberg <mail at n-sch.de>**20100222115142
 Ignore-this: 805ba06f6215bb83a68631f750743830
] 
[X.H.ScreenCorners rewritten to use InputOnly windows instead of waiting for MotionEvents on the root window
Nils Schweinsberg <mail at n-sch.de>**20100222112459
 Ignore-this: f9866d3e3f1ea09ff9e9bb593146f0b3
] 
[[patch] X.H.ScreenCorners: move the mouse cursor to avoid loops
Nils Schweinsberg <mail at n-sch.de>**20100221231550
 Ignore-this: c8d2ece0f6e75aba1b091d5f9de371dc
] 
[Prevent possible pattern match failure in X.A.UpdateFocus
Daniel Schoepe <daniel.schoepe at gmail.com>**20100221234735
 Ignore-this: fe132d248db01076a1038e9e8acbdf42
] 
[New extension: XMonad.Hooks.ScreenCorners
Nils Schweinsberg <mail at n-sch.de>**20100221230259
 Ignore-this: c3a715e2590ed094ed5908bd225b185e
] 
[documentation for marshallPP
daniel at wagner-home.com**20100215000731
 Ignore-this: efa38829b40dc1586f5f18c4bab21f7d
] 
[DynamicLog support for IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20100104054251
 Ignore-this: 16fe32f1d66abf4a79f8670131663a60
] 
[minor style changes
Daniel Wagner <daniel at wagner-home.com>**20091228173016
 Ignore-this: 605de753d6a5007751de9d7b9f8ab9ca
] 
[XMonad.Prompt: remove white border from greenXPConfig
gwern0 at gmail.com**20100211163641
 Ignore-this: 1cd9a6de02419b7747eab98eb4e84c35
] 
[Fixed reversed history searching direction in X.P.history(Up|Down)Matching
Daniel Schoepe <daniel.schoepe at gmail.com>**20100208162901
 Ignore-this: 61b9907318d18ef2fb5bc633048d3afc
] 
[Compatibility for rename of XMonad.numlockMask
Adam Vogt <vogt.adam at gmail.com>**20100124201955
 Ignore-this: 765c58a8b77ca0b54f05fd69a9bba714
] 
[Use extensible-exceptions to allow base-3 or base-4
Adam Vogt <vogt.adam at gmail.com>**20100124203324
 Ignore-this: 136f35fcc0f3a824b96eea0f4e04f276
] 
[suppress some warnings under ghc 6.12.1 and clean up redundant imports to get rid of some others.
Brent Yorgey <byorgey at cis.upenn.edu>**20100112172507
 Ignore-this: bf3487b27036b02797d9f528a078d006
] 
[Corrected documentation in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20100201204522
 Ignore-this: 98f9889a4844bc765cbb9e43bd83bc05
] 
[Use Stack instead of list in X.Prompt.history*Matching
Daniel Schoepe <daniel.schoepe at gmail.com>**20100201202839
 Ignore-this: 45d03c7096949bd250dd1c5c2d3646d4
] 
[BluetileConfig: Fullscreen tweaks and border color change
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100131233347
 Ignore-this: 2a10959bed0f3fb9985e3dd1010f123b
] 
[A.CycleWindows replace partial rotUp and rotDown with safer versions
Wirt Wolff <wirtwolff at gmail.com>**20100123231912
 Ignore-this: 6b4e40c15b66fc53096910e85e736c23
 Rather than throw exceptions, handle null and singleton lists, i.e.
 f [] gives [] and f [x] gives [x].
] 
[Use <+> instead of explicit M.union to merge keybindings in X.C.*
Adam Vogt <vogt.adam at gmail.com>**20100124202136
 Ignore-this: e7bfd99eb4d3e6735153d1d5ec00a885
] 
[Fix incorrect import suggestion in L.Tabbed (issue 362)
Adam Vogt <vogt.adam at gmail.com>**20100121182501
 Ignore-this: 5e46f140a7e8c2abf0ac75b3262a7da4
] 
[Swap window ordering in L.Accordion (closes Issue 358). Thanks rsaarelm.
Adam Vogt <vogt.adam at gmail.com>**20100121154344
 Ignore-this: cd06b0f4fc85f857307aaae8f6e40af7
 
 This change keeps windows in the same ordering when focus is changed.
] 
[use restart to restart xmonad (no longer bluetile)
Jens Petersen <petersen at haskell.org>**20100116105935
 Ignore-this: e6e27c65e25201fc84bfaf092dad48ac
] 
[X.L.Decoration: avoid flicker by not showing decowins without rectangles
Tomas Janousek <tomi at nomi.cz>**20100116112054
 Ignore-this: 6f38634706c3f35272670b969fc6cc96
 
 These would be hidden by updateDecos immediately after being shown. This
 caused flicker with simpleTabbed and only one window on a workspace.
] 
[Add a way to cycle only through matching history entries in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20100113233036
 Ignore-this: d67aedb25f2cc6f329a78d5d3eebdd2b
 
 This patch adds a way go up through X.Prompt's history using
 only those entries that start with the current input, similar
 to zsh's `history-search-backward'.
] 
[Style changes in L.Minimize
Adam Vogt <vogt.adam at gmail.com>**20100104144448
 Ignore-this: 5f64c0717e24ed6cbe2c9fad50bf78a3
] 
[minimize_floating
konstantin.sobolev at gmail.com**20091230070105
 Ignore-this: 2c0e1b94f123a869fb4e72a802e59c2
 Adds floating windows support to X.L.Minimize
] 
[Use more imported cursor constants.
Adam Vogt <vogt.adam at gmail.com>**20091230220927
 Ignore-this: 91e55c63a1d020fafb6b53e6abf9766c
] 
[import new contrib module, X.A.DynamicWorkspaceOrder
Brent Yorgey <byorgey at cis.upenn.edu>**20091230192350
 Ignore-this: bba2c0c30d5554612cc6e8bd59fee205
] 
[X.A.CycleWS: export generalized 'doTo' function for performing an action on a workspace relative to the current one
Brent Yorgey <byorgey at cis.upenn.edu>**20091230191953
 Ignore-this: 7cf8efe7c45b501cbcea0943f667b77e
] 
[new contrib module, X.A.DynamicWorkspaceGroups, for managing groups of workspaces on multi-head setups
Brent Yorgey <byorgey at cis.upenn.edu>**20091229165702
 Ignore-this: fc3e6932a95f57b36b4d8d4cc7f3e2d7
] 
[new contrib module from Tomas Janousek, X.A.WorkspaceNames
Brent Yorgey <byorgey at cis.upenn.edu>**20091229163915
 Ignore-this: 5bc7caaf38647de51949a24498001474
] 
[X.P.Shell, filter empty string from PATH
Tim Horton <tmhorton at gmail.com>**20091224033217
 Ignore-this: 1aec55452f917d0be2bff7fcf5937766
 
 doesDirectoryExist returns True if given an empty string using ghc <= 6.10.4.
 This causes getDirectoryContents to raise an exception and X.P.Shell does not
 render. This is only an issue if you have an empty string in your PATH.
 
 Using ghc == 6.12.1, doesDirectoryExist returns False given an empty string, so
 this should not be an issue in the future.
 
] 
[small tweak to battery logger
Brent Yorgey <byorgey at cis.upenn.edu>**20091227085641
 Ignore-this: 350dfed0cedd250cd9d4bd3391cbe034
] 
[Use imported xC_bottom_right_corner in A.MouseResize
Adam Vogt <vogt.adam at gmail.com>**20091227233705
 Ignore-this: 52794f788255159b91e68f2762c5f6a1
] 
[X.A.MouseResize: assign an appropriate cursor for the resizing inpuwin
Tomas Janousek <tomi at nomi.cz>**20091227212140
 Ignore-this: d9ce96c2cd0312b6b5be4acee30a1da3
] 
[Fix the createSession bug in spawnPipe
Spencer Janssen <spencerjanssen at gmail.com>**20091227003501
 Ignore-this: 2d7f8746eb657036d39f3b9aac22b3c9
 Both the new XMonad.Core.xfork function and spawnPipe call createSession, calling
 this function twice results in an error.
] 
[Let the core know about MouseResizableTile's draggers, so they are stacked correctly
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091223145428
 Ignore-this: 7c096aba6b540ccf9b49c4ee86c6091a
] 
[Update all uses of forkProcess to xfork
Spencer Janssen <spencerjanssen at gmail.com>**20091223064558
 Ignore-this: 963a4ddf1d2f4096bbb8969b173cd0c1
] 
[Make X.L.Minimize explicitly mark minimized windows as boring
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091222214529
 Ignore-this: b1e8adf26ac87dede6c1b7a7d687411c
] 
[Actions/Search: added openstreetmap
intrigeri at boum.org**20091222114545
 Ignore-this: fafc4680c8b59b7a044d995c1dacec9a
] 
[Add a search predicate option to XMonad.Prompt
Mike Lundy <mike at fluffypenguin.org>**20091221025408
 Ignore-this: 8e8804eeb9650d38bc225e15887310da
] 
[In D.Extending note how <+> can be used with keybindings.
Adam Vogt <vogt.adam at gmail.com>**20091220190739
 Ignore-this: ebea8ef8a835ed368fa06621add6519f
] 
[Fix MultiToggle crashes with decorated layouts
Tomas Janousek <tomi at nomi.cz>**20091220004733
 Ignore-this: 9208f5da9f0de95464ea62cb45e8f291
 
 The problem was that certain layouts keep their "world" state in their value,
 which was thrown away and forgotten after ReleaseResources during toggle.
 
 In particular, decorated layouts store some X11 handles in them and
 allocate/deallocate it as appropriate. If any modification to their state is
 ignored, they may try to deallocate already deallocated memory, which results
 in a crash somewhere inside Xlib.
 
 This patch makes Transformers reversible so that nothing is ever ignored. As a
 side effect, layout transformers now do receive messages and messages for the
 base layout do not need the undo/reapply cycle -- we just pass messages to the
 current transformed layout and unapply the transformer when needed.
 (This, however, doesn't mean that the base layout is not asked to release
 resources on a transformer change -- we still need the transformer to release
 its resources and there's no way to do this without asking the base layout as
 well.)
] 
[Golf / style change in U.ExtensibleState
Adam Vogt <vogt.adam at gmail.com>**20091208010506
 Ignore-this: c35bd85baae4700e14417ac7e07de959
] 
[Style changes in EwmhDesktops
Adam Vogt <vogt.adam at gmail.com>**20091219003824
 Ignore-this: 905eff9ed951955c8f62617b2d82302e
] 
[Add support for fullscreen through the _NET_WM_STATE protocol
audunskaugen at gmail.com**20091214135119
 Ignore-this: 430ca3c6779e36383f8ce8e477ee9622
 
 This patch adds support for applications using the
 gtk_window_fullscreen function, and other applications using
 _NET_WM_STATE for the same purpose.
] 
[TAG 0.9.1
Spencer Janssen <spencerjanssen at gmail.com>**20091216233651
 Ignore-this: 713d9dd89d775e30346f57a61038d308
] 
[Bump version to 0.9.1
Spencer Janssen <spencerjanssen at gmail.com>**20091216232634
 Ignore-this: bcd799c3341ee6c69a259e1dca747cac
] 
[Match X11 dependencies with xmonad's
Spencer Janssen <spencerjanssen at gmail.com>**20091216012630
 Ignore-this: bcbd6e3e5e2675cdac6f1d1b1bc09853
] 
[Safer X11 version dependency
Spencer Janssen <spencerjanssen at gmail.com>**20091216005916
 Ignore-this: 6dc805a8a0c7a3d3369bc1d6d97d4f56
] 
[Update Prompt for numlockMask changes
Spencer Janssen <spencerjanssen at gmail.com>**20091103222621
 Ignore-this: 4980e2fdf4c296a266590cc4acf76e1e
] 
[X.L.MouseResizableTile: change description for mirrored variant
Tomas Janousek <tomi at nomi.cz>**20091211124218
 Ignore-this: dbc02fb777e35cdc15fb11979c1e983e
 
 The description for mirrored MouseResizableTile is now "Mirror
 MouseResizableTile", to follow the standard of other layouts that can be
 mirrored using the Mirror modifier.
] 
[X.A.GridSelect: documentation typo fix
Tomas Janousek <tomi at nomi.cz>**20091211182515
 Ignore-this: 521bef2a73a9e969d7a96defb555177b
 
 spotted by Justin on IRC
] 
[A.GridSelect shouldn't grab keys if there are no choices.
Adam Vogt <vogt.adam at gmail.com>**20091210183038
 Ignore-this: 48509f780120014a10b32e7289369f32
 
 Thanks thermal2008 in #xmonad for bringing up the corner case when gridselect
 is run with an empty list of choices.
] 
[onScreen' variation for X () functions
Nils Schweinsberg <mail at n-sch.de>**20091209003717
 Ignore-this: 6a9644c729c2b60f94398260f3640e4d
] 
[Added Bluetile's config
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091209150309
 Ignore-this: 641ae527ca6f615e81822b6f38f827e7
] 
[BluetileCommands - a list of commands that Bluetile uses to communicate with its dock
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091208234431
 Ignore-this: 1a5a5e69c7c37d3ffe8d8e09496568de
] 
[Use lookup instead of find in A.PerWorkspaceKeys
Adam Vogt <vogt.adam at gmail.com>**20091129032650
 Ignore-this: 7ecb043df4317365ff3d25b17303eed8
] 
[Change of X.A.OnScreen, more simple and predictable behaviour of onScreen, new functions: toggle(Greedy)OnScreen
Nils Schweinsberg <mail at n-sch.de>**20091207155050
 Ignore-this: c375250778758e401217bcad83567d3b
] 
[Module to ensure that a dragged window always stays in front of all other windows
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129004506
 Ignore-this: a8a389198ccc28a66686561d4d17e91b
] 
[Decoration that allows to switch the position of windows by dragging them onto each other.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129003431
 Ignore-this: 38aff0f3beb1a1eb304219c4f3e85593
] 
[A decoration with small buttons and a supporting module
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129002416
 Ignore-this: 2d65133bc5b9ad29bad7d06780bdaa4
] 
[XMonad.Actions.Search: finally fixed the internet archive search plugin
gwern0 at gmail.com**20091205033435
 Ignore-this: c78ecebced9bc8e39e6077ffa9f9f182
] 
[XMonad.Actions.Search: in retrospect, a bit silly to make everyone go through SSL
gwern0 at gmail.com**20091205033318
 Ignore-this: 452b4e6efb83935fc1063ab695ae074d
] 
[Prompt.hs: Corrected quit keybindings
Tim Horton <tmhorton at gmail.com>**20091203050041
 Ignore-this: e8cd2cd1d41f6807f68157ef37c631ea
] 
[Extended decoration module with more hooks and consolidated some existing ones
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091128234310
 Ignore-this: 5a23af3009ecca2feb9a84f8c6f8ac33
] 
[Extended decoration theme to contain extra static text that always appears in the title bar
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024213928
 Ignore-this: 95f46d6b9ff716a2d8002a426c1012c8
] 
[Extended paintAndWrite to allow for multiple strings to be written into the rectangle
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024205111
 Ignore-this: eb7d32284b7f98145038dcaa14f8075e
] 
[Added the alignment option 'AlignRightOffset'
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024204513
 Ignore-this: 58cc00e1be669877e38a97e36b924969
] 
[Prevent windows from being decorated that are too small to contain decoration.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090627094316
 Ignore-this: 39b806462bbd424f1206b635e9d506e1
] 
[X.L.MouseResizableTile: keep draggers on the bottom of the window stack.
Tomas Janousek <tomi at nomi.cz>**20091126173413
 Ignore-this: 8089cf8ce53580090b045f4aebb1b899
] 
[Implemented smarter system of managing borders for BorderResize
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091122233651
 Ignore-this: 4775c082249e598a84c79b2e819f28b0
] 
[X.H.DynamicLog: fix xmonadPropLog double-encoding of UTF-8
Tomas Janousek <tomi at nomi.cz>**20091121004829
 Ignore-this: bde612bbd1a19951f9718a03e737c4ac
 
 dynamicLogString utf-8 encodes its output, xmonadPropLog shouldn't do that
 again.
] 
[X.H.DynamicLog: make documentation for 'dzen' and 'xmobar' slightly more clear
Brent Yorgey <byorgey at cis.upenn.edu>**20091121170739
 Ignore-this: c9a241677fda21ef93305fc3882f102e
] 
[X.H.ManageDocks: ignore struts that cover an entire screen on that screen
Tomas Janousek <tomi at nomi.cz>**20091119145043
 Ignore-this: ad7bbf10c49c9f3e938cdc3d8588e202
 
 Imagine a screen layout like this:
 
   11111111
   11111111
   11111111
    222222    <--- xmobar here
    222222
    222222
 
 When placing xmobar as indicated, the partial strut property indicates that an
 entire height of screen 1 is covered by the strut, as well as a few lines at
 the top of screen 2. The original code would create a screen rectangle of
 negative height and wreak havoc. This patch causes such strut to be ignored on
 the screen it covers entirely, resulting in the desired behaviour of a small
 strut at the top of screen 2.
 
 Please note that this semantics of _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL is
 different to what is in wm-spec. The "correct" thing to do would be to discard
 the covered portion of screen 1 leaving two narrow areas at the sides, but
 this new behaviour is probably more desirable in many cases, at least for
 xmonad/xmobar users.
 
 The correct solution of having separate _NET_WM_STRUT_PARTIAL for each
 Xinerama screen was mentioned in wm-spec maillist in 2007, but has never
 really been proposed, discussed and included in wm-spec. Hence this "hack".
] 
[Use imported 'fi' in PositionStoreHooks
Adam Vogt <vogt.adam at gmail.com>**20091119103112
 Ignore-this: 6563a3093083667c79aa491a6f59b805
] 
[Changed interface of X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091116171013
 Ignore-this: 9a830f9341e461628974890bab0bd65b
 
 Changed the interface of X.U.ExtensibleState to resemble that of
 Control.Monad.State and modified the modules that use it accordingly.
] 
[PositionStoreFloat - a floating layout with support hooks
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091115184833
 Ignore-this: 8b1d0fcef1465356d72cb5f1f32413b6
] 
[PositionStore utility to store information about position and size of a window
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091108195735
 Ignore-this: 2f6e68a490deb75cba5d007b30c93fb2
] 
[X.H.Urgencyhook fix minor doc bug
Anders Engstrom <ankaan at gmail.com>**20091115131121
 Ignore-this: 18b63bccedceb66c77b345a9300f1ac3
] 
[X.H.DynamicLog fix minor indentation oddness
Anders Engstrom <ankaan at gmail.com>**20091115130707
 Ignore-this: 7f2c49eae5527874ca4499767f4167c4
] 
[X.A.CycleWS cycle by tag group
Anders Engstrom <ankaan at gmail.com>**20091115130217
 Ignore-this: 909da8c00b47a31d04f59bd3751c60bc
 Allow grouping of workspaces, so that a user can cycle through those in the same group. Grouping is done by using a special character in the tag.
] 
[Use less short names in X.Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115025647
 Ignore-this: 1d27b8efc4d829a5642717c6f6426336
] 
[Use io instead of liftIO in Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115025301
 Ignore-this: cd4031b74cd5bb874cd2c3cc2cb087f2
] 
['io' and 'fi' are defined outside of Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115024001
 Ignore-this: 3426056362db9cbfde7d2f4edbfe6f36
] 
[Use zipWithM_ instead of recursion in Prompt.printComplList
Adam Vogt <vogt.adam at gmail.com>**20091115023451
 Ignore-this: 2457500ed871ef120653a3d4ada13441
] 
[Minor style changes in DynamicWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20091115022751
 Ignore-this: 1a6018ab134e4420a949354575a8a110
] 
[X.A.DynamicWorkspaces fix doc and add behaviour
Anders Engstrom <ankaan at gmail.com>**20091113233903
 Ignore-this: ab7c20a9c1b43ebc6a7f4700d988fb73
 Before this patch the documentation claims that it won't do anything on non-empty workspaces when it actually does. This patch fixes the documentation to reflect the actual behaviour, but also adds the behaviour promised by the documentation in other functions. It does not break configs. In addition it also provides functions to help removing empty workspaces when leaving them.
] 
[rework XMonad.Util.Dzen
daniel at wagner-home.com**20091114051509
 Ignore-this: 16d93f91c54f7d195b1a418e6c0351c5
] 
[generalize IO actions to MonadIO m => m actions
daniel at wagner-home.com**20091114023616
 Ignore-this: 2c801a27b0ffee34a2f0daca3778613a
 
 This should not cause any working configs to stop working, because IO is an instance of MonadIO, and because complete configs will pin down the type of the call to IO.  Note that XMonad.Config.Arossato is not a complete config, and so it needed some tweaks; with a main function, this should not be a problem.
] 
[fix documentation to match implementation
daniel at wagner-home.com**20091114021328
 Ignore-this: 6dbbb118b139f443c40a573445a48d07
] 
[Bypass more of stringToKeysym in U.Paste
Adam Vogt <vogt.adam at gmail.com>**20091114223726
 Ignore-this: 617c922647e9f49f5ecefa0eb1c65d3c
] 
[Don't erase floating information with H.InsertPosition (Issue 334)
Adam Vogt <vogt.adam at gmail.com>**20091113161402
 Ignore-this: de1c03eb860ea25b390ee5c756b02997
] 
[Rename gridselectViewWorkspace to gridselectWorkspace, add another example.
Adam Vogt <vogt.adam at gmail.com>**20091112211435
 Ignore-this: 462cf1c7f66ab97a1ce642977591a910
 
 The name should be more general to suggest uses other than just viewing other
 workspaces.
] 
[X.A.DynamicWorkspaces: fix addWorkspace and friends so they never add another copy of an existing workspace
Brent Yorgey <byorgey at cis.upenn.edu>**20091112201351
 Ignore-this: 5bfe8129707b038ed04383b7566b2323
] 
[Trim whitespace in H.FloatNext
Adam Vogt <vogt.adam at gmail.com>**20091111022702
 Ignore-this: 1ad52678246fa1ac951169c2356ce10b
] 
[Use ExtensibleState in H.FloatNext
Adam Vogt <vogt.adam at gmail.com>**20091111022513
 Ignore-this: 760d95a685af080466cb4164d1096423
] 
[Make a haddock link direct in C.Desktop.
Adam Vogt <vogt.adam at gmail.com>**20091111013810
 Ignore-this: da724a7974c3de60f49996c1fe92d3fb
] 
[Change A.TopicSpace haddocks to use block quotes.
Adam Vogt <vogt.adam at gmail.com>**20091111013241
 Ignore-this: 6f7f43d2715cfde62b9c05c7d9a0da2
] 
[Add defaultTopicConfig, to allow adding more fields to TopicSpace later.
Adam Vogt <vogt.adam at gmail.com>**20091111012915
 Ignore-this: 6dad95769651a9a1ef8d771f81c91f8e
] 
[X.A.WindowGo: fix haddock markup
Spencer Janssen <spencerjanssen at gmail.com>**20091111003256
 Ignore-this: c6a06de900ca8b67498abf5152e3d9ea
] 
[Minor style corrections in X.U.SpawnOnce
Daniel Schoepe <daniel.schoepe at gmail.com>**20091109201543
 Ignore-this: 1264852c23b4f84b2580bf4567529c68
] 
[Add gridselectViewWorkspace in X.A.GridSelect
Daniel Schoepe <daniel.schoepe at gmail.com>**20091109155815
 Ignore-this: 5543211e9e3fd325cb798b004635a525
] 
[minor-doc-fix-in-ManageHelpers
`Henrique Abreu <hgabreu at gmail.com>'**20091104172727
 Ignore-this: 231ad417541bc3c17a1cb2dff139d55d
] 
[Set buffering to LineBuffering in scripts/xmonadpropread.hs
Daniel Schoepe <daniel.schoepe at gmail.com>**20091108204106
 Ignore-this: 4e593fc1461fbbfb5b147c7c7702584e
 
 (Required for the script to work properly with tools like dzen)
] 
[X.U.ExtensibleState: style
Spencer Janssen <spencerjanssen at gmail.com>**20091108182858
 Ignore-this: f189da75ad2c57ae9cca48eaf69a6bad
] 
[X.A.DynamicWorkspaces: new 'addWorkspacePrompt' method
Brent Yorgey <byorgey at cis.upenn.edu>**20091108170503
 Ignore-this: a3992b1b7938be80d8fd2a5a503a4042
] 
[Remove defaulting when using NoMonomorphismRestriction in H.EwmhDesktops
Adam Vogt <vogt.adam at gmail.com>**20091107195255
 Ignore-this: ca3939842639c94ca4fd1ff6624319c1
] 
[Update A.TopicSpace to use extensible state. No config changes required.
Adam Vogt <vogt.adam at gmail.com>**20091107194502
 Ignore-this: 7a82aad512bb727b3447de0faa4a210f
] 
[Inline tupadd function in A.GridSelect
Adam Vogt <vogt.adam at gmail.com>**20091101190312
 Ignore-this: 458968154303ab865c304f387d6ac83b
] 
[Alphabetize exposed-modules
Spencer Janssen <spencerjanssen at gmail.com>**20091107174946
 Ignore-this: 919684aea7747a756b303f9b34a2870b
] 
[Use X.U.SpawnOnce in my config
Spencer Janssen <spencerjanssen at gmail.com>**20091107174615
 Ignore-this: fe8f5f75136128280942771ec429f09a
] 
[Add XMonad.Util.SpawnOnce
Spencer Janssen <spencerjanssen at gmail.com>**20091107173820
 Ignore-this: 8d4657bbaa8dbeb1d0f9d22293bfef19
] 
[Store deserialized data after reading in X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091107103832
 Ignore-this: 192beca56e9437292bd3f16451ae9e66
] 
[Fixed conflict between X.U.ExtensibleState and X.C.Sjanssen
Daniel Schoepe <daniel.schoepe at gmail.com>**20091107103619
 Ignore-this: 80f4bb218574d7c528af17473c6e4f66
] 
[Use X.U.ExtensibleState instead of IORefs
Daniel Schoepe <daniel.schoepe at gmail.com>**20091106115601
 Ignore-this: e0e80e31e51dfe76f2b2ed597892cbba
   
 This patch changes SpawnOn, DynamicHooks and UrgencyHooks to
 use X.U.ExtensibleState instead of IORefs. This simplifies the
 usage of those modules thus also breaking current configs.
] 
[Add X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091106115336
 Ignore-this: d80d9d0c10a53fb71a375e432bd29344
] 
[My config uses xmonadPropLog now
Spencer Janssen <spencerjanssen at gmail.com>**20091107005230
 Ignore-this: 8f16b8bea86dfcd3739f1566f5897578
] 
[Add xmonadpropread script
Spencer Janssen <spencerjanssen at gmail.com>**20091107004858
 Ignore-this: 8cc7ed36ec1126d0139638148f9642e8
] 
[Add experimental xmonadPropLog function
Spencer Janssen <spencerjanssen at gmail.com>**20091107004624
 Ignore-this: f09b2c11b16a3af993b63d1b39566120
] 
[XMonad.Actions.Search: imdb search URL tweak for bug #33
gwern0 at gmail.com**20091103222330
 Ignore-this: bae5e6d3ec6c4b6591016ece9dffb202
] 
[Clean imports for L.BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20091103140649
 Ignore-this: 56946a652329390dbdd63746ca23ee8e
] 
[I maintain L.BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20091103140509
 Ignore-this: de853972b4c1c4cefa2dc29e68828d5d
] 
[fix window rectangle calculation in X.A.UpdatePointer
Tomas Janousek <tomi at nomi.cz>**20091026154918
 Ignore-this: ad0c3a020b802854919c7827faa001ad
] 
[Implement hasProperty in terms of runQuery in U.WindowProperties
Adam Vogt <vogt.adam at gmail.com>**20091031154945
 Ignore-this: 1c351bc436e0e323dc25d8f5ff734dcb
 
 This addresses issue 302 for unicode titles by actually using the complicated
 XMonad.ManageHook.title code, instead of reimplementing it with stringProperty
 (which doesn't appear to handle unicode).
] 
[Add functions to access the current input in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20091030235033
 Ignore-this: 3f568c1266d85dcaa5722b19bbbd61dd
] 
[Remove putSelection, fixes #317
Spencer Janssen <spencerjanssen at gmail.com>**20091030224354
 Ignore-this: 6cfd6d92e1d133bc9e3cbb7c8339f735
] 
[Fix typo in H.FadeInactive documentation
Adam Vogt <vogt.adam at gmail.com>**20091029165736
 Ignore-this: b2af487cd382416160d5540b7f210464
] 
[X.L.MultiCol constructor 0 NWin bugfig
Anders Engstrom <ankaan at gmail.com>**20091029105633
 Ignore-this: e6a24f581593424461a8675984d14d25
 Fix bug where the constructor did not accept catch-all columns. Also some minor cleaning.
] 
[X.H.ManageHelpers: added currentWs that returns the current workspace
Ismael Carnales <icarnales at gmail.com>**20091028193519
 Ignore-this: dcd3dac6bd741d26747807691f125637
] 
[X.L.MultiColumns bugfix and formating
Anders Engstrom <ankaan at gmail.com>**20091027131741
 Ignore-this: 6978f485d18adb8bf81cf6c8e0d0332
 Fix bug where a column list of insufficient length could be used to find the column of the window. Also fix formating to conform better with standards.
] 
[X.L.MultiColumns NWin shrinkning fix
Anders Engstrom <ankaan at gmail.com>**20091027005932
 Ignore-this: 9ba40ee14ec12c3885173817eac2b564
 Fixed a bug where the list containing the number of windows in each column was allowed the shrink if a column was unused.
] 
[New Layout X.L.MultiColumns
Anders Engstrom <ankaan at gmail.com>**20091024175155
 Ignore-this: a2d3d2eee52c28eab7d125f6b621cada
 New layout inspired the realization that I was switching between Mirror Tall and Mirror ThreeCol depending on how many windows there were on the workspace. This layout will make those changes automatically.
] 
[Changing behaviour of ppUrgent with X.H.DynamicLog
mail at n-sch.de**20090910010411
 Ignore-this: 3882f36d5c49e53628485c1570bf136a
 
 Currently, the ppUrgent method is an addition to the ppHidden method.
 This doesn't make any sense since it is in fact possible to get urgent
 windows on the current and visible screens. So I've raised the ppUrgent
 printer to be above ppCurrent/ppVisible and dropped its dependency on
 ppHidden.
 
 In addition to that this makes it a lot more easier to define a more
 custom ppUrgent printer, since you don't have to "undo" the ppHidden
 printer anymore. This also basicly removes the need for dzenStrip,
 although I just changed the description.
 
 -- McManiaC / Nils
 
] 
[fix X.U.Run.spawnPipe fd leak
Tomas Janousek <tomi at nomi.cz>**20091025210246
 Ignore-this: 24375912d505963fafc917a63d0e79a0
] 
[TAG 0.9
Spencer Janssen <spencerjanssen at gmail.com>**20091026013449
 Ignore-this: 542b6105d6deed65e12d1f91c666b0b2
] 
Patch bundle hash:
46b3bd6e11bca06aadbda8ca2b085863006556b9
-------------- next part --------------
1 patch for repository http://code.haskell.org/XMonadContrib:

Sun Dec  1 13:11:27 YEKT 2013  Ilya Portnov <portnov84 at rambler.ru>
  * InRegion-LayoutModifier
  This adds new layout modifier, InRegion, which runs underlying layout only in specified rectangle region.


New patches:

[InRegion-LayoutModifier
Ilya Portnov <portnov84 at rambler.ru>**20131201071127
 Ignore-this: c4210596ba74f3b82cb55790d220eed8
 This adds new layout modifier, InRegion, which runs underlying layout only in specified rectangle region.
] {
addfile ./XMonad/Layout/InRegion.hs
hunk ./XMonad/Layout/InRegion.hs 1
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  XMonad.Layout.InRegion
+-- Copyright   :  (c) 2013 Ilya Portnov
+-- License     :  BSD3-style (see LICENSE)
+--
+-- Maintainer  :  Ilya Portnov <portnov84 at rambler.ru>
+-- Stability   :  unstable
+-- Portability :  unportable
+--
+-- Provides InRegion layout modifier, which runs underlying modifier in just
+-- smaller rectangle (region) than a given one.
+--
+-----------------------------------------------------------------------------
+
+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
+
+module XMonad.Layout.InRegion
+    ( -- * Usage
+      -- $usage
+      InRegion (..)
+    , inRegion
+    ) where
+
+import XMonad
+import XMonad.Layout.LayoutModifier
+import qualified XMonad.StackSet as W
+
+-- $usage
+-- InRegion layout modifier runs underlying layout, but only in restricted
+-- region of given space. You specify that region with X,Y coordinates
+-- of top-left corner, and width, height of rectangle.
+--
+-- All numbers are specified as parts of whole region (e.g., screen dimensions).
+-- So, @inRegion 0 0 1 1 someLayout@ will just run @someLayout@ as is.
+--
+-- You can use this module by adding folowing in your @xmonad.hs@:
+--
+-- > import XMonad.Layout.InRegion
+--
+-- Then add layouts to your layoutHook:
+--
+-- > myLayoutHook = inRegion 0.1 0.1 0.8 0.8 (Tall ...) ||| ...
+--
+-- In this example, Tall layout will be run in rectangle with top-left
+-- corner at X=10% of screen width, Y=10% of screen height, width=80%
+-- of screen width, height=80% of screen height. So, you will have 10%
+-- empty gaps at all edges of screen.
+--
+-- You can, for example, use InRegion, if your screen is just too wide for
+-- you when browsing Internet:
+--
+-- > myLayoutHook = inRegion 0.15 0 0.7 1 Full ||| ...
+--
+-- In this example, your browser window will take only 70% of screen width,
+-- and will be aligned at center, so you will have 15% margins at left and
+-- at right.
+
+data InRegion w = InRegion Rational Rational Rational Rational
+  deriving (Read, Show)
+
+instance (Eq w) => LayoutModifier InRegion w where
+  modifyLayout (InRegion x y w h ) = regionLayout x y w h 
+  pureMess _ _ = Nothing
+
+regionLayout :: (LayoutClass layout w)
+              => Rational
+              -> Rational
+              -> Rational
+              -> Rational
+              -> W.Workspace WorkspaceId (layout w) w
+              -> Rectangle
+              -> X ([(w, Rectangle)], Maybe (layout w))
+
+regionLayout x y w h wksp rect = do
+  let rect' = Rectangle (round (x * fromIntegral (rect_width rect)))
+                        (round (y * fromIntegral (rect_height rect)))
+                        (round (w * fromIntegral (rect_width rect)))
+                        (round (h * fromIntegral (rect_height rect)))
+  runLayout wksp rect'
+
+inRegion :: LayoutClass l a
+         => Rational  -- ^ X (0 is at left, 0.5 is at center)
+         -> Rational  -- ^ Y (0 is at top, 0.5 is at center)
+         -> Rational  -- ^ W (1 is all available width, 0.5 is half of it)
+         -> Rational  -- ^ H (1 is all available height, 0.5 is half of it)
+         -> l a
+         -> ModifiedLayout InRegion l a
+inRegion x y w h = ModifiedLayout (InRegion x y w h)
+
hunk ./xmonad-contrib.cabal 223
                         XMonad.Layout.IM
                         XMonad.Layout.ImageButtonDecoration
                         XMonad.Layout.IndependentScreens
+                        XMonad.Layout.InRegion
                         XMonad.Layout.LayoutBuilder
                         XMonad.Layout.LayoutBuilderP
                         XMonad.Layout.LayoutCombinators
}

Context:

[fix UrgencyHook and add filterUrgencyHook
Adam Vogt <vogt.adam at gmail.com>**20130924224738
 Ignore-this: 3b7c62275701e6758397977c5c09b744
] 
[export XMonad.Hooks.UrgencyHook.clearUrgency (issue 533)
Adam Vogt <vogt.adam at gmail.com>**20130923031349
 Ignore-this: dafe5763d9abcfa606f5c1a8cf5c57d6
] 
[minor documentation fix: manageDocks doesn't do anything with struts, so don't claim it does
Daniel Wagner <daniel at wagner-home.com>**20130814125106
 Ignore-this: a2610d6c1318ac0977abfc21d1b91632
] 
[don't pretend to be LG3D in X.C.Dmwit because this confuses modern GTK
Daniel Wagner <daniel at wagner-home.com>**20130813211636
 Ignore-this: 8f728dc1b4bf5e472d99419cc5920e51
] 
[XMonad.Actions.UpdatePointer: generalise updatePointer
Liyang HU <git at liyang.hu>**20130730071007
 Ignore-this: 3374a62b6c63dcc152dbf843cd0577f0
 
] 
[XMonad.Actions.UpdatePointer: document TowardsCentre
Liyang HU <git at liyang.hu>**20130730053746
 Ignore-this: 2d684b12e4fff0ebec254bea4a4546a3
 
] 
[Haddock formatting in H.Minimize
Adam Vogt <vogt.adam at gmail.com>**20130723155658
 Ignore-this: 5db3186a51dec58f78954466ded339cb
] 
[Bump version (and xmonad dependency) to 0.12
Adam Vogt <vogt.adam at gmail.com>**20130720205857
 Ignore-this: ce165178ca916223501f266339f1de39
 
 This makes a breakage due to missing patches in core a bit more obvious.
 Previously you would have a build failure regarding some missing identifiers
 (def re-exported by XMonad from Data.Default), while after applying this patch
 it will be clear that xmonad-core needs to be updated.
] 
[Fix issue 551 by also getting manpath without -g flag.
Adam Vogt <vogt.adam at gmail.com>**20130716030536
 Ignore-this: ded2d51eb7b7697c0fdfaa8158d612df
 
 Instead of taking Ondrej's approach of figuring out which man (man-db or
 http://primates.ximian.com/~flucifredi/man/) is used by the system, just try
 both sets of flags.
] 
[Escape dzen markup and remove xmobar tags from window titles by default.
Adam Vogt <vogt.adam at gmail.com>**20130708144813
 Ignore-this: cf56bff752fbf78ea06d5c0cb755f615
 
 The issue was that window titles, such as those set by, for example a browser,
 could set the window title to display something like
 
    <action=malicious shell command>normal title</action>
 
 Which could be executed by xmobar (or dzen).
 
 This adds a ppTitleSanitize which does the above functions. This way when users
 override ppTitle, the benefits are not lost.
 
 Thanks to Ra?l Benencia and Joachim Breitner for bringing this to my attention.
] 
[DynamicBars-use-ExtensibleState
gopsychonauts at gmail.com**20130618074755
 Ignore-this: afacba51af2be8ede65b9bcf9b002a7
 
 Hooks.DynamicBars was previously using an MVar and the unsafePerformIO hack (
 http://www.haskell.org/haskellwiki/Top_level_mutable_state ) to store bar
 state. Since ExtensibleState exists to solve these sorts of problems, I've
 switched the file over to use unsafePerformIO instead.
 
 Some functions' types had to be changed to allow access to XState, but the
 public API is unchanged.
 
] 
[Catch exceptions when finding commands on PATH in Prompt.Shell
Thomas Tuegel <ttuegel at gmail.com>**20130616230219
 Ignore-this: 5a4d08c80301864bc14ed784f1054c3f
] 
[Fix haddock parse error in X.A.LinkWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20130528133448
 Ignore-this: 42f05cf8ca9e6d1ffae3bd20666d87ab
] 
[use Data.Default wherever possible, and deprecate the things it replaces
Daniel Wagner <daniel at wagner-home.com>**20130528013909
 Ignore-this: 898458b1d2868a70dfb09faf473dc7aa
] 
[eliminate references to defaultConfig
Daniel Wagner <daniel at wagner-home.com>**20130528005825
 Ignore-this: 37ae613e4b943e99c5200915b9d95e58
] 
[minimal change needed to get xmonad-contrib to build with xmonad's data-default patch
Daniel Wagner <daniel at wagner-home.com>**20130528001040
 Ignore-this: 291e4f6cd74fc2b808062e0369665170
] 
[Remove unneeded XSync call in Layout.ShowWName
Francesco Ariis <fa-ml at ariis.it>**20130517153341
 Ignore-this: 4d107c680572eff464c8f6ed9fabdd41
] 
[Remove misleading comment: we definitely don't support ghc-6.6 anymore
Adam Vogt <vogt.adam at gmail.com>**20130514215851
 Ignore-this: 2d071cb05709a16763d039222264b426
] 
[Fix module name in comment of X.L.Fullscreen
Adam Vogt <vogt.adam at gmail.com>**20130514215727
 Ignore-this: cb5cf18c301c5daf5e1a2527da1ef6bf
] 
[Minor update to cabal file (adding modules & maintainership)
Adam Vogt <vogt.adam at gmail.com>**20130514215632
 Ignore-this: 82785e02e544e1f797799bed5b5d9be2
] 
[Remove trailing whitespace in X.A.LinkWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20130514215421
 Ignore-this: 5015ab4468e7931876eb66b019af804c
] 
[Update documentation of LinkWorkspaces Module
quesel at informatik.uni-oldenburg.de**20110328072813
 Ignore-this: da863534931181f551c9c54bc4076c05
] 
[Added a module for linking workspaces
quesel at informatik.uni-oldenburg.de**20110210165018
 Ignore-this: 1dba2164cc3387409873d33099596d91
 
 This module provides a way to link certain workspaces in a multihead setup.
 That way, when switching to the first one the other heads display the linked
 workspaces.
] 
[Cache results from calcGap in ManageDocks
Adam Vogt <vogt.adam at gmail.com>**20130425155811
 Ignore-this: e5076fdbdfc68bc159424dd4e0f14456
 
 http://www.haskell.org/pipermail/xmonad/2013-April/013670.html
] 
[Remove unnecessary contexts from L.MultiToggle
Adam Vogt <vogt.adam at gmail.com>**20130217163356
 Ignore-this: 6b0e413d8c3a58f62088c32a96c57c51
] 
[Generalises modWorkspace to take any layout-transforming function
gopsychonauts at gmail.com**20130501151425
 Ignore-this: 28c7dc1f6216bb1ebdffef5434ccbcbd
 
 modWorkspace already was capable of modifying the layout with an arbitrary
 layout -> layout function, but its original type restricted it such that it
 could only apply a single LayoutModifier; this was often inconvenient, as for
 example it was not possible simply to compose LayoutModifiers for use with
 modWorkspace.
 
 This patch also reimplements onWorkspaces in terms of modWorkspaces, since with
 the latter's less restrictive type this is now possible.
] 
[since XMonad.Config.Dmwit mentions xmobar, we should include the associated .xmobarrc file
Daniel Wagner <daniel at wagner-home.com>**20130503194055
 Ignore-this: 2f6d7536df81eb767262b79b60eb1b86
] 
[warning police
Daniel Wagner <daniel at wagner-home.com>**20130502012700
 Ignore-this: ae7412ac77c57492a7ad6c5f8f50b9eb
] 
[XMonad.Config.Dmwit
Daniel Wagner <daniel at wagner-home.com>**20130502012132
 Ignore-this: 7402161579fd2e191b60a057d955e5ea
] 
[minor fixes to the haddock markup in X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20130411193849
 Ignore-this: b6a139aa43fdb39fc1b86566c0c34c7a
] 
[add whenCurrentOn to X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20130408225251
 Ignore-this: ceea3d391f270abc9ed8e52ce19fb1ac
] 
[Allow to specify the initial gaps' states in X.L.Gaps
Paul Fertser <fercerpav at gmail.com>**20130222072232
 Ignore-this: 31596d918d0050e36ce3f64f56205a64
] 
[should bump X11 dependency, too, to make sure we have getAtomName
Daniel Wagner <daniel at wagner-home.com>**20130225180527
 Ignore-this: 260711f27551f18cc66afeb7b4846b9f
] 
[getAtomName is now defined in the X11 library
Daniel Wagner <daniel at wagner-home.com>**20130225180323
 Ignore-this: 3b9e17c234679e98752a47c37132ee4e
] 
[Allow to limit maximum row count in X.Prompt completion window
Paul Fertser <fercerpav at gmail.com>**20130221122050
 Ignore-this: 923656f02996f2de2b1336275392c5f9
 
 On a keyboard-less device (such as a smartphone), where one has to use
 an on-screen keyboard, the maximum completion window height must be
 limited to avoid overlapping the keyboard.
] 
[Note in U.NameActions that xmonad core can list default keys now
Adam Vogt <vogt.adam at gmail.com>**20130217233026
 Ignore-this: 937bff636fa88171932d5192fe8e290b
] 
[Export U.NamedActions.addDescrKeys per evaryont's request.
Adam Vogt <vogt.adam at gmail.com>**20130217232619
 Ignore-this: a694a0a3ece70b52fba6e8f688d86344
] 
[Add EWMH DEMANDS_ATTENTION support to UrgencyHook.
Maarten de Vries <maarten at de-vri.es>**20130212181229
 Ignore-this: 5a4b314d137676758fad9ec8f85ce422
 
 Add support for the _NET_WM_STATE_DEMANDS_ATTENTION atom
 by treating it the same way as the WM_HINTS urgency flag.
 
] 
[Unconditionally set _NET_WORKAREA in ManageDocks
Adam Vogt <vogt.adam at gmail.com>**20130117180851
 Ignore-this: 9f57e53fba9573d8a92cf153beb7fe7a
] 
[spawn command when no completion is available (if alwaysHighlight is True); changes commandToComplete in Prompt/Shell to complete the whole word instead of using getLastWord
c.lopez at kmels.net**20130209190456
 Ignore-this: ca7d354bb301b555b64d5e76e31d10e8
] 
[order-unindexed-ws-last
matthewhague at zoho.com**20120703222726
 Ignore-this: 4af8162ee8b16a60e8fd62fbc915d3c0
 
 Changes the WorkspaceCompare module's comparison by index to put workspaces without an index last (rather than first).
] 
[SpawnOn modification for issue 523
Adam Vogt <vogt.adam at gmail.com>**20130114014642
 Ignore-this: 703f7dc0f800366b752f0ec1cecb52e5
 
 This moves the function to help clean up the `Spawner' to the ManageHook
 rather than in functions like spawnOn. Probably it makes no difference, the
 reason is because there's one manageSpawn function but many different so this
 way there are less functions to write.
] 
[Update L.TrackFloating.useTransient example code
Adam Vogt <vogt.adam at gmail.com>**20130112041239
 Ignore-this: e4e31cf1db742778c1d59d52fdbeed7a
 
 Suggest useTransient goes to the right of trackFloating which is the
 configuration actually tested.
] 
[Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating
Adam Vogt <vogt.adam at gmail.com>**20130112035701
 Ignore-this: d54d27b71b97144ef0660f910fd464aa
] 
[Make X.A.CycleWS not rely on hidden WS order
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023328
 Ignore-this: 8717a154b33253c5df4e9a0ada4c2c3e
] 
[Add X.H.WorkspaceHistory
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023307
 Ignore-this: c9e7ce33a944facc27481dde52c7cc80
] 
[Allow removing arbitrary workspaces
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214343
 Ignore-this: 6fce4bd3d0c5337e5122158583138e74
] 
[Remove first-hidden restriction from X.A.DynamicWorkspaces.removeWorkspace'
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214148
 Ignore-this: 55fb0859e9a5f476a834ecbdb774aac8
] 
[Add authorspellings file for `darcs show authors'.
Adam Vogt <vogt.adam at gmail.com>**20130101040031
 Ignore-this: c3198072ebc6a71d635bec4d8e2c78fd
 
 This authorspellings file includes a couple people who've contributed to xmonad
 (not XMonadContrib). When people have multiple addresses, the most recent one
 has been picked.
] 
[TAG 0.11
Adam Vogt <vogt.adam at gmail.com>**20130101014231
 Ignore-this: 57cf32412fd1ce912811cb7fafe930f5
] 
[bump cabal-version to satsify hackage
Adam Vogt <vogt.adam at gmail.com>**20130101014159
 Ignore-this: 1dd69577a60bae63362a42022764e5fd
] 
[bump version to 0.11
Adam Vogt <vogt.adam at gmail.com>**20121231104252
 Ignore-this: 8c57d0f366509655d0473adf802eb1ce
] 
[Add more metadata to cabal file
Adam Vogt <vogt.adam at gmail.com>**20121231184513
 Ignore-this: b7767194e905f2bbd918bb0d371f281
] 
[X.A.Workscreen make the whole module description show up for haddock
Adam Vogt <vogt.adam at gmail.com>**20121231024600
 Ignore-this: a2ac895989090322a849695068f812b5
] 
[Note that an alternative to XMonad.Actions.ShowText is X.U.Dzen
Adam Vogt <vogt.adam at gmail.com>**20121231023042
 Ignore-this: ae6476e5d33a559fd8503c44413311b8
] 
[Add X.A.DynamicWorkspaces.renameWorkspaceByName.
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121227063531
 Ignore-this: 4b8aa0405de3969000b1a78eb12992
] 
[Change type of X.A.ShowText.handleTimerEvent so example code typechecks.
Adam Vogt <vogt.adam at gmail.com>**20121226013841
 Ignore-this: 3c58a9ff124ab02325df6f38e0eaec05
] 
[Describe arguments for X.A.ShowText.flashText
Adam Vogt <vogt.adam at gmail.com>**20121226013725
 Ignore-this: 7f00a11196115ebf814c616aaf8e96f
] 
[Add XMonad.Actions.ShowText
pastorelli.mario at gmail.com**20121225202635
 Ignore-this: 5f4818f7ec9ad37df58e73d4bb8b5590
] 
[Record polachok's fix for issue 507
Adam Vogt <vogt.adam at gmail.com>**20121216182724
 Ignore-this: 13743d035e50f642de017c3304f914e
] 
[Removes unused function spawnWithActions and redundant imports in XMonad.Actions.Launcher
c.lopez at kmels.net**20121215223714
 Ignore-this: 76d7ac195e186b491968a548a13889c
] 
[A.Launcher markup identifiers for haddock links
Adam Vogt <vogt.adam at gmail.com>**20121215165914
 Ignore-this: 2fd3fa1dd4e00d573dd359a4b6a7291b
] 
[Address warnings from Debug modules
Adam Vogt <vogt.adam at gmail.com>**20121215165525
 Ignore-this: f97416ae4feffe4e5f9916d14d9e1524
 
 The warnings were related to ghc-7.6 removing Prelude.catch
 (triggering warnings regarding the import hiding it), as well
 as defaulting of some numeric types.
] 
[Removes LocateMode and LocateRegexMode from XMonad.Actions.Launcher
c.lopez at kmels.net**20121214211230
 Ignore-this: b8ad32f23f15368a94202f9ad73995f2
] 
[debug-hooks
allbery.b at gmail.com**20120813223821
 Ignore-this: 7f41c93fdd6643c687598d2fe07aad5d
 Hooks to print diagnostic information to stderr (usually .xsession-errors)
 to help debug complex issues involving the StackSet and received events.
] 
[Remove trailing whitespace.
Adam Vogt <vogt.adam at gmail.com>**20121109014156
 Ignore-this: 72e3afb6e6df47c51262006601765365
] 
[Use Control.Exception.catch explitly to avoid warnings
Adam Vogt <vogt.adam at gmail.com>**20121109013506
 Ignore-this: 2cebdfe604c581f2b4a644e9aed726c7
 
 The base that comes with ghc-7.6.1 no longer includes Prelude.catch;
 so these modules were changed so that there is no warning for
 
 import Prelude hiding (catch)
 
 At the same time these changes should be compatible with older GHCs,
 since the catch being has never been the one in the Prelude.
] 
[Add missing type signatures.
Adam Vogt <vogt.adam at gmail.com>**20121109012752
 Ignore-this: f54f5d9907ae48d58c98de7f8eb1f8a
 
 For whatever reason, some patches applied were missing these signatures.
 While haddock has been able to include inferred signatures for a while,
 including type signatures makes it easier to see if and when types have
 been changed.
] 
[Rename variables "state" to avoid warnings about shadowing
Adam Vogt <vogt.adam at gmail.com>**20121109012316
 Ignore-this: cd063d632412f758ca9fed6393521c8f
 
 XMonad core re-exports Control.Monad.State, which includes
 a function "state" if you happen to use mtl-2. Since there's
 a chance xmonad still works with mtl-1 avoid imports like:
 
 import XMonad hiding (state)
] 
[Rename variable in L.Minimize to avoid shadowing.
Adam Vogt <vogt.adam at gmail.com>**20121109003410
 Ignore-this: b46d3e8e0d4106cea6966116be386677
 
 This "state" is new with a newer mtl.
] 
[Gut H.ICCCMFocus: issue 177 has been merged in core.
Adam Vogt <vogt.adam at gmail.com>**20121108225716
 Ignore-this: 937fe7f514ea6e36ee529e055e100e7f
 
 Keep the module for now: the LG3D bit might still be useful
 and there's no need to break configs unnecessarily.
] 
[ewmh-eventhook-custom
pastorelli.mario at gmail.com**20120816153032
 Ignore-this: 95176f6d955d74321c28caafda63faa0
 
 Add ewmhDesktopsEventHookCustom, a generalized version of ewmhDesktopsEventHook that takes a sort function as argument. This sort function should be the same used by the LogHook.
] 
[Added smart spacing to the spacing module
daedalusinfinity at gmail.com**20120923034527
 Ignore-this: 9104bc8feb832f63f2f18998c0f7ba92
 Added smart spacing to the spacing module, which adds spacing to all windows,
 except to windows on singleton workspaces.
] 
[Improves haddock documentation
c.lopez at kmels.net**20120826091716
 Ignore-this: a0ce4838652acfff7922c111e4d879bb
] 
[Improve comments, add an error throw that shouldn't happen
c.lopez at kmels.net**20120826085426
 Ignore-this: 7675070826b3c53499e4352e692d6036
] 
[fix a bug when ncompletions = nrows
c.lopez at kmels.net**20120826083137
 Ignore-this: 5f573028318473c333809217c271a81d
] 
[Fixes typos in Actions.Launcher haddock documentation
c.lopez at kmels.net**20120811112502
 Ignore-this: f8152c0ad59d2b0cc9a6c9061e83aaf0
] 
[Correctly get the autocompletion item when alwaysHighlight in XMonad.Prompt is True
c.lopez at kmels.net**20120811104805
 Ignore-this: fa2600df210c7d3472a797f19fb31a7
] 
[Removes warnings, adds a browser value for LauncherConfig in haddock comments
c.lopez at kmels.net**20120628114533
 Ignore-this: 2610cf63594db3df61bac52f3d8f5836
 
] 
[Changes on XPrompt:
c.lopez at kmels.net**20120628101749
 Ignore-this: 2384f5c1b886716b3d9785877c2e32f9
   
     * Adds mkPromptWithModes, creates a prompt given a list of modes (list of XPType).
 
     * Adds Setting `alwaysHighlight` to defaultXPConfig. When set to true, autocompletion always highlight the first result if it is not highlighted.
     
 Adds module XMonad.Actions.Launcher. This module allows to combine and switch between instances of XPrompt. It includes a default set of modes which require the programs `hoogle`, `locate` and `calc` to be installed to work properly.
 
] 
[accept more windows as docks
Daniel Wagner <daniel at wagner-home.com>**20120823124153
 Ignore-this: 21d9b406c7e39cca2cc60331aab04873
] 
[strip newlines from dmenu's returns to be compatible with the newest version of dmenu
longpoke at gmail.com**20120723212807
 Ignore-this: 3b11a35125d0bc23b33e0b926562f85a
] 
[A workscreen permits to display a set of workspaces on several
kedals0 at gmail.com**20120706093308
 Ignore-this: 572ed3c3305205bfbcc17bb3fe2600a3
 screens. In xinerama mode, when a workscreen is viewed, workspaces
 associated to all screens are visible.
 
 The first workspace of a workscreen is displayed on first screen,
 second on second screen, etc. Workspace position can be easily
 changed. If the current workscreen is called again, workspaces are
 shifted.
 
 This also permits to see all workspaces of a workscreen even if just
 one screen is present, and to move windows from workspace to workscreen.
] 
[refer to the new name 'handleEventHook' instead of the old name 'eventHook' in X.L.Fullscreen documentation
Daniel Wagner <daniel at wagner-home.com>**20120618181003
 Ignore-this: bd3b26c758cf3993d5a93957bb6f3663
] 
[UrgencyHooks made available as Window -> X () functions
gopsychonauts at gmail.com**20120504062339
 Ignore-this: 6a57cae1d693109b7e27c6471d04f50f
 Adds an UrgencyHook instance for the type Window -> X (), allowing any such
 functions to be used directly as UrgencyHooks. The Show and Read constraints
 were removed from the UrgencyHook class in order to permit this; these
 constraints were required only in a historical implementation of the module,
 which used a layout modifier.
 
 All existing configurations using UrgencyHooks should remain fully functional.
 New configs may make use of this modification by declaring their UrgencyHook as
 a simple Window -> X () function.
 
] 
[updates to XMonad.Prompt re: word-oriented commands
Brent Yorgey <byorgey at cis.upenn.edu>**20120510174317
 Ignore-this: 138b5e8942fe4b55ad7e6ab24f17703f
 
   + change killWord and moveWord to have emacs-like behavior: first move
     past/kill consecutive whitespace, then move past/kill consecutive
     non-whitespace.
 
   + create variants killWord' and moveWord' which take a predicate
     specifying non-word characters.
 
   + create variants defaultXPKeymap' and emacsLikeXPKeymap' which take
     the same sort of predicate, which is applied to all keybindings with
     word-oriented commands.
] 
[Added isUnfocusedOnCurrentWS and fadeInactiveCurrentWSLogHook for better support of fading/opacity on multi monitor setups
Jesper Reenberg <jesper.reenberg at gmail.com>**20120329141818
 Ignore-this: d001a8aafbcdedae21ccd1d18f019185
] 
[Fixed X.A.GridSelect to be consistent in the way it (now) sorts the shown
Jesper Reenberg <jesper.reenberg at gmail.com>**20120501180415
 Ignore-this: 1d0991f9fb44e42f5d1c5a4f427ea661
 elements when modifying the searchString.
 
 The implemented ordering sorts based on how "deep the needle is in the
 haystack", meaning that searching for "st" in the elements "Install" and "Study"
 will order them as "Study" and "Install". Previously there was no ordering and
 when using GridSelect to select workspaces, the ordering was not consistent, as
 the list of workspaces (if not modified manually) is ordered by last used. In
 this case either "Study" or "Install" would come first depending on which
 workspace was last visited.
] 
[Use getXMonadDir to get the default xmonad directory.
Julia Jomantaite <julia.jomantaite at gmail.com>**20120501121427
 Ignore-this: a075433761488b76a58a193aeb4e4a25
] 
[Minor haddock formatting for X.L.OnHost and X.A.DynamicWorkspaceOrder
Adam Vogt <vogt.adam at gmail.com>**20120428194552
 Ignore-this: 843ec567e249cc96d51ca931f1e36514
] 
[Remove trailing whitespace.
Adam Vogt <vogt.adam at gmail.com>**20120428194048
 Ignore-this: d61584110954e84d3611ef3497a29725
] 
[Add emacs-like keys to browse history in XMonad.Prompt
Carlos Lopez-Camey <c.lopez at kmels.net>**20120421110737
 Ignore-this: b90345f72007d09a6b732b974c0faf79
] 
[Adds an emacs-like Keymap in XMonad.Prompt
Carlos Lopez-Camey <c.lopez at kmels.net>**20120421012335
 Ignore-this: f281b8ad01f3d21055e2d6de79af2d79
] 
[add 'withNthWorkspace' to DynamicWorkspaceOrder.
jakob at pipefour.org**20120407184640
 Ignore-this: f5f87ffe9ddf1a12fab775e6fb8e856f
 Note this is very similar to the function of the same name exported by
 DynamicWorkspaces.  Ultimately it would probably be cleaner to
 generalize the one in DynamicWorkspaces to accept an arbitrary
 workspace sort as a parameter; this is left as an exercise for future
 hackers.
] 
[XMonad.Layout.OnHost allows host-specific modifications to a layout, which
allbery.b at gmail.com**20120320030912
 Ignore-this: 4c0d5580e805ff9f40918308914f3bf9
 is otherwise very difficult to do.  Similarly to X.L.PerWorkspace, it provides
 onHost, onHosts, modHost, and modHosts layout modifiers.  It attempts to do
 smart hostname comparison, such that short names will be matched with short
 names and FQDNs with FQDNs.
 
 This module currently requires that $HOST be set in the environment.
 You can use System.Posix.Env.setEnv to do so in xmonad.hs if need be.
 (Properly, this should be done via the network library, but I'm trying to
 avoid adding that dependency.)  An alternative would be to shell out to
 get the name, but that has considerable portability hurdles.
] 
[Bump version to 0.10.1
Adam Vogt <vogt.adam at gmail.com>**20120320005311
 Ignore-this: f0608ffaa877f605eaa86c45a107a14d
 
 Raising the X11 dependency while keeping the xmonad version the same leads to
 problems where cabal install uses the dependency versions following hackage,
 not what is installed.
] 
[narrower BorderResize rectangles placed within border edges
Jens Petersen <juhp at community.haskell.org>**20120314064703
 Ignore-this: 3a43bbdb7f2317d702edafb231f58802
 
   Change the border resize rectangles to be narrower and only extend
   inside the window not outside.  Most window managers just seem to use
   the border decoration area for starting resizes which is often just 1 pixel
   wide but as a compromise the width is now 2 pixels (before it was 10!).
   The rectangles are now placed symmetrically within the border and window.
   This seems to work ok with PositionStoreFloat for the Bluetile config.
] 
[add-dynamic-bars-module
Ben Boeckel <mathstuf at gmail.com>**20120316002204
 Ignore-this: 41347c8f894d8d0b5095dfad86784cf4
 
 This adds the X.H.DynamicBars module. It allows per-screen status bars to be
 easily managed and dynamically handles the number of screens changing.
] 
[bump X11 dependency so that noModMask is available
Daniel Wagner <daniel at wagner-home.com>**20120316000302
 Ignore-this: 971a75dcad25f66848eef4174cd4ddd1
] 
[Paste.hs: rm noModMask, shifted definition to X11 binding (see previous email)
gwern0 at gmail.com**20111203203038
 Ignore-this: dcd164ff8f8f135c8fdef08f42f9244d
] 
[GroupNavigation: fix import typo in usage
Jens Petersen <juhp at community.haskell.org>**20120312103349
 Ignore-this: 65367218ca50a33a37813469b4616f34
] 
[add sendToEmptyWorkspace to FindEmptyWorkspace
Jens Petersen <juhp at community.haskell.org>**20120312102331
 Ignore-this: 50e7992d80d2db43e4d0adf5c95e964f
 
 sendToEmptyWorkspace is like tagToEmptyWorkspace except
 it does not change workspace after moving the window.
] 
[xmonad-contrib.cabal: simplify xmonad dependency to >=0.10 && < 0.11
Jens Petersen <juhp at community.haskell.org>**20120312101800
 Ignore-this: 1ff5a0caa2a1e3487e9a0831e385b3d2
 
 Unless there is a particular reason for listing the lower and upper bounds
 separately then this seems simpler and cleaner.
] 
[ShowWName: Increase horizontal padding for flash
crodjer at gmail.com**20120305164517
 Ignore-this: de5fd30fad2630875c5c78091f07c324
 
 Currently the flash window width leaves a very small amount of padding. This
 patch adds some extra horizontal width, governed by text width and length.
] 
[persist-togglehook-options
Ben Boeckel <mathstuf at gmail.com>**20120311050143
 Ignore-this: 580bacb35b617c1198f01c5a7c0d3fef
 
 Save the state of ToggleHook options over a restart.
] 
[ShowWName flash window background color
Rohan Jain <crodjer at gmail.com>**20120306065224
 Ignore-this: 9cd8fcfc13cc326b9dcc79ef3cc21b26
 
 While calling paintAndWrite for flash window, the background color from config
 should also be passed on as window background in addition to as text background
 color. Otherwise the window color gets set to the default black which shows up
 when text cannot span whole of the window.
 
 This issue becomes visible when the font size is considerably large or even in
 small size with truetype fonts.
] 
[ShowWName: Fix flash location by screen rectangle
crodjer at gmail.com**20120305161240
 Ignore-this: 83ec4cce2297efc6736a1fe55f44ee73
 
 In case of using this hook with multiple monitors, the Tag flash was not
 following the screen's coordinates. This patch shifts the new window created for
 flash according to the Rectangle defined by the screen.
] 
[Fix typo in tabbed layout link for font utils docs
crodjer at gmail.com**20120229070022
 Ignore-this: 2f7e90269e08ce08264d7b1d05bb16f9
] 
[L.WorkspaceDir: cleanup redundant {definitions,imports}
Steffen Schuldenzucker <sschuldenzucker at uni-bonn.de>**20120229112124
 Ignore-this: 7a796b18a64e693e071e9ea3a6a01aa3
] 
[fix L.WorkspaceDir special char handling: remove "echo -n" processing
Steffen Schuldenzucker <sschuldenzucker at uni-bonn.de>**20120227122004
 Ignore-this: ab48687eb4c9018312089a13fd25ecd8
] 
[Add BorderUrgencyHook to XMonad.Hooks.UrgencyHook
allbery.b at gmail.com**20120225082616
 Ignore-this: 9fac77914ff28a6e9eb830e8c9c7e21e
 BorderUrgencyHook is a new UrgencyHook usable with withUrgencyHook or
 withUrgencyHookC; it allows an urgent window to be given a different
 border color.  This may not always work as intended, since UrgencyHook
 likes to assume that a window being visible is sufficient to disable
 urgency notification; but with suppressWhen = Never it may work well
 enough.
 
 There is a report that if a new window is created at the wrong time,
 the wrong window may be marked urgent somehow.  I seem to once again
 be revealing bugs in underlying packages, although a quick examination
 of X.H.UrgencyHook doesn't seem to show any way for the wrong window
 to be selected.
] 
[Adding use case for namedScratchpad.
nicolas.dudebout at gatech.edu**20120122235843
 Ignore-this: 44201e82bcd708cd7098f060345400f1
] 
[Actions.WindowGo: typo fix - trim 's' per cub.uanic https://code.google.com/p/xmonad/issues/detail?id=491
gwern0 at gmail.com**20120116224244
 Ignore-this: fb1d55c1b4609069c55f13523c091260
] 
[XMonad.Actions.PhysicalScreens: fix typo spotted by Chris Pick <haskell at chrispick.com>
gwern0 at gmail.com**20120115223013
 Ignore-this: eb73b33b07dc58a36d3aa00bc8ac31c2
] 
[roll back previous incorrect fix
Daniel Wagner <daniel at wagner-home.com>**20120111214133
 Ignore-this: 91496faef411e6ae3442498b528d119b
] 
[Extending: fix http://code.google.com/p/xmonad/issues/detail?id=490
gwern0 at gmail.com**20120111211907
 Ignore-this: 515afbed507c070d60ab547e98682f12
] 
[another documentation patch: XMonadContrib.UpdatePointer -> XMonad.Actions.UpdatePointer
Daniel Wagner <daniel at wagner-home.com>**20120111211226
 Ignore-this: 1444e4a3f20ba442602ef1811d0b32c7
] 
[documentation patch, fixes issue 490
Daniel Wagner <daniel at wagner-home.com>**20120111210832
 Ignore-this: 8d899e15f9d1a657e9fc687e2f649f45
] 
[X.H.EwmhDesktops note that fullscreenEventHook is not included in ewmh
Adam Vogt <vogt.adam at gmail.com>**20120102211404
 Ignore-this: 92f15fa93877c165158c8fbd24aa2360
 
 Just a documentation fix (nomeata's suggestion at issue 339).
] 
[X.H.EwmhDesktops haddock formatting.
Adam Vogt <vogt.adam at gmail.com>**20120102211203
 Ignore-this: cfff985e4034e06a0fe27c52c9971901
] 
[X.A.Navigation2D
Norbert Zeh <nzeh at cs.dal.ca>**20111208205842
 Ignore-this: 3860cc71bfc08d99bd8279c2e0945186
 
 This is a new module to support directional navigation across multiple screens.
 As such it is related to X.A.WindowNavigation and X.L.WindowNavigation, but it
 is more general.  For a detailed discussion of the differences, see
 http://www.cs.dal.ca/~nzeh/xmonad/Navigation2D.pdf.
] 
[documentation patch: mention PostfixOperators
Daniel Wagner <daniel at wagner-home.com>**20111210234820
 Ignore-this: 20a05b1f396f18a742346d6e3daea9a8
] 
[P.Shell documentation and add missing unsafePrompt export
Adam Vogt <vogt.adam at gmail.com>**20111207163951
 Ignore-this: a03992ffdc9c1a0f5bfa6dafc453b587
 
 Haddock (version 2.9.2 at least) does not attach documentation to any of a b or
 c when given:
 
     -- | documentation
     a,b,c :: X
 
] 
[Paste: 3 more escaped characters from alistra
gwern0 at gmail.com**20111129160335
 Ignore-this: 46f5b86a25bcd2b26d2e07ed33ffad68
] 
[unfuck X.U.Paste
Daniel Wagner <daniel at wagner-home.com>**20111129032331
 Ignore-this: d450e23ca026143bb6ca9d744dcdd906
] 
[XMonad.Util.Paste: +alistra's patch for fixing his pasting of things like email address (@)
gwern0 at gmail.com**20111128215648
 Ignore-this: 4af1af27637fe056792aa4f3bb0403eb
] 
[XMonad.Util.Paste: rm myself from maintainer field; I don't know how to fix any of it even if I wanted
gwern0 at gmail.com**20111128213001
 Ignore-this: 87a4996aaa5241428ccb13851c5eb455
] 
[XMonad.Prompt.Shell: improve 'env' documentation to cover goodgrue's problem
gwern0 at gmail.com**20111127231507
 Ignore-this: 7b652a280960cbdf99c236496ca091b0
] 
[Fix spelling 'prefered' -> 'preferred'.
Erik de Castro Lopo <erikd at mega-nerd.com>**20111125010229
 Ignore-this: f2eac1728b5e023399188becf867a14d
] 
[Restore TrackFloating behavior to an earlier version.
Adam Vogt <vogt.adam at gmail.com>**20111120045538
 Ignore-this: 1a1367b4171c3ad23b0553766021629f
 
 Thanks for liskni_si for pressing the matter: without this change it is very
 broken, with the patch it is still not perfect but still useful.
] 
[Explicitly list test files in .cabal
Adam Vogt <vogt.adam at gmail.com>**20111118232511
 Ignore-this: ac48a0d388293cc6c771d676aaf142e3
 
 In the future, require Cabal >= 1.6 to be able to just write tests/*.hs
] 
[TAG 0.10
Adam Vogt <vogt.adam at gmail.com>**20111118225640
 Ignore-this: 8f81b175b902e985d584160fc41ab7d1
] 
[Export types to improve haddock links.
Adam Vogt <vogt.adam at gmail.com>**20111118190642
 Ignore-this: 254c5a6941009701dc444043b0eeace5
] 
[Better control over GridVariants geometry
nzeh at cs.dal.ca**20110907133304
 Ignore-this: 59da789a28f702595159eeb6ddd30fd9
 
 Added new messages the layout understands to allow changing the grid aspect
 ratio and setting the fraction of the master to a given value rather than
 changing it relative to the current value.
] 
[Support for scratchpad applications with multiple windows
Norbert Zeh <nzeh at cs.dal.ca>**20110406140213
 Ignore-this: 4c7d5f2ff95292438464e0b1060ab324
 
 I recently found that I use xpad to add sticky notes to my desktop.  I wanted
 to be able to show/hide these in the same fashion as regular scratchpads.  This
 patch adds a function that allows to do this while reusing most of the existing
 NamedScratchpad code.
] 
[Additional messages for SplitGrid layout
Norbert Zeh <nzeh at cs.dal.ca>**20091215192142
 Ignore-this: eb945168d1c420e5a9ed87da12a7acf8
 
 This patch introduces two new message SetMasterRows and SetMasterCols for the
 X.GridVariants.SplitGrid layout, which set the number of rows/columns in the
 master grid to the given value.  This is useful when setting the number of rows
 and/or columns non-incrementally using an interface such as GridSelect.
] 
[Be consistent with core utf8-string usage.
Adam Vogt <vogt.adam at gmail.com>**20111118184745
 Ignore-this: 9de0599d0fb888c58e11598d4de9599e
 
 Now that spawn assumes executeFile takes a String containing utf8 codepoints
 (and takes an actual String as input) adjust Prompt.Shell to avoid double
 encoding. U.Run functions are updated to be consistent with spawn.
] 
[Export types to reduce haddock warnings.
Adam Vogt <vogt.adam at gmail.com>**20101023195755
 Ignore-this: 1cac9202784711ce0fc902d14543bab0
] 
[documentation patch: note the drawbacks of X.U.Dmenu
Daniel Wagner <daniel at wagner-home.com>**20111115022726
 Ignore-this: 97f9676ca075a6f96e090045886083ca
] 
[get ready for GHC 7.4: Num a no longer implies (Eq a, Show a)
Daniel Wagner <daniel at wagner-home.com>**20111115022650
 Ignore-this: faa34d69ddd27b98c6507740b42c9e97
] 
[Correct completions of utf8-named file in X.P.Shell
Adam Vogt <vogt.adam at gmail.com>**20111111215655
 Ignore-this: 9aa10143f313b06afdb11e61777a7d20
] 
[Expose X.L.Groups.Helpers and Groups.Wmii in xmonad-contrib.cabal
Wirt Wolff <wirtwolff at gmail.com>**20111104053703
 Ignore-this: fd50e32f61af64b9e53701787cebcd97
 
 They provide many useful exports and are linked from X.L.Groups so promote
 them from other-modules or missing status.
] 
[Small bugfix to XMonad.Layout.Fullscreen
Audun Skaugen <audun at skaugen.name>**20111023102940
 Ignore-this: adcfedf11b40be2cdd61f615551e0ae
 
 Fixed a small bug in the layout modifers where 
 windows entering fullscreen were not refreshed.
 
 Also fixed some funny whitespace characters.
] 
[documentation patch: add a bit more context to the code snippets in X.L.IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20111011204619
 Ignore-this: cbb03927204aa3c01aa9bea067d37bce
] 
[U.EZConfig allow removing more than one mouse binding.
Adam Vogt <vogt.adam at gmail.com>**20110923123907
 Ignore-this: 6f32ef805566f03977ea5c0fe0ace958
] 
[Remove X.A.GroupNavigation.currentWindow
Norbert Zeh <nzeh at cs.dal.ca>**20110920083922
 Ignore-this: 4b202a9c9e3a13c5e34862784ea4acfa
 
 This function does the same as X.StackSet.peek and all its uses have been
 replaced with X.StackSet.peek.
] 
[Fix typo in NoBorders example code.
Adam Vogt <vogt.adam at gmail.com>**20110814195314
 Ignore-this: 3ad6aaf287962bfce707b2324de91eec
] 
[Add XF86TouchpadToggle to the list of multimedia keys in X.U.EZConfig
Daniel Schoepe <daniel.schoepe at googlemail.com>**20110917151419
 Ignore-this: 84986d5b16c54199a589ed68842f5191
] 
[documentation patch to XMonad.Doc.Extending
Daniel Wagner <daniel at wagner-home.com>**20110916202845
 Ignore-this: 77998915c337590f127fd4a4b6029029
] 
[fix warnings in X.U.EZConfig
Brent Yorgey <byorgey at cis.upenn.edu>**20110908133246
 Ignore-this: 5322d61eaf30b13e68a5674f8ac7084d
] 
[X.A.CycleWS Refactor and add toggleWS' that excludes listed tags
Wirt Wolff <wirtwolff at gmail.com>**20110907232730
 Ignore-this: bec03fcb6aa16452d3a0425d156823a4
] 
[X.A.FlexibleManipulate: Set expected fixities for Pnt math operators
Wirt Wolff <wirtwolff at gmail.com>**20110904221247
 Ignore-this: 9ae239c4120eae866983ecfe5cc59894
 Restores broken mouseWindow discrete linear and resize to 0.9.1 behavior
] 
[GHC 7 compat
Daniel Wagner <daniel at wagner-home.com>**20110731170850
 Ignore-this: 17a43a709e70ebccc925e016d7057399
 
 * true error: more modules export foldl/foldl'/foldr, so explicitly use the Data.Foldable one
 * -Werror error: transition from Control.OldException to Control.Exception, assuming everything was IOException
 
] 
[Correct H.DynamicLog.dynamicLogXinerama comment. Wuzzeb's patch at issue 466.
Adam Vogt <vogt.adam at gmail.com>**20110714231741
 Ignore-this: 8434fe4c740fc06b5b17f016e28e0376
 
 Slight changes to the patch to 1. work with haddock, and 2. remove ppOutput
 which distracts from the formatting and is covered elsewhere.
] 
[ungrab-keyboard-before-action
Ben Boeckel <mathstuf at gmail.com>**20110515210312
 Ignore-this: 5b8f3c286e8231a4d7ade2acbb2ae84a
 
 If an action that requires the keyboard to be grabbed (e.g., launching dmenu),
 it is a race when submapping the action as to whether the action will have
 access to the keyboard or not. To fix this, the keyboard should be ungrabbed
 before executing the action.
] 
[add-movenext-moveprev-bindings
Ben Boeckel <mathstuf at gmail.com>**20110515193326
 Ignore-this: 2ad1ce1de0c2954b2946551dd62e6b3b
 
 Adds default bindings to GridSelect for the moveNext and movePrev motions.
] 
[X.L.LayoutHints: refresh only if hints are not satisfied
Tomas Janousek <tomi at nomi.cz>**20110615150333
 Ignore-this: e081f5fbd6a721e260212548d830ff6b
] 
[L.Spacing use imported fi
Adam Vogt <vogt.adam at gmail.com>**20110612192339
 Ignore-this: ac3b405e8c43d1b1db58ecf80fafab8e
] 
[Use a phantom type instead of undefined in L.LayoutBuilderP
Adam Vogt <vogt.adam at gmail.com>**20110609051858
 Ignore-this: f9009c339ac20245ca0b1dc8154b673f
 
 This better expresses the idea that the argument to alwaysTrue is just there to
 select an instance. Another option could be to do use a fundep, which seems to
 be compatible with the two instances so far.
 
 class Predicate p w | p -> w
 
] 
[Add more L.LayoutBuilderP documentation
Adam Vogt <vogt.adam at gmail.com>**20110609050922
 Ignore-this: 1441d917c84b165f30711e572e239392
] 
[Correct L.LayoutBuilderP module name in haddock.
Adam Vogt <vogt.adam at gmail.com>**20110609043940
 Ignore-this: 3c322c0767969fa42b1e2c32cf3f8a1a
] 
[Extend script for generating the code which runs tests
Adam Vogt <vogt.adam at gmail.com>**20110609040722
 Ignore-this: 44ebbee2683f50bc0728458f4babcce
 
 Now the number of runs each can be set, and the failures and successes are
 summarized in the same way as the core Properties.hs. There is some duplicated
 code which could be avoided by modifying Properties.hs.
] 
[Move tests from ManageDocks to tests/
Adam Vogt <vogt.adam at gmail.com>**20110609040220
 Ignore-this: 31d51fae83d88e15cdb69f29da003bf7
 
 The change to use a newtype for RectC is kind of ugly, but this way instances
 are less likely to conflict in the tests.
] 
[Export X.A.CycleWS.screenBy (issue 439)
Adam Vogt <vogt.adam at gmail.com>**20110607002053
 Ignore-this: 2eaa2a852a3356f6163c4d38f72e730f
] 
[X.H.FloatNext: export X.H.ToggleHook.runLogHook
Tomas Janousek <tomi at nomi.cz>**20110528191700
 Ignore-this: 5fd923e800a1a3f0977f126df7882c54
 
 Otherwise the user has to import XMonad.Hooks.ToggleHook as well, which he
 didn't have to in earlier versions.
] 
[Documentation fix (issue 445)
Adam Vogt <vogt.adam at gmail.com>**20110527033521
 Ignore-this: c73b88f9567af86bd560b911e33da301
 
 Daniel's change which broke -Wall (adding an import for haddock only) was
 somehow removed. Instead we can just modify the sample code to add the import.
] 
[X.A.AppendFile documentation fix.
Adam Vogt <vogt.adam at gmail.com>**20110527032854
 Ignore-this: 1ee126ddba1b06d07fba86ca43f74ab8
 
 Forgotten > means haddock complained (and generated incorrect output).
 More controversially I reworded a sentence and use do notation.
] 
[add-willhook-function
Ben Boeckel <mathstuf at gmail.com>**20110515191718
 Ignore-this: 9db50eec5b91baa973b4a92c72aeceaf
 
 Adds a function that hooks into whether the hook will be triggered on the next
 request.
] 
[use-map-in-toggle-hook
Ben Boeckel <mathstuf at gmail.com>**20110515191418
 Ignore-this: 2bf69aa1a875e7ef1748a5ab51b33daa
 
 Use "Data.Map String (Bool, Bool)" instead of "[(String, (Bool, Bool))]" in
 X.H.ToggleHook.
] 
[Extend GridSelect navigation
Ilya Portnov <portnov84 at rambler.ru>**20110515154246
 Ignore-this: f2d279b8e46e6eaf3477fdc5cf77be63
 Add moveNext and movePrev, which move selection to next/previous item. 
] 
[Generalize X.L.AutoMaster modifier
Ilya Portnov <portnov84 at rambler.ru>**20110514132549
 Ignore-this: 481c35dd721405bab8b085c45cb983ce
 Enable it to work not only with Windows, but with any (Eq) type.
] 
[Cleanup in X.L.LayoutBuilderP.
Ilya Portnov <portnov84 at rambler.ru>**20110514132232
 Ignore-this: 59d9ce37218424e1bc225a42d71982ab
 Remove unused datatype declaration and export usefull typeclass.
] 
[Aesthetics on Flexiblemanipulate
Mats Rauhala <mats.rauhala at gmail.com>**20110506094431
 Ignore-this: 8864c1ba9723ebcc3b183ea9d636a203
 
 Based on Adam Vogts recommendation on the mailing list. I had to give explicit
 type signatures to get rid of warnings, but nearly verbatim to his version.
] 
[Compile with ghc7
Mats Rauhala <mats.rauhala at gmail.com>**20110504192455
 Ignore-this: 218d2e19835f1e4315c01bd6214899ce
] 
[Add new layout combinator: LayoutBuilderP.
Ilya Portnov <portnov84 at rambler.ru>**20110511154010
 Ignore-this: 377b748cb6b84ef7c9f7cde1d4ebd535
 
 LayoutBuilderP is similar to LayoutBuilder (and is based on it), but LayoutBuilderP places windows matching given X.U.WindowProperties.Property (or any other predicate) into one rectangle, instead of fixed number of windows.
] 
[Action search autocomplete based on whole line
Mats Rauhala <mats.rauhala at gmail.com>**20110504215201
 Ignore-this: 869cf6954be97ea05cbcf7457ab430b7
 
 The previous version autocompleted based on words, but when searching from web
 sites, it makes more sense to autocomplete based on the entire search.
] 
[documentation: tell where to find a few auxiliary functions that might be useful in conjunction with X.A.DynamicWorkspaces
Daniel Wagner <daniel at wagner-home.com>**20110415224846
 Ignore-this: 1bd2232081ba045582d230b632c5bd08
] 
[Typo in window-properties.sh
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110413053002
 Ignore-this: 4b3d4ef6ba7229f11d93b3cf66055698
 Somewhere between my creating the original version of this script and
 adding it to the tree, a backslash got lost.  It appears to have been
 lost in the version I put on the wiki, so I suspect a copy-paste
 problem at that point.
] 
[XMonad.Hooks.FadeWindows: A generalized window fading hook
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110226002436
 Ignore-this: f21d1085ecca26602631f46c45bc198b
] 
[Script to simplify getting ManageHook information from a window
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224024937
 Ignore-this: ef0e0089dca94c7c2321f791d5d7ffe
] 
[XMonad/Hooks/DebugKeyEvents - debug helper to see what keys xmonad sees
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224023613
 Ignore-this: 5a6a99b7fcc31236152a82aa9c2cda16
] 
[Prevent non-default XUtils windows from being composited
Brandon S Allbery KF8NH <allbery.b at gmail.com>**20110224003224
 Ignore-this: 41a67b8504c412e2754085eb0038f416
] 
[XMonad.Hooks.FloatNext: issue #406, make FloatNext use ToggleHook
gwern0 at gmail.com**20110412015217
 Ignore-this: d06aecd03be0cbd507d3738dfde6eee7
] 
[issue #406: ben boeckel <mathstuf at gmail.com> +XMonad.Hooks.ToggleHook
gwern0 at gmail.com**20110412015127
 Ignore-this: 125891614da94a5ac0e66e39932aa17e
] 
[Fix xinerama workspace swapping with A.CopyWindow.killAllOtherCopies
Adam Vogt <vogt.adam at gmail.com>**20110301033736
 Ignore-this: de5727d1248d94447c4634a05a90d1cc
 
 Spotted by arlinius in #xmonad, and this only shows up for xinerama setups.
 Using an algorithm that scales better with number of workspaces would probably
 be shorter too (visiting them in turn, rather than doing random access), but
 probably not worth the effort.
] 
[XMonad.Util.Run: resolve issue #441
gwern0 at gmail.com**20110411163740
 Ignore-this: 9e3da81df65f6750c822a5044952f1a1
 See <http://code.google.com/p/xmonad/issues/detail?id=441>
 
 > I have run into programs that fail when run by safeSpawn but succeed with spawn.
 > I tracked it down in one (python) and it seems to be due to uninstallSignalHandlers.
 > When run by safeSpawn, the program reports errors from wait.
 
 dylan did not supply a patch and his version doesn't match the declared type signature;
 since I don't want to break every `safeSpawn` user, I tossed a `>> return ()` in to make
 the type right, although I'm troubled at removing the exception functions.
] 
[AppendFile: additional example of usage
gwern0 at gmail.com**20110126201018
 Ignore-this: 2ba40977463ff15140067ef73947785c
] 
[Fix A.Gridselect image links (thanks dobblego)
Adam Vogt <vogt.adam at gmail.com>**20110119230113
 Ignore-this: e2b334e13c5900a72daff866270b13db
] 
[Bump version to 0.10 to help keep the correct contrib/core versions together.
Adam Vogt <vogt.adam at gmail.com>**20110115180553
 Ignore-this: c3f3bf382225ec14477ed9298aea89af
] 
[H.ICCCMFocus had atom_WM_TAKE_FOCUS incorrectly removed
Adam Vogt <vogt.adam at gmail.com>**20110106192052
 Ignore-this: c566320f252d9fe717080e2da37ff262
 
 It is possible that this atom should be defined in the X11 library, but fix the
 build of contrib for now. In any case, this would have to wait for a change and
 release of the X11 binding.
 
 rolling back:
 
 Wed Jan  5 22:38:39 EST 2011  Adam Vogt <vogt.adam at gmail.com>
   * Remove accidental atom_WM_TAKE_FOCUS from H.ICCCMFocus
   
   The XMonad module exports this already
 
     M ./XMonad/Hooks/ICCCMFocus.hs -7 +1
] 
[Remove accidental atom_WM_TAKE_FOCUS from H.ICCCMFocus
Adam Vogt <vogt.adam at gmail.com>**20110106033839
 Ignore-this: 318d60c8cf4ae4f22a7500948a40ebaf
 
 The XMonad module exports this already
] 
[Java swing application focus patch
haskell at tmorris.net**20110105032535
 Ignore-this: 301805eb559489d34d984dc13c0fa5d0
] 
[fix X.L.Gaps documentation, thanks to Carl Mueller for the report
Brent Yorgey <byorgey at cis.upenn.edu>**20101223010744
 Ignore-this: d60b64676668d5b82efb9215ac5605f6
] 
[Fix A.OnScreen example code typo
Adam Vogt <vogt.adam at gmail.com>**20101212161850
 Ignore-this: 486bfc9edc38913c8863e2d5581359eb
] 
[fix up funny unicode whitespace in Fullscreen
Brent Yorgey <byorgey at cis.upenn.edu>**20101212142241
 Ignore-this: 406c4eec83838923edfbf0dfc554cbb7
] 
[Add X.L.Fullscreen
Audun Skaugen <audunskaugen at gmail.com**20101116221611
 Ignore-this: 4b460e9a25abbb4f988801052232147a
] 
[Close the display correctly after counting the number of screens
quesel at informatik.uni-oldenburg.de**20101116081449
 Ignore-this: 6fbc269e34770935fed7d4fd9494154b
 
 This patch adds support for calling countScreens in arbitrary places. Prior to
 this patch one would end up with an open display for each call of the
 countScreens function with would eventually mess up X. This patch ensures that
 the display that is no longer needed is closed after the operation and thus
 using the function without side effects.
] 
[Compatibility with mtl-1 and mtl-2
Adam Vogt <vogt.adam at gmail.com>**20101115232654
 Ignore-this: 4fb7f279365992fe9e73388b0f4001ac
] 
[Rename state in A.Gridselect to avoid name shadowing (mtl-2)
Adam Vogt <vogt.adam at gmail.com>**20101115232222
 Ignore-this: cd81e11ae9f5372ddd71f0c2b60675d5
] 
[Substring search support for X.A.GridSelect. As keymaps get more complicated to support different styles, the gs_navigate element is fundamentially changed.
Clemens Fruhwirth <clemens at endorphin.org>**20101102211213
 Ignore-this: 95610ac8eb781cd74f6c3ce9e36ec039
] 
[Make substring search case insensitive
Clemens Fruhwirth <clemens at endorphin.org>**20101016212904
 Ignore-this: dce1ae9e4164c24447ae9c79c4557f11
] 
[Introduce grayoutAllElements in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016212559
 Ignore-this: 78ca0416b12a49965db876c77e02387f
] 
[Add substring filter to td_elementmap
Clemens Fruhwirth <clemens at endorphin.org>**20101016183644
 Ignore-this: d28b7173095c504ae0e9209303e4468a
] 
[Refactor for ad-hoc element and position matching turning td_elementmap into a function using the new td_availSlot and td_elements fields
Clemens Fruhwirth <clemens at endorphin.org>**20101016183554
 Ignore-this: 85e644a27395e97315efd1ed7a926da8
] 
[Remove nub from diamondLayer in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016183132
 Ignore-this: fe290f3712fa1e122e0123d3f87f418b
] 
[Convert access of td_elementmap from field styled to function call styled in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016164757
 Ignore-this: b46942bf7ca0bd451b0b402ea8b01bf7
] 
[Make use of field names when constructing TwoDState in X.A.GridSelect
Clemens Fruhwirth <clemens at endorphin.org>**20101016164151
 Ignore-this: 17d947c11e6cb4c64e04fd4754568337
] 
[Pointfree and -XRank2Types don't mix in X.L.Groups.Helpers
Adam Vogt <vogt.adam at gmail.com>**20101113022839
 Ignore-this: 21aa9b687179c5622dc6fae749c7872
 
 It used to work with ghc-6.12 (and earlier?), but ghc-7RC2 type inference
 doesn't work with . instead of it's definition.
] 
[Restrict dependencies, since mtl-2 is incompatible
Adam Vogt <vogt.adam at gmail.com>**20101113022204
 Ignore-this: d6565f9033cc40fd177a20d1688f3ed7
 
 A couple removed constructors need to be replaced by the lowercase versions
 (ex. State = StateT Identity now). But it isn't clear that mtl-1 should be
 dropped.
] 
[X.L.TrackFloating docs and help nested layouts
Adam Vogt <vogt.adam at gmail.com>**20101030175615
 Ignore-this: a4362384ff8baab896715226772edf62
 
 Now TrackFloating remembers focus for the given layout when the other window is
 also tiled, but not fed to the given layout: this helps with X.L.IM, among
 others.
] 
[X.L.Maximize: Make layout forget maximized window when it is closed
Norbert Zeh <nzeh at cs.dal.ca>**20101029221551
 Ignore-this: 9e8bfacce7f90634532078584c82940a
 
 The X.L.Maximize layout modifier does not track whether the window it stores as
 maximized does still exist.  The X server reuses window IDs.  As a result, I
 was able to reproduce the following behaviour (e.g., by opening and closing
 xpdf windows): Create a window, maximize it, close it without restoring it to
 its normal state.  Open a new window with the same window ID (e.g., an xpdf
 window after just closing an xpdf window).  The new window will open maximized,
 which is not what one would expect.  This patch addresses this problem,
 removing the ID of the maximized window from the layout when the maximized
 window is closed.
] 
[Fix bug in L.TrackFloating
Adam Vogt <vogt.adam at gmail.com>**20101030000620
 Ignore-this: 2c3902ea9f1d70a7043965c8aa99891d
 
 Addresses the comment that:
 
 If the focus goes from the floating layer to tiling by deleting a floating
 window, it's again the master window that gets focus, not the remembered
 window.
] 
[Add X.L.Groups.Helpers to other-modules
Daniel Schoepe <daniel.schoepe at googlemail.com>**20101024191850
 Ignore-this: eb000855e28c39140762f09ce02dd35
 
 Not listing aforementioned module can cause build failures in libaries
 that depend on xmonad-contrib.
] 
[windowbringer-menu-choice
mathstuf at gmail.com**20100905013522
 Ignore-this: 3f57b88d725b04f07ce6a43b8d0f56ff
 
 Add functions to allow users to use a menu other than dmenu and pass arguments
 to the menu.
] 
[Add X.L.TrackFloating for tiled-floating focus issues (#4)
Adam Vogt <vogt.adam at gmail.com>**20101016165536
 Ignore-this: 19a4a81601c23900d78d85bd0627d5bb
] 
[minor documentation fixes
Daniel Wagner <daniel at wagner-home.com>**20101007011957
 Ignore-this: c5c046933f318f5a14f063ca387601b9
] 
[Minor documentation fixes in X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at googlemail.com>**20101004120509
 Ignore-this: 36a36d6e38f812744f8ec3df9bb56ffe
] 
[Clarify the note on -XRank2Types in L.Groups
Adam Vogt <vogt.adam at gmail.com>**20101002020841
 Ignore-this: 4ffe5d2d0be1e8b8a8c151b134e963f2
] 
[Mention X.L.Groups.ModifySpec's rank-2 type in the doc
quentin.moser at unifr.ch**20100117115601
 Ignore-this: 2061238abf835cb20579a4899655cec2
] 
[Orphan my modules
moserq at gmail.com**20101001104300
 Ignore-this: 781ebf36f25a94df96fde5f7bb7bc53e
] 
[Split X.L.Groups.Examples
moserq at gmail.com**20101001104142
 Ignore-this: 4d3bc3c44b1c0233d59c6ce5eefcc587
 
 X.L.G.Examples : rowOfColumns and tiled tabs layouts
 X.L.G.Helpers : helper actions
 X.L.G.Wmii : wmii layout
] 
[X.L.G.Examples: improve the tabs of tiledTabs
moserq at gmail.com**20100120103240
 Ignore-this: 58a449c35e1d4a30ecfdf80f015d2dee
] 
[X.L.G.Examples: improve the tabs of wmiiLike
moserq at gmail.com**20100120101746
 Ignore-this: 1519338158025fb580cac523e4a41b88
] 
[X.L.Groups: Always keep one group, even if empty.
quentin.moser at unifr.ch**20100118021526
 Ignore-this: 22d7f9b92484c3411ecba66b06f69821
] 
[Do not duplicate layouts in X.L.Groups
quentin.moser at unifr.ch**20100117114708
 Ignore-this: 100f8ccfbbcda9e8f5cc2b1470772928
 
 I liked the idea, but it completey messes up Decoration layouts.
] 
[Add missing module re-export (issue 366)
Adam Vogt <vogt.adam at gmail.com>**20100930002046
 Ignore-this: ecd6e4ff54d41f37a75be72f3d0e4a59
] 
[X.H.ManageDocks: event hook to refresh on new docks
Tomas Janousek <tomi at nomi.cz>**20100706185834
 Ignore-this: 96f931aa19c45acd28bdc2319c6a0cb6
] 
[This patch adds support for multiple master windows to X.L.Master
quesel at informatik.uni-oldenburg.de**20100518060557
 Ignore-this: 5c62202575966ee65e9b41ef41c30f94
] 
[X.L.LayoutHints: event hook to refresh on hints change
Tomas Janousek <tomi at nomi.cz>**20100706185925
 Ignore-this: 54eba739c76db176cbb4ef66e30c201f
] 
[Remove last excess definition of `fi' (fromIntegral)
Adam Vogt <vogt.adam at gmail.com>**20100913233850
 Ignore-this: 42d9282697573b361d763d980b816465
] 
[Explain fields added for "XMonad.Layout.ImageButtonDecoration"
Adam Vogt <vogt.adam at gmail.com>**20100913232720
 Ignore-this: 8eae99afb2857a91aabbf3b7f27c784e
] 
[Adjust X.C.Desktop documentation content.
Adam Vogt <vogt.adam at gmail.com>**20100803141117
 Ignore-this: 9c2616514be4dbb722958bc5a11357b1
 
 Correct errors regarding a description of `mappend' for X
 
 Use <+> more often since that's `consistent', and there is no difference since
 it's the same as >> when all arguments have the same type (which they do...
 otherwise people aren't just combining valid values for that field of the
 config).
] 
[Minimize: Replaced calls to 'sendMessage' (BW.focusDown) and 'windows' with alternative methods
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100727224841
 Ignore-this: 67257480b7b93181967a806fedf6fbc5
 Calling these functions during message handling results in the loss of layout state.
 This fixes a number of bugs related to the combination of X.L.Minimize with a decoration.
] 
[CurrentWorkspaceOnTop: proper reimplementation of XMonad.Operation
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100727194154
 Ignore-this: 101f55913bf836d1d87863b4c05d0665
 Fixes bugs in combination with stateful layouts and floating windows
] 
[A hook to handle minimize/restore window manager hints.
Justin Bogner <mail at justinbogner.com>**20100616051124
 Ignore-this: c562ce1df81bce9a7dc5e7fe2dc67a43
 
 XMonad.Hooks.Minimize handles both minimize and restore
 messages. Handling restore messages was already done in
 RestoreMinimized, which this module intends to replace.
] 
[WindowGo: bulk up 'runOrRaise' doc to point to 'raiseMaybe' for shell scripting
gwern0 at gmail.com**20100712045632
 Ignore-this: f8f2b04fe7c49827b935ada1345d2ce8
] 
[WindowGo: fmt & sp
gwern0 at gmail.com**20100712042915
 Ignore-this: dc733961f0308815fa2ec0afe118f9cb
] 
[Note that Simplest works well with BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20100622030850
 Ignore-this: b9b6060842651c0df47b23dddb3bf54a
] 
[XMonad.Util.Run: improve linking and rearrange docs
gwern0 at gmail.com**20100620175215
 Ignore-this: d7b76532309237ddfa22c31a1f1ef5a4
] 
[XMonad.Util.Run: correct broken example
gwern0 at gmail.com**20100620175158
 Ignore-this: b390fa0e36b0bd629e7016797e316760
] 
[XMonad.Util.Run: fix unicode char
gwern0 at gmail.com**20100620175140
 Ignore-this: 3e524f9d8a96cb47c2c8c7c265d8e649
] 
[XSelection.hs: update docs w/r/t unicode
gwern0 at gmail.com**20100615000902
 Ignore-this: 26042b8d27bed602c1844181036a9bb
 see http://code.google.com/p/xmonad/issues/detail?id=348
] 
[encode string of bytes not list of chars
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20100613113341
 Ignore-this: bd03772f1e1ab303646f36c28944b43
] 
[GroupNavigation.hs: clean up imports
gwern0 at gmail.com**20100608203832
 Ignore-this: 166ad0b78d8be8453339c7dd5e5cc266
] 
[remove decodeInput/encodeOutput
gwern0 at gmail.com**20100614232300
 Ignore-this: 2ed6a014130dba95c6b0a6fcac055110
 see http://code.google.com/p/xmonad/issues/detail?id=348
 they are just synonyms for 2 utf8-string functions, and don't really help
] 
[Developing: be good to mention hlint in a hacking guide
gwern0 at gmail.com**20100506160535
 Ignore-this: d86ab58539dd6c09a43789b9a549aa9d
] 
[Fix bug in history maintenance of X.A.GroupNavigation
Norbert Zeh <nzeh at cs.dal.ca>**20100604081431
 Ignore-this: 84a22797ec1b76a9b9805af3272911b0
 
 When the focused window was closed without a new window receiving focus, the
 closed window was not removed from the history database, making for example
 "nextMatch History (return True)" misbehave.  This patch fixes this.
] 
[PositionStoreHook: take decoration into account
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100602223015
 Ignore-this: 72192c7cabeaeb744711b651ac3ffc65
] 
[PositionStoreHook: take docks into account
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100602215048
 Ignore-this: 6ffa63f22e9b511a9d28bc1c04195a08
] 
[TopicSpace: +reverseLastFocusedTopics
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20100520072844
 Ignore-this: 97c860fb139269cd592beab275f78d57
] 
[TopicSpace: improve the lastFocusedTopic handling
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20091220212813
 Ignore-this: 9ad30b815e8a9cf002c8b17c07f05dc2
 
 Now the list of last topics is internally kept but
 only visually truncated.
] 
[X.A.GroupNavigation with containers < 0.3.0.0 compatibility
Norbert Zeh <nzeh at cs.dal.ca>**20100514222153
 Ignore-this: e0cf2a784ff02829ad10962863fd50ed
 
 This patch replaces the use of Seq.filter and Seq.breakl with two
 functions flt and brkl that do the same.  This is necessary to
 keep compatibility with containers < 0.3.0.0 because Seq.filter and
 Seq.breakl were introduced only in containers 0.3.0.0.
] 
[New module XMonad.Actions.GroupNavigation
Norbert Zeh <nzeh at cs.dal.ca>**20100510081412
 Ignore-this: c286dbd1b365326fa25a9c5c0e564af7
 
 This module adds two related facilities.  The first one allows cycling through
 the windows in a window group.  A group is defined as the set of windows for
 which a given Boolean Query returns True.  The second one keeps track of the
 history of focused windows and allows returning to the most recently focused
 window in a given window group before the currently focused window.
] 
[Add a way to update the modifier in X.L.LayoutModifier
Daniel Schoepe <daniel.schoepe at gmail.com>**20090822213958
 Ignore-this: f257a376bef57689287b68ed21ec903d
 
 This patch adds the possibility to update the state of a layout modifier when
 modifying the underlying layout before it is run(i.e. using modifyLayout). 
 The modified state is also passed to the subsequent call of redoLayout, whose 
 return takes precedence if both functions return modified states of the layout 
 modifier.
] 
[Remove trailing whitespace in A.KeyRemap
Adam Vogt <vogt.adam at gmail.com>**20100503153258
 Ignore-this: 59d38be8462d50c298f590d55ebda910
] 
[Adding XMonad.Actions.KeyRemap for mapping single keys
stettberger at dokucode.de**20100502152322
 Ignore-this: 113f6ef92fd31134fb6752a8b8253c3a
 
 With KeyRemap it is possible to emit different keys to client windows, when 
 pressing some key. For example having dvorak layout for typing, but us for 
 keybindings.
] 
[Move Util.Font to .hs, and enable -XCPP
Adam Vogt <vogt.adam at gmail.com>**20100429140744
 Ignore-this: 1e60993426bf8e146c9440e2dbb0f764
 
 As the CPP pass was the only feature being used in Font.hsc (no other FFI)
 it's better to avoid hsc2hs, if only to make the purpose of the module
 clearer from the filename.
] 
[A.Search: Remove unnecessary `do'
Adam Vogt <vogt.adam at gmail.com>**20100429134749
 Ignore-this: 2fc31d045a57ccd01f3af03cb46440c2
] 
[Fix escaping of URI
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20100423204707
 Ignore-this: 7dad15752eb106d8bc6cd50ffd2e8d3a
] 
[Prompt: handle case of historySize=0 better.
Adam Vogt <vogt.adam at gmail.com>**20100421183006
 Ignore-this: e4a74e905677649ddde36385a9ed47a2
] 
[Rearrange tests. See test/genMain.hs for instructions.
Adam Vogt <vogt.adam at gmail.com>**20100419014946
 Ignore-this: 1745e6f1052e84e40153b5b1c0a6e15a
] 
[Use CPP to add to exports for Selective tests (L.LimitWindows)
Adam Vogt <vogt.adam at gmail.com>**20100419014344
 Ignore-this: 74c228892f07bb827e4b419f4efdb04
] 
[Use imported `fi' alias for fromIntegral more often.
Adam Vogt <vogt.adam at gmail.com>**20100416212939
 Ignore-this: 51040e693066fd7803cc1b108c1a13d5
 
 Also moves `fi' into U.Image to avoid cyclic imports,
 though XUtils sill exports that definition.
] 
[Note that mouseResizableTileMirrored may be removed.
Adam Vogt <vogt.adam at gmail.com>**20100416161118
 Ignore-this: 2b005aa36abe224f97062f80e8558af7
] 
[Structure L.MouseResizableTile documentation.
Adam Vogt <vogt.adam at gmail.com>**20100416160641
 Ignore-this: c285ac8a4663bdd2ae957b3c198094da
] 
[X.L.MouseResizableTile: make everything configurable
Tomas Janousek <tomi at nomi.cz>**20100415214609
 Ignore-this: f8164dc63242c7e32210c9577a254bf7
] 
[X.L.MouseResizableTile: configurable gaps (dragger size and position)
Tomas Janousek <tomi at nomi.cz>**20100415213813
 Ignore-this: 5803861bbfecbc8c946b817b98909647
 
 (with the option of putting the draggers over window borders with no gaps at
 all)
] 
[Remove unnecessary imports.
Adam Vogt <vogt.adam at gmail.com>**20100416160239
 Ignore-this: 11beb14b87e294dafb54cc3764393c5b
] 
[update module imports
gwern0 at gmail.com**20100414211947
 Ignore-this: 804bee14960064b4e4efd33d07a60a2b
] 
[tests/test_XPrompt can build now.
Adam Vogt <vogt.adam at gmail.com>**20100414204612
 Ignore-this: ded6711134658fe371f19a909037c9cb
] 
[prettier haddock markup for L.NoBorders
Adam Vogt <vogt.adam at gmail.com>**20100405184020
 Ignore-this: 1a9862e6e7ec0e965201a65a68314680
] 
[ImageButtonDecoration: new image for menu button
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100402174910
 Ignore-this: 3977c4bfcb4052e07321ec9e83f917c6
] 
[image_buttons
trupill at gmail.com**20100331093808
 Ignore-this: 418dbf488435c7c803695407557eecfb
 
 * Added a XMonad.Util.Image module to manipulate simple images
   and show them into an X drawable
 * Added the possibility of using image buttons instead of plain
   text buttons into the title bar
 * Added a XMonad.Layout.ImageButtonDecoration as an example of
   how to use the image buttons
 
] 
[WindowMenu: own colorizer that works better with Bluetile's new theme
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100402184119
 Ignore-this: 708e1ad1654165fc5da5efc943a2a6b9
] 
[X.L.Named deprecate and implement using X.L.Renamed
Anders Engstrom <ankaan at gmail.com>**20100401212403
 Ignore-this: a74963ef4990c9e845b9142b8648cf26
 nameTail behaves slightly different if there are whitespace before the first word or the name contains tabs or other such whitespace. But I expect few users are affected since the only usecase where nameTail is actually needed is to remove automatically added prefixes. These prefixes will be removed as they should by the new implementation.
] 
[X.L.Minimize remove redundant imports
Anders Engstrom <ankaan at gmail.com>**20100401204400
 Ignore-this: f7bbfe96c8d08955fc845318f918ec86
] 
[Correct module header.
Adam Vogt <vogt.adam at gmail.com>**20100330181029
 Ignore-this: 53edd88f94f0b7d54fc350c47c38898c
] 
[minimize_ewmh
trupill at gmail.com**20100330183616
 Ignore-this: 4d14b74192af503c4b2e28ea877c85f5
] 
[Use more monoid instances to clean up U.WorkspaceCompare
Adam Vogt <vogt.adam at gmail.com>**20100222151710
 Ignore-this: ab7089175a7486144e01b706de04036e
] 
[Note that Groups has redundancies and the interface may change.
Adam Vogt <vogt.adam at gmail.com>**20100330175945
 Ignore-this: 2f4dc5a2355ace4005dd07fc5d459f1a
 
 Refer to:
 http://www.haskell.org/pipermail/xmonad/2010-January/009585.html
] 
[X.H.UrgencyHook: performance fix
Tomas Janousek <tomi at nomi.cz>**20100330141341
 Ignore-this: b626166259858f16bc5051c67b498c68
 
 cleanupUrgents would update the Map in extensible state 2-times the number of
 visible windows, resulting in excessive memory usage and garbage collection.
 This seems to make it behave correctly.
] 
[Update my e-mail address
quentin.moser at unifr.ch**20100117011109
 Ignore-this: f5efc4d494cb001d3cfbe2b2e169cbe5
] 
[New module: X.L.Groups.Examples
quentin.moser at unifr.ch**20100117010236
 Ignore-this: 8fc40821759d7ed439ecc6726417f52d
 
 Utility functions and examples using X.L.Groups.
] 
[New module: X.L.Groups
quentin.moser at unifr.ch**20100117005301
 Ignore-this: 167e191d520a36b94cf24121ead67dae
 
 The mother of all layout combinators.
] 
[New module: X.L.ZoomRow
quentin.moser at unifr.ch**20100117003939
 Ignore-this: c464ae1005679484e364eb6ece31d9fc
 
 Row layout with individually resizable elements.
] 
[New module: X.L.Renamed
quentin.moser at unifr.ch**20100117002612
 Ignore-this: 38a5c638e36090c746356390c09d3479
] 
[New module: X.U.Stack
quentin.moser at unifr.ch**20100117002104
 Ignore-this: e0c3969042ca5e1e8b9e50436519e52a
 
 Utility functions for working with Maybe Stacks, including:
   - useful conversions to and from lists
   - insertUp/Down, swapUp/Down, focusUp/Down, etc
   - maps, filters and folds
] 
[bugfix: removeKeys should remove all keys in the provided list
Daniel Wagner <daniel at wagner-home.com>**20100327192541
 Ignore-this: 711c776a19d428a2ab4614ee82641de4
] 
[fixed argument order to isPrefixOf in a couple of places in X.A.Search
Jurgen Doser <jurgen.doser at gmail.com>**20100316122010
 Ignore-this: 1a613748778d07de1b459a4268ff8d55
 In some places, ((!>), prefixAware, and one place in the documentation),
 isPrefixOf was used with wrong argument order.  In particular, this made
 combining search engines not work as advertised, for example, the predefined
 search engine "multi".
] 
[X.P.Ssh: add entries from .ssh/config to ssh prompt completion
Brent Yorgey <byorgey at cis.upenn.edu>**20091229171346
 Ignore-this: fa638a0af4cb71be91f6c90bdf6d5513
] 
[X.H.DynamicLog: let the user of xmonadPropLog choose property name
Tomas Janousek <tomi at nomi.cz>**20100319214631
 Ignore-this: 17c0cac2a469e0b70b0cea86f3aeed51
] 
[Replace.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210109
 Ignore-this: ee951e62c1de753907f77a8a6bac7cae
] 
[Workspace.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210101
 Ignore-this: c2888dc8aa919ce6da706ba8ea1c523a
] 
[Layout.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210054
 Ignore-this: 5ad02e9c968bb49773e2bf05310a3754
] 
[Directory.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210047
 Ignore-this: 1e83cd71f6439603b577874317cac8bb
] 
[MessageControl: rm trailing whitespace
gwern0 at gmail.com**20100314210038
 Ignore-this: d4dc93a8a68847123918db416080e018
] 
[LimitWindows.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210030
 Ignore-this: 7d138a5903d45ffeeb4e89f1b8923382
] 
[LayoutCombinators.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210021
 Ignore-this: e387bdea6c346fc8a892b06294995442
] 
[DecorationAddons.hs: rm trailing whitespace
gwern0 at gmail.com**20100314210012
 Ignore-this: 2f54649e43ebf11e35bd8764d1a44675
] 
[Column.hs: rm whitespace
gwern0 at gmail.com**20100314210001
 Ignore-this: 6cfd701babde42d5dc61bfbe95305b20
] 
[DynamicWorkspaces.hs: rm whitespace
gwern0 at gmail.com**20100314205951
 Ignore-this: 9d64301708cb1702b9b46f1068efa891
] 
[Fix bugs with nested drawers in X.L.Drawer
Max Rabkin <max.rabkin at gmail.com>**20100310170159
 Ignore-this: 5c7665f3f3ea2c629deb0cca3715bb8d
 There were two bugs:
 1. The layout modifier assumed the rect's x was zero.
 2. The layout modifier assumed that the stackset's focus actually had focus.
] 
[Correct L.Drawer haddock markup and re-export required module.
Adam Vogt <vogt.adam at gmail.com>**20100308225258
 Ignore-this: 1cc5675a68a66cf436817137a478b747
] 
[Added X.L.Drawer
Max Rabkin <max.rabkin at gmail.com>**20100308212752
 Ignore-this: c7973679b7b2702178ae06fc45396dda
 X.L.Drawer provides a layout modifier for retracting windows which roll down
 (like the Quake console) when they gain focus.
] 
[X.U.WorkspaceCompare xinerama compare with physical order
Anders Engstrom <ankaan at gmail.com>**20100308115402
 Ignore-this: 49296fb6e09717f38db28beb66bc2c80
 Like the old xinerama workspace comparison, but order by physical location just like X.A.PhysicalScreens. Useful if using xinerama sort for statusbar together with physicalscreens.
] 
[X.U.Dmenu helpers to run dmenu with arguments
Anders Engstrom <ankaan at gmail.com>**20100308115022
 Ignore-this: 7d582e06d0e393c717f43e0729306fbf
] 
[X.L.LayoutScreens split current screen
Anders Engstrom <ankaan at gmail.com>**20100308114318
 Ignore-this: e7bd1ef63aee3f736e12e109cabb839
 This patch will allow the user to split the currently focused screen instead of all screens together. This is usefull for multiscreen users who have functioning xinerama, but wish to split one of the screens.
] 
[X.A.PhysicalScreens cleaning and allow cycling
Anders Engstrom <ankaan at gmail.com>**20100308113704
 Ignore-this: 3a9a3554cda29f976df646b38b56e8e7
 Remove redundant import to supress warning, did some refactoring to use xmonad internal things to find screens instead of using X11-stuff. Also added ability to cycle between screens in physical order.
] 
[Use imported 'fi' in H.ScreenCorners
Adam Vogt <vogt.adam at gmail.com>**20100222150633
 Ignore-this: 45ceb91d6c39f29bb937aa29c0bc2e66
] 
[X.H.ScreenCorners typos
Nils Schweinsberg <mail at n-sch.de>**20100222115142
 Ignore-this: 805ba06f6215bb83a68631f750743830
] 
[X.H.ScreenCorners rewritten to use InputOnly windows instead of waiting for MotionEvents on the root window
Nils Schweinsberg <mail at n-sch.de>**20100222112459
 Ignore-this: f9866d3e3f1ea09ff9e9bb593146f0b3
] 
[[patch] X.H.ScreenCorners: move the mouse cursor to avoid loops
Nils Schweinsberg <mail at n-sch.de>**20100221231550
 Ignore-this: c8d2ece0f6e75aba1b091d5f9de371dc
] 
[Prevent possible pattern match failure in X.A.UpdateFocus
Daniel Schoepe <daniel.schoepe at gmail.com>**20100221234735
 Ignore-this: fe132d248db01076a1038e9e8acbdf42
] 
[New extension: XMonad.Hooks.ScreenCorners
Nils Schweinsberg <mail at n-sch.de>**20100221230259
 Ignore-this: c3a715e2590ed094ed5908bd225b185e
] 
[documentation for marshallPP
daniel at wagner-home.com**20100215000731
 Ignore-this: efa38829b40dc1586f5f18c4bab21f7d
] 
[DynamicLog support for IndependentScreens
Daniel Wagner <daniel at wagner-home.com>**20100104054251
 Ignore-this: 16fe32f1d66abf4a79f8670131663a60
] 
[minor style changes
Daniel Wagner <daniel at wagner-home.com>**20091228173016
 Ignore-this: 605de753d6a5007751de9d7b9f8ab9ca
] 
[XMonad.Prompt: remove white border from greenXPConfig
gwern0 at gmail.com**20100211163641
 Ignore-this: 1cd9a6de02419b7747eab98eb4e84c35
] 
[Fixed reversed history searching direction in X.P.history(Up|Down)Matching
Daniel Schoepe <daniel.schoepe at gmail.com>**20100208162901
 Ignore-this: 61b9907318d18ef2fb5bc633048d3afc
] 
[Compatibility for rename of XMonad.numlockMask
Adam Vogt <vogt.adam at gmail.com>**20100124201955
 Ignore-this: 765c58a8b77ca0b54f05fd69a9bba714
] 
[Use extensible-exceptions to allow base-3 or base-4
Adam Vogt <vogt.adam at gmail.com>**20100124203324
 Ignore-this: 136f35fcc0f3a824b96eea0f4e04f276
] 
[suppress some warnings under ghc 6.12.1 and clean up redundant imports to get rid of some others.
Brent Yorgey <byorgey at cis.upenn.edu>**20100112172507
 Ignore-this: bf3487b27036b02797d9f528a078d006
] 
[Corrected documentation in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20100201204522
 Ignore-this: 98f9889a4844bc765cbb9e43bd83bc05
] 
[Use Stack instead of list in X.Prompt.history*Matching
Daniel Schoepe <daniel.schoepe at gmail.com>**20100201202839
 Ignore-this: 45d03c7096949bd250dd1c5c2d3646d4
] 
[BluetileConfig: Fullscreen tweaks and border color change
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20100131233347
 Ignore-this: 2a10959bed0f3fb9985e3dd1010f123b
] 
[A.CycleWindows replace partial rotUp and rotDown with safer versions
Wirt Wolff <wirtwolff at gmail.com>**20100123231912
 Ignore-this: 6b4e40c15b66fc53096910e85e736c23
 Rather than throw exceptions, handle null and singleton lists, i.e.
 f [] gives [] and f [x] gives [x].
] 
[Use <+> instead of explicit M.union to merge keybindings in X.C.*
Adam Vogt <vogt.adam at gmail.com>**20100124202136
 Ignore-this: e7bfd99eb4d3e6735153d1d5ec00a885
] 
[Fix incorrect import suggestion in L.Tabbed (issue 362)
Adam Vogt <vogt.adam at gmail.com>**20100121182501
 Ignore-this: 5e46f140a7e8c2abf0ac75b3262a7da4
] 
[Swap window ordering in L.Accordion (closes Issue 358). Thanks rsaarelm.
Adam Vogt <vogt.adam at gmail.com>**20100121154344
 Ignore-this: cd06b0f4fc85f857307aaae8f6e40af7
 
 This change keeps windows in the same ordering when focus is changed.
] 
[use restart to restart xmonad (no longer bluetile)
Jens Petersen <petersen at haskell.org>**20100116105935
 Ignore-this: e6e27c65e25201fc84bfaf092dad48ac
] 
[X.L.Decoration: avoid flicker by not showing decowins without rectangles
Tomas Janousek <tomi at nomi.cz>**20100116112054
 Ignore-this: 6f38634706c3f35272670b969fc6cc96
 
 These would be hidden by updateDecos immediately after being shown. This
 caused flicker with simpleTabbed and only one window on a workspace.
] 
[Add a way to cycle only through matching history entries in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20100113233036
 Ignore-this: d67aedb25f2cc6f329a78d5d3eebdd2b
 
 This patch adds a way go up through X.Prompt's history using
 only those entries that start with the current input, similar
 to zsh's `history-search-backward'.
] 
[Style changes in L.Minimize
Adam Vogt <vogt.adam at gmail.com>**20100104144448
 Ignore-this: 5f64c0717e24ed6cbe2c9fad50bf78a3
] 
[minimize_floating
konstantin.sobolev at gmail.com**20091230070105
 Ignore-this: 2c0e1b94f123a869fb4e72a802e59c2
 Adds floating windows support to X.L.Minimize
] 
[Use more imported cursor constants.
Adam Vogt <vogt.adam at gmail.com>**20091230220927
 Ignore-this: 91e55c63a1d020fafb6b53e6abf9766c
] 
[import new contrib module, X.A.DynamicWorkspaceOrder
Brent Yorgey <byorgey at cis.upenn.edu>**20091230192350
 Ignore-this: bba2c0c30d5554612cc6e8bd59fee205
] 
[X.A.CycleWS: export generalized 'doTo' function for performing an action on a workspace relative to the current one
Brent Yorgey <byorgey at cis.upenn.edu>**20091230191953
 Ignore-this: 7cf8efe7c45b501cbcea0943f667b77e
] 
[new contrib module, X.A.DynamicWorkspaceGroups, for managing groups of workspaces on multi-head setups
Brent Yorgey <byorgey at cis.upenn.edu>**20091229165702
 Ignore-this: fc3e6932a95f57b36b4d8d4cc7f3e2d7
] 
[new contrib module from Tomas Janousek, X.A.WorkspaceNames
Brent Yorgey <byorgey at cis.upenn.edu>**20091229163915
 Ignore-this: 5bc7caaf38647de51949a24498001474
] 
[X.P.Shell, filter empty string from PATH
Tim Horton <tmhorton at gmail.com>**20091224033217
 Ignore-this: 1aec55452f917d0be2bff7fcf5937766
 
 doesDirectoryExist returns True if given an empty string using ghc <= 6.10.4.
 This causes getDirectoryContents to raise an exception and X.P.Shell does not
 render. This is only an issue if you have an empty string in your PATH.
 
 Using ghc == 6.12.1, doesDirectoryExist returns False given an empty string, so
 this should not be an issue in the future.
 
] 
[small tweak to battery logger
Brent Yorgey <byorgey at cis.upenn.edu>**20091227085641
 Ignore-this: 350dfed0cedd250cd9d4bd3391cbe034
] 
[Use imported xC_bottom_right_corner in A.MouseResize
Adam Vogt <vogt.adam at gmail.com>**20091227233705
 Ignore-this: 52794f788255159b91e68f2762c5f6a1
] 
[X.A.MouseResize: assign an appropriate cursor for the resizing inpuwin
Tomas Janousek <tomi at nomi.cz>**20091227212140
 Ignore-this: d9ce96c2cd0312b6b5be4acee30a1da3
] 
[Fix the createSession bug in spawnPipe
Spencer Janssen <spencerjanssen at gmail.com>**20091227003501
 Ignore-this: 2d7f8746eb657036d39f3b9aac22b3c9
 Both the new XMonad.Core.xfork function and spawnPipe call createSession, calling
 this function twice results in an error.
] 
[Let the core know about MouseResizableTile's draggers, so they are stacked correctly
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091223145428
 Ignore-this: 7c096aba6b540ccf9b49c4ee86c6091a
] 
[Update all uses of forkProcess to xfork
Spencer Janssen <spencerjanssen at gmail.com>**20091223064558
 Ignore-this: 963a4ddf1d2f4096bbb8969b173cd0c1
] 
[Make X.L.Minimize explicitly mark minimized windows as boring
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091222214529
 Ignore-this: b1e8adf26ac87dede6c1b7a7d687411c
] 
[Actions/Search: added openstreetmap
intrigeri at boum.org**20091222114545
 Ignore-this: fafc4680c8b59b7a044d995c1dacec9a
] 
[Add a search predicate option to XMonad.Prompt
Mike Lundy <mike at fluffypenguin.org>**20091221025408
 Ignore-this: 8e8804eeb9650d38bc225e15887310da
] 
[In D.Extending note how <+> can be used with keybindings.
Adam Vogt <vogt.adam at gmail.com>**20091220190739
 Ignore-this: ebea8ef8a835ed368fa06621add6519f
] 
[Fix MultiToggle crashes with decorated layouts
Tomas Janousek <tomi at nomi.cz>**20091220004733
 Ignore-this: 9208f5da9f0de95464ea62cb45e8f291
 
 The problem was that certain layouts keep their "world" state in their value,
 which was thrown away and forgotten after ReleaseResources during toggle.
 
 In particular, decorated layouts store some X11 handles in them and
 allocate/deallocate it as appropriate. If any modification to their state is
 ignored, they may try to deallocate already deallocated memory, which results
 in a crash somewhere inside Xlib.
 
 This patch makes Transformers reversible so that nothing is ever ignored. As a
 side effect, layout transformers now do receive messages and messages for the
 base layout do not need the undo/reapply cycle -- we just pass messages to the
 current transformed layout and unapply the transformer when needed.
 (This, however, doesn't mean that the base layout is not asked to release
 resources on a transformer change -- we still need the transformer to release
 its resources and there's no way to do this without asking the base layout as
 well.)
] 
[Golf / style change in U.ExtensibleState
Adam Vogt <vogt.adam at gmail.com>**20091208010506
 Ignore-this: c35bd85baae4700e14417ac7e07de959
] 
[Style changes in EwmhDesktops
Adam Vogt <vogt.adam at gmail.com>**20091219003824
 Ignore-this: 905eff9ed951955c8f62617b2d82302e
] 
[Add support for fullscreen through the _NET_WM_STATE protocol
audunskaugen at gmail.com**20091214135119
 Ignore-this: 430ca3c6779e36383f8ce8e477ee9622
 
 This patch adds support for applications using the
 gtk_window_fullscreen function, and other applications using
 _NET_WM_STATE for the same purpose.
] 
[TAG 0.9.1
Spencer Janssen <spencerjanssen at gmail.com>**20091216233651
 Ignore-this: 713d9dd89d775e30346f57a61038d308
] 
[Bump version to 0.9.1
Spencer Janssen <spencerjanssen at gmail.com>**20091216232634
 Ignore-this: bcd799c3341ee6c69a259e1dca747cac
] 
[Match X11 dependencies with xmonad's
Spencer Janssen <spencerjanssen at gmail.com>**20091216012630
 Ignore-this: bcbd6e3e5e2675cdac6f1d1b1bc09853
] 
[Safer X11 version dependency
Spencer Janssen <spencerjanssen at gmail.com>**20091216005916
 Ignore-this: 6dc805a8a0c7a3d3369bc1d6d97d4f56
] 
[Update Prompt for numlockMask changes
Spencer Janssen <spencerjanssen at gmail.com>**20091103222621
 Ignore-this: 4980e2fdf4c296a266590cc4acf76e1e
] 
[X.L.MouseResizableTile: change description for mirrored variant
Tomas Janousek <tomi at nomi.cz>**20091211124218
 Ignore-this: dbc02fb777e35cdc15fb11979c1e983e
 
 The description for mirrored MouseResizableTile is now "Mirror
 MouseResizableTile", to follow the standard of other layouts that can be
 mirrored using the Mirror modifier.
] 
[X.A.GridSelect: documentation typo fix
Tomas Janousek <tomi at nomi.cz>**20091211182515
 Ignore-this: 521bef2a73a9e969d7a96defb555177b
 
 spotted by Justin on IRC
] 
[A.GridSelect shouldn't grab keys if there are no choices.
Adam Vogt <vogt.adam at gmail.com>**20091210183038
 Ignore-this: 48509f780120014a10b32e7289369f32
 
 Thanks thermal2008 in #xmonad for bringing up the corner case when gridselect
 is run with an empty list of choices.
] 
[onScreen' variation for X () functions
Nils Schweinsberg <mail at n-sch.de>**20091209003717
 Ignore-this: 6a9644c729c2b60f94398260f3640e4d
] 
[Added Bluetile's config
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091209150309
 Ignore-this: 641ae527ca6f615e81822b6f38f827e7
] 
[BluetileCommands - a list of commands that Bluetile uses to communicate with its dock
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091208234431
 Ignore-this: 1a5a5e69c7c37d3ffe8d8e09496568de
] 
[Use lookup instead of find in A.PerWorkspaceKeys
Adam Vogt <vogt.adam at gmail.com>**20091129032650
 Ignore-this: 7ecb043df4317365ff3d25b17303eed8
] 
[Change of X.A.OnScreen, more simple and predictable behaviour of onScreen, new functions: toggle(Greedy)OnScreen
Nils Schweinsberg <mail at n-sch.de>**20091207155050
 Ignore-this: c375250778758e401217bcad83567d3b
] 
[Module to ensure that a dragged window always stays in front of all other windows
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129004506
 Ignore-this: a8a389198ccc28a66686561d4d17e91b
] 
[Decoration that allows to switch the position of windows by dragging them onto each other.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129003431
 Ignore-this: 38aff0f3beb1a1eb304219c4f3e85593
] 
[A decoration with small buttons and a supporting module
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091129002416
 Ignore-this: 2d65133bc5b9ad29bad7d06780bdaa4
] 
[XMonad.Actions.Search: finally fixed the internet archive search plugin
gwern0 at gmail.com**20091205033435
 Ignore-this: c78ecebced9bc8e39e6077ffa9f9f182
] 
[XMonad.Actions.Search: in retrospect, a bit silly to make everyone go through SSL
gwern0 at gmail.com**20091205033318
 Ignore-this: 452b4e6efb83935fc1063ab695ae074d
] 
[Prompt.hs: Corrected quit keybindings
Tim Horton <tmhorton at gmail.com>**20091203050041
 Ignore-this: e8cd2cd1d41f6807f68157ef37c631ea
] 
[Extended decoration module with more hooks and consolidated some existing ones
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091128234310
 Ignore-this: 5a23af3009ecca2feb9a84f8c6f8ac33
] 
[Extended decoration theme to contain extra static text that always appears in the title bar
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024213928
 Ignore-this: 95f46d6b9ff716a2d8002a426c1012c8
] 
[Extended paintAndWrite to allow for multiple strings to be written into the rectangle
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024205111
 Ignore-this: eb7d32284b7f98145038dcaa14f8075e
] 
[Added the alignment option 'AlignRightOffset'
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091024204513
 Ignore-this: 58cc00e1be669877e38a97e36b924969
] 
[Prevent windows from being decorated that are too small to contain decoration.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090627094316
 Ignore-this: 39b806462bbd424f1206b635e9d506e1
] 
[X.L.MouseResizableTile: keep draggers on the bottom of the window stack.
Tomas Janousek <tomi at nomi.cz>**20091126173413
 Ignore-this: 8089cf8ce53580090b045f4aebb1b899
] 
[Implemented smarter system of managing borders for BorderResize
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091122233651
 Ignore-this: 4775c082249e598a84c79b2e819f28b0
] 
[X.H.DynamicLog: fix xmonadPropLog double-encoding of UTF-8
Tomas Janousek <tomi at nomi.cz>**20091121004829
 Ignore-this: bde612bbd1a19951f9718a03e737c4ac
 
 dynamicLogString utf-8 encodes its output, xmonadPropLog shouldn't do that
 again.
] 
[X.H.DynamicLog: make documentation for 'dzen' and 'xmobar' slightly more clear
Brent Yorgey <byorgey at cis.upenn.edu>**20091121170739
 Ignore-this: c9a241677fda21ef93305fc3882f102e
] 
[X.H.ManageDocks: ignore struts that cover an entire screen on that screen
Tomas Janousek <tomi at nomi.cz>**20091119145043
 Ignore-this: ad7bbf10c49c9f3e938cdc3d8588e202
 
 Imagine a screen layout like this:
 
   11111111
   11111111
   11111111
    222222    <--- xmobar here
    222222
    222222
 
 When placing xmobar as indicated, the partial strut property indicates that an
 entire height of screen 1 is covered by the strut, as well as a few lines at
 the top of screen 2. The original code would create a screen rectangle of
 negative height and wreak havoc. This patch causes such strut to be ignored on
 the screen it covers entirely, resulting in the desired behaviour of a small
 strut at the top of screen 2.
 
 Please note that this semantics of _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL is
 different to what is in wm-spec. The "correct" thing to do would be to discard
 the covered portion of screen 1 leaving two narrow areas at the sides, but
 this new behaviour is probably more desirable in many cases, at least for
 xmonad/xmobar users.
 
 The correct solution of having separate _NET_WM_STRUT_PARTIAL for each
 Xinerama screen was mentioned in wm-spec maillist in 2007, but has never
 really been proposed, discussed and included in wm-spec. Hence this "hack".
] 
[Use imported 'fi' in PositionStoreHooks
Adam Vogt <vogt.adam at gmail.com>**20091119103112
 Ignore-this: 6563a3093083667c79aa491a6f59b805
] 
[Changed interface of X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091116171013
 Ignore-this: 9a830f9341e461628974890bab0bd65b
 
 Changed the interface of X.U.ExtensibleState to resemble that of
 Control.Monad.State and modified the modules that use it accordingly.
] 
[PositionStoreFloat - a floating layout with support hooks
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091115184833
 Ignore-this: 8b1d0fcef1465356d72cb5f1f32413b6
] 
[PositionStore utility to store information about position and size of a window
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091108195735
 Ignore-this: 2f6e68a490deb75cba5d007b30c93fb2
] 
[X.H.Urgencyhook fix minor doc bug
Anders Engstrom <ankaan at gmail.com>**20091115131121
 Ignore-this: 18b63bccedceb66c77b345a9300f1ac3
] 
[X.H.DynamicLog fix minor indentation oddness
Anders Engstrom <ankaan at gmail.com>**20091115130707
 Ignore-this: 7f2c49eae5527874ca4499767f4167c4
] 
[X.A.CycleWS cycle by tag group
Anders Engstrom <ankaan at gmail.com>**20091115130217
 Ignore-this: 909da8c00b47a31d04f59bd3751c60bc
 Allow grouping of workspaces, so that a user can cycle through those in the same group. Grouping is done by using a special character in the tag.
] 
[Use less short names in X.Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115025647
 Ignore-this: 1d27b8efc4d829a5642717c6f6426336
] 
[Use io instead of liftIO in Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115025301
 Ignore-this: cd4031b74cd5bb874cd2c3cc2cb087f2
] 
['io' and 'fi' are defined outside of Prompt
Adam Vogt <vogt.adam at gmail.com>**20091115024001
 Ignore-this: 3426056362db9cbfde7d2f4edbfe6f36
] 
[Use zipWithM_ instead of recursion in Prompt.printComplList
Adam Vogt <vogt.adam at gmail.com>**20091115023451
 Ignore-this: 2457500ed871ef120653a3d4ada13441
] 
[Minor style changes in DynamicWorkspaces
Adam Vogt <vogt.adam at gmail.com>**20091115022751
 Ignore-this: 1a6018ab134e4420a949354575a8a110
] 
[X.A.DynamicWorkspaces fix doc and add behaviour
Anders Engstrom <ankaan at gmail.com>**20091113233903
 Ignore-this: ab7c20a9c1b43ebc6a7f4700d988fb73
 Before this patch the documentation claims that it won't do anything on non-empty workspaces when it actually does. This patch fixes the documentation to reflect the actual behaviour, but also adds the behaviour promised by the documentation in other functions. It does not break configs. In addition it also provides functions to help removing empty workspaces when leaving them.
] 
[rework XMonad.Util.Dzen
daniel at wagner-home.com**20091114051509
 Ignore-this: 16d93f91c54f7d195b1a418e6c0351c5
] 
[generalize IO actions to MonadIO m => m actions
daniel at wagner-home.com**20091114023616
 Ignore-this: 2c801a27b0ffee34a2f0daca3778613a
 
 This should not cause any working configs to stop working, because IO is an instance of MonadIO, and because complete configs will pin down the type of the call to IO.  Note that XMonad.Config.Arossato is not a complete config, and so it needed some tweaks; with a main function, this should not be a problem.
] 
[fix documentation to match implementation
daniel at wagner-home.com**20091114021328
 Ignore-this: 6dbbb118b139f443c40a573445a48d07
] 
[Bypass more of stringToKeysym in U.Paste
Adam Vogt <vogt.adam at gmail.com>**20091114223726
 Ignore-this: 617c922647e9f49f5ecefa0eb1c65d3c
] 
[Don't erase floating information with H.InsertPosition (Issue 334)
Adam Vogt <vogt.adam at gmail.com>**20091113161402
 Ignore-this: de1c03eb860ea25b390ee5c756b02997
] 
[Rename gridselectViewWorkspace to gridselectWorkspace, add another example.
Adam Vogt <vogt.adam at gmail.com>**20091112211435
 Ignore-this: 462cf1c7f66ab97a1ce642977591a910
 
 The name should be more general to suggest uses other than just viewing other
 workspaces.
] 
[X.A.DynamicWorkspaces: fix addWorkspace and friends so they never add another copy of an existing workspace
Brent Yorgey <byorgey at cis.upenn.edu>**20091112201351
 Ignore-this: 5bfe8129707b038ed04383b7566b2323
] 
[Trim whitespace in H.FloatNext
Adam Vogt <vogt.adam at gmail.com>**20091111022702
 Ignore-this: 1ad52678246fa1ac951169c2356ce10b
] 
[Use ExtensibleState in H.FloatNext
Adam Vogt <vogt.adam at gmail.com>**20091111022513
 Ignore-this: 760d95a685af080466cb4164d1096423
] 
[Make a haddock link direct in C.Desktop.
Adam Vogt <vogt.adam at gmail.com>**20091111013810
 Ignore-this: da724a7974c3de60f49996c1fe92d3fb
] 
[Change A.TopicSpace haddocks to use block quotes.
Adam Vogt <vogt.adam at gmail.com>**20091111013241
 Ignore-this: 6f7f43d2715cfde62b9c05c7d9a0da2
] 
[Add defaultTopicConfig, to allow adding more fields to TopicSpace later.
Adam Vogt <vogt.adam at gmail.com>**20091111012915
 Ignore-this: 6dad95769651a9a1ef8d771f81c91f8e
] 
[X.A.WindowGo: fix haddock markup
Spencer Janssen <spencerjanssen at gmail.com>**20091111003256
 Ignore-this: c6a06de900ca8b67498abf5152e3d9ea
] 
[Minor style corrections in X.U.SpawnOnce
Daniel Schoepe <daniel.schoepe at gmail.com>**20091109201543
 Ignore-this: 1264852c23b4f84b2580bf4567529c68
] 
[Add gridselectViewWorkspace in X.A.GridSelect
Daniel Schoepe <daniel.schoepe at gmail.com>**20091109155815
 Ignore-this: 5543211e9e3fd325cb798b004635a525
] 
[minor-doc-fix-in-ManageHelpers
`Henrique Abreu <hgabreu at gmail.com>'**20091104172727
 Ignore-this: 231ad417541bc3c17a1cb2dff139d55d
] 
[Set buffering to LineBuffering in scripts/xmonadpropread.hs
Daniel Schoepe <daniel.schoepe at gmail.com>**20091108204106
 Ignore-this: 4e593fc1461fbbfb5b147c7c7702584e
 
 (Required for the script to work properly with tools like dzen)
] 
[X.U.ExtensibleState: style
Spencer Janssen <spencerjanssen at gmail.com>**20091108182858
 Ignore-this: f189da75ad2c57ae9cca48eaf69a6bad
] 
[X.A.DynamicWorkspaces: new 'addWorkspacePrompt' method
Brent Yorgey <byorgey at cis.upenn.edu>**20091108170503
 Ignore-this: a3992b1b7938be80d8fd2a5a503a4042
] 
[Remove defaulting when using NoMonomorphismRestriction in H.EwmhDesktops
Adam Vogt <vogt.adam at gmail.com>**20091107195255
 Ignore-this: ca3939842639c94ca4fd1ff6624319c1
] 
[Update A.TopicSpace to use extensible state. No config changes required.
Adam Vogt <vogt.adam at gmail.com>**20091107194502
 Ignore-this: 7a82aad512bb727b3447de0faa4a210f
] 
[Inline tupadd function in A.GridSelect
Adam Vogt <vogt.adam at gmail.com>**20091101190312
 Ignore-this: 458968154303ab865c304f387d6ac83b
] 
[Alphabetize exposed-modules
Spencer Janssen <spencerjanssen at gmail.com>**20091107174946
 Ignore-this: 919684aea7747a756b303f9b34a2870b
] 
[Use X.U.SpawnOnce in my config
Spencer Janssen <spencerjanssen at gmail.com>**20091107174615
 Ignore-this: fe8f5f75136128280942771ec429f09a
] 
[Add XMonad.Util.SpawnOnce
Spencer Janssen <spencerjanssen at gmail.com>**20091107173820
 Ignore-this: 8d4657bbaa8dbeb1d0f9d22293bfef19
] 
[Store deserialized data after reading in X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091107103832
 Ignore-this: 192beca56e9437292bd3f16451ae9e66
] 
[Fixed conflict between X.U.ExtensibleState and X.C.Sjanssen
Daniel Schoepe <daniel.schoepe at gmail.com>**20091107103619
 Ignore-this: 80f4bb218574d7c528af17473c6e4f66
] 
[Use X.U.ExtensibleState instead of IORefs
Daniel Schoepe <daniel.schoepe at gmail.com>**20091106115601
 Ignore-this: e0e80e31e51dfe76f2b2ed597892cbba
   
 This patch changes SpawnOn, DynamicHooks and UrgencyHooks to
 use X.U.ExtensibleState instead of IORefs. This simplifies the
 usage of those modules thus also breaking current configs.
] 
[Add X.U.ExtensibleState
Daniel Schoepe <daniel.schoepe at gmail.com>**20091106115336
 Ignore-this: d80d9d0c10a53fb71a375e432bd29344
] 
[My config uses xmonadPropLog now
Spencer Janssen <spencerjanssen at gmail.com>**20091107005230
 Ignore-this: 8f16b8bea86dfcd3739f1566f5897578
] 
[Add xmonadpropread script
Spencer Janssen <spencerjanssen at gmail.com>**20091107004858
 Ignore-this: 8cc7ed36ec1126d0139638148f9642e8
] 
[Add experimental xmonadPropLog function
Spencer Janssen <spencerjanssen at gmail.com>**20091107004624
 Ignore-this: f09b2c11b16a3af993b63d1b39566120
] 
[XMonad.Actions.Search: imdb search URL tweak for bug #33
gwern0 at gmail.com**20091103222330
 Ignore-this: bae5e6d3ec6c4b6591016ece9dffb202
] 
[Clean imports for L.BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20091103140649
 Ignore-this: 56946a652329390dbdd63746ca23ee8e
] 
[I maintain L.BoringWindows
Adam Vogt <vogt.adam at gmail.com>**20091103140509
 Ignore-this: de853972b4c1c4cefa2dc29e68828d5d
] 
[fix window rectangle calculation in X.A.UpdatePointer
Tomas Janousek <tomi at nomi.cz>**20091026154918
 Ignore-this: ad0c3a020b802854919c7827faa001ad
] 
[Implement hasProperty in terms of runQuery in U.WindowProperties
Adam Vogt <vogt.adam at gmail.com>**20091031154945
 Ignore-this: 1c351bc436e0e323dc25d8f5ff734dcb
 
 This addresses issue 302 for unicode titles by actually using the complicated
 XMonad.ManageHook.title code, instead of reimplementing it with stringProperty
 (which doesn't appear to handle unicode).
] 
[Add functions to access the current input in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20091030235033
 Ignore-this: 3f568c1266d85dcaa5722b19bbbd61dd
] 
[Remove putSelection, fixes #317
Spencer Janssen <spencerjanssen at gmail.com>**20091030224354
 Ignore-this: 6cfd6d92e1d133bc9e3cbb7c8339f735
] 
[Fix typo in H.FadeInactive documentation
Adam Vogt <vogt.adam at gmail.com>**20091029165736
 Ignore-this: b2af487cd382416160d5540b7f210464
] 
[X.L.MultiCol constructor 0 NWin bugfig
Anders Engstrom <ankaan at gmail.com>**20091029105633
 Ignore-this: e6a24f581593424461a8675984d14d25
 Fix bug where the constructor did not accept catch-all columns. Also some minor cleaning.
] 
[X.H.ManageHelpers: added currentWs that returns the current workspace
Ismael Carnales <icarnales at gmail.com>**20091028193519
 Ignore-this: dcd3dac6bd741d26747807691f125637
] 
[X.L.MultiColumns bugfix and formating
Anders Engstrom <ankaan at gmail.com>**20091027131741
 Ignore-this: 6978f485d18adb8bf81cf6c8e0d0332
 Fix bug where a column list of insufficient length could be used to find the column of the window. Also fix formating to conform better with standards.
] 
[X.L.MultiColumns NWin shrinkning fix
Anders Engstrom <ankaan at gmail.com>**20091027005932
 Ignore-this: 9ba40ee14ec12c3885173817eac2b564
 Fixed a bug where the list containing the number of windows in each column was allowed the shrink if a column was unused.
] 
[New Layout X.L.MultiColumns
Anders Engstrom <ankaan at gmail.com>**20091024175155
 Ignore-this: a2d3d2eee52c28eab7d125f6b621cada
 New layout inspired the realization that I was switching between Mirror Tall and Mirror ThreeCol depending on how many windows there were on the workspace. This layout will make those changes automatically.
] 
[Changing behaviour of ppUrgent with X.H.DynamicLog
mail at n-sch.de**20090910010411
 Ignore-this: 3882f36d5c49e53628485c1570bf136a
 
 Currently, the ppUrgent method is an addition to the ppHidden method.
 This doesn't make any sense since it is in fact possible to get urgent
 windows on the current and visible screens. So I've raised the ppUrgent
 printer to be above ppCurrent/ppVisible and dropped its dependency on
 ppHidden.
 
 In addition to that this makes it a lot more easier to define a more
 custom ppUrgent printer, since you don't have to "undo" the ppHidden
 printer anymore. This also basicly removes the need for dzenStrip,
 although I just changed the description.
 
 -- McManiaC / Nils
 
] 
[fix X.U.Run.spawnPipe fd leak
Tomas Janousek <tomi at nomi.cz>**20091025210246
 Ignore-this: 24375912d505963fafc917a63d0e79a0
] 
[TAG 0.9
Spencer Janssen <spencerjanssen at gmail.com>**20091026013449
 Ignore-this: 542b6105d6deed65e12d1f91c666b0b2
] 
Patch bundle hash:
77cdd20a30613bdf42ff776ced87b005293de813


More information about the xmonad mailing list