[xmonad] darcs patches for tiled hinted mplayer with fullscreen working

Tomáš Janoušek tomi at nomi.cz
Wed Jun 15 17:10:29 CEST 2011


Hello Adam,

Sorry for the delay, I was very lazy the last few months. But it's getting
better and I'm attaching a patch. :-)

On Fri, Nov 05, 2010 at 07:06:59PM -0400, Adam Vogt wrote:
> * On Thursday, November 04 2010, Tomáš Janoušek wrote:
> 
> >Sadly, after using that patch for some time, I found that it slows down xmonad
> >considerably, as rxvt-unicode updates size hints several times on every size
> >change (for no reason at all, the hints stay the same). I solved that issue by
> >adding
> >    whenX (runQuery (className =? "MPlayer") w) $ refresh
> > [...]
> 
> Using XMonad.Util.PositionStore may be better: if the hints change, but
> the current shape satisfies them, I think it's reasonable not to
> refresh.

It turns out that we don't need to store anything. It suffices to check
whether current window size satisfies current hints. The attached patch does
just that. It works for me and it isn't slowing down anything, it seems.

Regards,
-- 
Tomáš Janoušek, a.k.a. Liskni_si, http://work.lisk.in/
-------------- next part --------------
1 patch for repository http://code.haskell.org/XMonadContrib:

Wed Jun 15 17:03:33 CEST 2011  Tomas Janousek <tomi at nomi.cz>
  * X.L.LayoutHints: refresh only if hints are not satisfied

New patches:

[X.L.LayoutHints: refresh only if hints are not satisfied
Tomas Janousek <tomi at nomi.cz>**20110615150333
 Ignore-this: e081f5fbd6a721e260212548d830ff6b
] {
hunk ./XMonad/Layout/LayoutHints.hs 28
 
 import XMonad(LayoutClass(runLayout), mkAdjust, Window,
               Dimension, Position, Rectangle(Rectangle), D,
-              X, refresh, Event(..), propertyNotify, wM_NORMAL_HINTS)
+              X, refresh, Event(..), propertyNotify, wM_NORMAL_HINTS,
+              (<&&>), io, applySizeHints, whenX, isClient, withDisplay,
+              getWindowAttributes, getWMNormalHints, WindowAttributes(..))
 import qualified XMonad.StackSet as W
 
 import XMonad.Layout.Decoration(isInStack)
hunk ./XMonad/Layout/LayoutHints.hs 254
 
 -- | Event hook that refreshes the layout whenever a window changes its hints.
 hintsEventHook :: Event -> X All
-hintsEventHook (PropertyEvent { ev_event_type = t, ev_atom = a })
+hintsEventHook (PropertyEvent { ev_event_type = t, ev_atom = a, ev_window = w })
     | t == propertyNotify && a == wM_NORMAL_HINTS = do
hunk ./XMonad/Layout/LayoutHints.hs 256
-        refresh
+        whenX (isClient w <&&> hintsMismatch w) $ refresh
         return (All True)
 hintsEventHook _ = return (All True)
hunk ./XMonad/Layout/LayoutHints.hs 259
+
+-- | True if the window's current size does not satisfy its size hints.
+hintsMismatch :: Window -> X Bool
+hintsMismatch w = withDisplay $ \d -> io $ do
+    wa <- getWindowAttributes d w
+    sh <- getWMNormalHints d w
+    let dim = (fromIntegral $ wa_width wa, fromIntegral $ wa_height wa)
+    return $ dim /= applySizeHints 0 sh dim
}

Context:

[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
] 
[Cleanup in X.L.LayoutBuilderP.
Ilya Portnov <portnov84 at rambler.ru>**20110514132232
 Ignore-this: 59d9ce37218424e1bc225a42d71982ab
 Remove unused datatype declaration and export usefull typeclass.
] 
[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.
] 
[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.
] 
[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.
] 
[Compile with ghc7
Mats Rauhala <mats.rauhala at gmail.com>**20110504192455
 Ignore-this: 218d2e19835f1e4315c01bd6214899ce
] 
[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
] 
[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
] 
[X.H.ManageDocks: event hook to refresh on new docks
Tomas Janousek <tomi at nomi.cz>**20100706185834
 Ignore-this: 96f931aa19c45acd28bdc2319c6a0cb6
] 
[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
] 
[Remove unnecessary imports.
Adam Vogt <vogt.adam at gmail.com>**20100416160239
 Ignore-this: 11beb14b87e294dafb54cc3764393c5b
] 
[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)
] 
[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
] 
[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
] 
[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.
] 
[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'.
] 
[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
] 
[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
] 
[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
] 
[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.
] 
[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.)
] 
[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.A.GridSelect: documentation typo fix
Tomas Janousek <tomi at nomi.cz>**20091211182515
 Ignore-this: 521bef2a73a9e969d7a96defb555177b
 
 spotted by Justin on IRC
] 
[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.
] 
[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: make documentation for 'dzen' and 'xmobar' slightly more clear
Brent Yorgey <byorgey at cis.upenn.edu>**20091121170739
 Ignore-this: c9a241677fda21ef93305fc3882f102e
] 
[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.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
] 
[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
 
] 
[TAG 0.9
Spencer Janssen <spencerjanssen at gmail.com>**20091026013449
 Ignore-this: 542b6105d6deed65e12d1f91c666b0b2
] 
[Bump version to 0.9
Spencer Janssen <spencerjanssen at gmail.com>**20091026004850
 Ignore-this: e9d2eee4ec5df8f52bf8f593ff0d2605
] 
[fix window rectangle calculation in X.A.UpdatePointer
Tomas Janousek <tomi at nomi.cz>**20091026154918
 Ignore-this: ad0c3a020b802854919c7827faa001ad
] 
[fix X.U.Run.spawnPipe fd leak
Tomas Janousek <tomi at nomi.cz>**20091025210246
 Ignore-this: 24375912d505963fafc917a63d0e79a0
] 
[README Update to point to wiki changelog, prettify
Wirt Wolff <wirtwolff at gmail.com>**20091024203550
 Ignore-this: 8a0a1824e67c5b2dbbb23e5061d01ece
] 
[Doc namespace minor updates
Wirt Wolff <wirtwolff at gmail.com>**20091023184905
 Ignore-this: b3fd7de477f0a9ba6af1d8c78eb47754
 Most signifigant changes are use unversioned links to external html,
 fix a couple of key binding examples, and double quotes that should
 have been single.
] 
[Docs: use myLayout like template rather than plural
Wirt Wolff <wirtwolff at gmail.com>**20091023042651
 Ignore-this: 8f1814c42e90e18af636a14751ae2f58
 Despite myLayouts currently being more popular in examples, make
 them all myLayout as in man/xmonad.hs to avoid mixing them in the
 same module as was done a few places, leading to confusion for some users.
] 
[Use 'ewmh' in relevant configs
Spencer Janssen <spencerjanssen at gmail.com>**20091023035043
 Ignore-this: 7cac9c6c3795a3fb60899db29cc65d08
] 
[Add ewmh function to set all EWMH settings in one step
Spencer Janssen <spencerjanssen at gmail.com>**20091023034630
 Ignore-this: 4d79c1e156f56882036ce43e70cce6f2
] 
[Refer to modm as the current modMask
Adam Vogt <vogt.adam at gmail.com>**20091022041126
 Ignore-this: d097c7dc1746c55e1d4078a7148f9d5a
 
 This makes the config suggestions consistent with the current template.
] 
[Resolve conflicts between Justin Bogner's C.Desktop patch and latest head.
Daniel Schoepe <daniel.schoepe at gmail.com>**20091022115849
 Ignore-this: ba805e9889d6bda5ea873e3537b0111f
] 
[Move EWMH support initialization to a startupHook
Justin Bogner <mail at justinbogner.com>**20091011053538
 Ignore-this: bd35654d0afb0a2fec73b16ab7ac38b1
 
 Set EWMH support atoms and the window manager name in a startup hook,
 rather than in the log hook: the log hook occurs far too frequently
 for it to make sense to set constants with it.
] 
[C.Desktop fix bad escaping and typo
Wirt Wolff <wirtwolff at gmail.com>**20091022100156
 Ignore-this: 70b51a2d8b4443fa364414630ed074c0
] 
[C.Desktop doc explaining common desktop config customizations
Wirt Wolff <wirtwolff at gmail.com>**20091022042748
 Ignore-this: 83d1f026ae4f4b7f5796269b51e98349
 To close http://code.google.com/p/xmonad/issues/detail?id=174
] 
[Clean keymask in GridSelect(solves issue 318)
Daniel Schoepe <daniel.schoepe at gmail.com>**20091021223404
 Ignore-this: 2c315539bf1ae8c427b7856b5fdb2e49
] 
[Share one StdGen between RGB channels in A.RandomBackground
Adam Vogt <vogt.adam at gmail.com>**20091020165924
 Ignore-this: 15eef05c9a73d578f5513550757bb8bb
] 
[Document A.RandomBackground
Adam Vogt <vogt.adam at gmail.com>**20091020165205
 Ignore-this: cb6fb4567abde474fd975a25dca5adc2
] 
[Bump X11 dependency to 1.4.6.1, to access cursor definitions.
Adam Vogt <vogt.adam at gmail.com>**20091020161914
 Ignore-this: 60728999fe041302379326494df30921
] 
[C.Gnome combine with instead of replace Desktop startupHook
Wirt Wolff <wirtwolff at gmail.com>**20091020092010
 Ignore-this: 99af07c4d36a575570935a0421a0e241
 Now that C.Desktop sets startupHook do both rather than only
 gnomeRegister.
] 
[Remove H.SetCursor: U.Cursor is preferred
Adam Vogt <vogt.adam at gmail.com>**20091019235722
 Ignore-this: 5796fe86879c2ce02ef12150e0a8603a
] 
[Add some haddock formatting in U.Cursor
Adam Vogt <vogt.adam at gmail.com>**20091019233036
 Ignore-this: 744c36a128b403980e3bc62c9e99d432
] 
[XMonadContrib: set the default cursor to left_ptr for the Desktop config
Andres Salomon <dilinger at collabora.co.uk>**20090915165753
 Ignore-this: a4f7417c8a4190a0cabdadbd359e217
] 
[XMonadContrib: add a utility module to set the default cursor
Andres Salomon <dilinger at collabora.co.uk>**20090915165604
 Ignore-this: b0559b7b2617db90506492aa1479cde
 
 This adds XMonad.Util.Cursor, which defines a function that allows setting
 the default mouse cursor.  This can be useful for (for example) gnomeConfig,
 to ensure that the root cursor is changed from X_cursor to left_ptr.
 
] 
[More docs formatting in A.GridSelect
Adam Vogt <vogt.adam at gmail.com>**20091016203132
 Ignore-this: a0a489c2b65fa2d755b4aca544c3d73a
] 
[In A.GridSelect correct haddocks
Adam Vogt <vogt.adam at gmail.com>**20091016171159
 Ignore-this: f7f714c42544d9230eb9c9bec86cd36a
] 
[Describe parameters to subLayouts more
Adam Vogt <vogt.adam at gmail.com>**20091016164937
 Ignore-this: d09f236cb17adf7a9092f1b0e646def3
] 
[Refer to modMask as modm in L.SubLayouts sample keybinds
Adam Vogt <vogt.adam at gmail.com>**20091016164737
 Ignore-this: 3a8366f7d8f337be750b4db61a454991
] 
[Format L.SubLayout TODO
Adam Vogt <vogt.adam at gmail.com>**20091016155837
 Ignore-this: 4dfa10aa2f7087658b6a93299f75310
] 
[Add more links in L.SubLayout documentation
Adam Vogt <vogt.adam at gmail.com>**20091016155518
 Ignore-this: 70347cc0bcf4966e6c07f45740882087
] 
[Link a screenshot in L.SubLayouts from the haskellwiki
Adam Vogt <vogt.adam at gmail.com>**20091016150539
 Ignore-this: c58b64c5c5f28f4d71c9e8498965ca9e
] 
[Added focusMaster to BoringWindows
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091015233518
 Ignore-this: 7f99337fc63cdc7c861fdc3c2ab2d3d1
] 
[Remove NamedFieldPuns from L.LimitWindows
Adam Vogt <vogt.adam at gmail.com>**20091015010123
 Ignore-this: 228ca5b5ac067876c3b2809fc03b6016
 
 This is more ugly, but otherwise we have lots of trouble for ghc-6.8
 compatibility (due to the recomended flag having changed)
] 
[added prop_select_two_consec to test_Selective.hs
Max Rabkin <max.rabkin at gmail.com>**20091001155853
 Ignore-this: 80e2b5d8658dc053c66993be970e6247
] 
[Note L.Minimize in L.LimitWindows haddocks.
Adam Vogt <vogt.adam at gmail.com>**20091014205326
 Ignore-this: 83a809d2467a286e0c1a133be947add9
] 
[Move limitSelect into L.LimitWindows
Max Rabkin <max.rabkin at gmail.com>**20091014202213
 Ignore-this: 51d6e9da4a6a4f683cd145371e90be17
] 
[added haddocks for L.Selective
Max Rabkin <max.rabkin at gmail.com>**20091002112720
 Ignore-this: d29016f1261d0176634bb040fcc1836a
] 
[Support IncMasterN in Selective
Max Rabkin <max.rabkin at gmail.com>**20090929173346
 Ignore-this: 3fd288d0062905177c06006ea4066f6d
] 
[removed commented-out code
Max Rabkin <max.rabkin at gmail.com>**20090929163509
 Ignore-this: 776b1566626660b639f8933980f5a3a1
] 
[Test that update preserves invariants of Selection
Max Rabkin <max.rabkin at gmail.com>**20090929163139
 Ignore-this: 340b2a1465b9fc98cdc386b511ce26bb
] 
[move updateSel from test_Selective into Selective
Max Rabkin <max.rabkin at gmail.com>**20090929160420
 Ignore-this: 6636f2f2d5aa15a6d0ef6d45ee38aa42
] 
[Add "Selective" layout modifier
Max Rabkin <max.rabkin at gmail.com>**20090929160207
 Ignore-this: ded23208563ca8c8d411916d01351132
] 
[Filter extra modifier bits some layouts set in XMonad.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20091012132814
 Ignore-this: c0898809766061700c11f6da84c74bed
] 
[Cleanup L.BorderResize
Adam Vogt <vogt.adam at gmail.com>**20091012055532
 Ignore-this: 7d369ed3050543a5c30a64991b7bf6f5
] 
[Layout modifier to resize windows by dragging their borders with the mouse
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091011222214
 Ignore-this: 5cf197ea14b7c502fa13a16773215762
] 
[Add U.Replace which implements a --replace behavior.
Adam Vogt <vogt.adam at gmail.com>**20091012052306
 Ignore-this: bd519abe3250a01507f225a29c08048a
] 
[Update D.Extending module lists with help of a script (also added)
Adam Vogt <vogt.adam at gmail.com>**20091012044918
 Ignore-this: c280d3047355be962e8ef706d598aa43
] 
[Correct erroneous haddock link in U.XSelection
Adam Vogt <vogt.adam at gmail.com>**20091012043133
 Ignore-this: e5c905104741d14dbb411272c37e0e29
] 
[Make L.Mosaic explicit imports compatible with haskell-src-exts
Adam Vogt <vogt.adam at gmail.com>**20091012042859
 Ignore-this: 85ca9ff7fc924e6291edb05f4a1de77c
] 
[Put screenshots inline for L.ThreeColumns and L.Roledex
Adam Vogt <vogt.adam at gmail.com>**20091012042651
 Ignore-this: df314db757ad09bb7185c16cca8649d3
] 
[Use LANGUAGE pragma instead of -fglasgow-exts in L.Minimize
Adam Vogt <vogt.adam at gmail.com>**20091012042457
 Ignore-this: cbb454ab573b1e1f931d79c322fa1303
] 
[Add a description to L.LayoutScreens
Adam Vogt <vogt.adam at gmail.com>**20091012042231
 Ignore-this: beceb2f65206079fae6421c5df0fb439
] 
[Add Portability and Stability boilerplate for a couple modules.
Adam Vogt <vogt.adam at gmail.com>**20091012041055
 Ignore-this: 7d875c5e47535a11e26f9a604a01fe88
 
 Needed for automating the generation of the Doc.Extending module summaries.
] 
[Correct hyperlink in A.DeManage
Adam Vogt <vogt.adam at gmail.com>**20091012040340
 Ignore-this: db08eba0253f94e5ce9cbcf3632b387a
] 
[NoFrillsDecoration - most basic version of decoration for windows
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091011220512
 Ignore-this: accda53da08f37d6b4091d1c6e17e2c1
] 
[Split A.TopicSpace documentation into sections
Adam Vogt <vogt.adam at gmail.com>**20091012004730
 Ignore-this: 312066f68e7051a8ee89cbbec40ce2a0
] 
[Use hyperlinks in WorkspaceCursors documentation.
Adam Vogt <vogt.adam at gmail.com>**20091008032047
 Ignore-this: d698d86d01d9a69652fa3aa732873299
] 
[Minor haddock formatting correction in L.Tabbed
Adam Vogt <vogt.adam at gmail.com>**20091008024839
 Ignore-this: 8084aebbae198eda3d455ab541e94169
] 
[Hyperlink the reference to ResizableTile in MouseResizableTile
Adam Vogt <vogt.adam at gmail.com>**20091005175303
 Ignore-this: 8d98176fd0b78ef3565a6f9556e220b8
] 
[Finish a sentence in H.ManageDocks haddocks.
Adam Vogt <vogt.adam at gmail.com>**20091005165312
 Ignore-this: 43f4ffc627b3db204d74ed361ef939cf
] 
[Add a SetStruts message to H.ManageDocks.
Adam Vogt <vogt.adam at gmail.com>**20091005164221
 Ignore-this: 98a76bb48b8a569b459cadc4e6412c06
 
 This patch also uses Data.Set instead of [] for the AvoidStruts
 constructor to simplify the SetStruts implementation.
] 
[Derive Enum for U.Types.Direction2D
Adam Vogt <vogt.adam at gmail.com>**20091005163132
 Ignore-this: 258e35a6f23f46039b9a8ee45187cdff
] 
[Rearrange the GSCONFIG class in A.Gridselect
Adam Vogt <vogt.adam at gmail.com>**20091005023227
 Ignore-this: 875080c8beabb81e19de44f7e60ca19d
] 
[Add a GSCONFIG class to overload defaultGSConfig.
Adam Vogt <vogt.adam at gmail.com>**20091003193804
 Ignore-this: 220a13bf1ee145b18f28c66e32c79266
 
 This uses -XOverlappingInstances to provide a fallback instance which uses the
 focusedBorderColor and normalBorderColor, but that part is optional.
 
 User's configs should use -XNoMonomorphismRestriction if they want to avoid
 writing a type signature for myGSConfig.
 
 Also, type variables become ambiguous in expressions like:
 
 > myGSConfig = defaultGSConfig { gs_navigate = neiu `M.union` gs_navigate defaultGSConfig }
 >     where neiu = M.map (\(x,y) (a,b) -> (x+a,y+b)) $ M.fromList
 >             [((0,xK_n),(-1,0)) ,((0,xK_e),(0,1)) ,((0,xK_i),(1,0)) ,((0,xK_u),(0,-1))]
 
 But that can be resolved with the appropriate (`asTypeOf`myGSConfig) applied to
 the second defaultGSConfig, or the use of some other method for modifying
 existing fields.
] 
[Add a screenshots section in the A.GridSelect haddocks
Adam Vogt <vogt.adam at gmail.com>**20091004160816
 Ignore-this: be358c0173df3d02b45526c134604f4e
] 
[Fixed guard in WorkspaceByPos - condition got switched during transformation
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091004085232
 Ignore-this: 6685ef8ddff55c7758c2b77cfc65cbba
] 
[A.CycleWindows update docs, use lib fn second instead of custom lambda
Wirt Wolff <wirtwolff at gmail.com>**20090926154700
 Ignore-this: 7ec0d6a46d4a6255870b1e9c4a25c1bb
] 
[Group functions in GridSelect haddock, add an inline screenshot.
Adam Vogt <vogt.adam at gmail.com>**20091003181927
 Ignore-this: 3c6f1c5aff4fe197aa965cbda23e1be7
] 
[minor hlint cleanup of Prompt and XMonad.Prompt.* sub-modules
sean.escriva at gmail.com**20090928204443
 Ignore-this: 25e71f59bdcc5bf94c2d6f476833216b
] 
[New module : X.H.SetCursor
mail at n-sch.de**20090915101327
 Ignore-this: 2f0641155ada05dae955cd6941d52b70
 Idea from Andres Salomon
 (http://www.haskell.org/pipermail/xmonad/2009-September/008553.html).
] 
[Hyperlink modules named in WindowMenu, RestoreMinimized, and Minimize
Adam Vogt <vogt.adam at gmail.com>**20091003151325
 Ignore-this: 5eb1496fd258fa0c43fb0a58136ccfff
] 
[Mention X.L.Maximize and X.L.Minimize in WindowMenu documentation
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20091003111330
 Ignore-this: 3a00a896509aa8646ae718005d7a1fc1
] 
[Small style change in L.SimplestFloat
Adam Vogt <vogt.adam at gmail.com>**20091002001552
 Ignore-this: d8be5d01d47833c70d220e0f1555c42f
] 
[Use U.XUtils.fi to make WindowMenu clearer
Adam Vogt <vogt.adam at gmail.com>**20091001225736
 Ignore-this: 63e73cd7c5de22b3e30e63c1e588e403
] 
[Extended GridSelect
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090930152741
 Ignore-this: 2999d891387e4db9746061b1a42264a4
 1) Added another convenience wrapper that allows to select an X() action
    from a given list.
 2) Implemented the option to change the position of the selection diamond.
 (Re-recorded from Bluetile repo, rebased to current darcs)
] 
[WindowMenu based on GridSelect that displays actions for the focused window (re-recorded from Bluetile repo).
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090930155343
 Ignore-this: b12a06c0321f3e9689ab8109a1fac0ac
] 
[Use default handler in XMonad.Prompt.eventLoop
Daniel Schoepe <daniel.schoepe at gmail.com>**20091001180402
 Ignore-this: 10c9c856aec515d57f0f0a42bc727f1
] 
[Remove redundant parentheses from L.MouseResizableTile
Adam Vogt <vogt.adam at gmail.com>**20090930212110
 Ignore-this: 1853cde69ec03ce5b88726b4de05f2b0
] 
[Use ErrorT instead of nested case for H.WorkspaceByPos
Adam Vogt <vogt.adam at gmail.com>**20090930204914
 Ignore-this: c3f96fbbf0ce917c4962b297dea3b174
] 
[Note that ManageDocks is preferred to A.DeManage
Adam Vogt <vogt.adam at gmail.com>**20090930204443
 Ignore-this: dcb9e069a65980f83941ca58607a6ce5
] 
[Factor out redundancy in L.MouseResizableTile.handleResize
Adam Vogt <vogt.adam at gmail.com>**20090930204151
 Ignore-this: 77d8e635a06237b220f427fa64045a3a
] 
[In a multi-head setup, move windows with a non-zero position upon creation to the right workspace.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090930123341
 Ignore-this: 4efdb9d64f33d70c48fb3797b635513e
 Useful in a dual-head setup: Looks at the requested geometry of
 new windows and moves them to the workspace of the non-focused
 screen if necessary.
] 
[Use LANGUAGE instead of -fglasgow-exts in L.MouseResizableTile
Adam Vogt <vogt.adam at gmail.com>**20090930200443
 Ignore-this: 861364005402c2c34a20495dd2bb81f8
] 
[Remove redundant ($) in A.Commands
Adam Vogt <vogt.adam at gmail.com>**20090930200311
 Ignore-this: 63084d42007481b0e0ca5fd99d3ba083
] 
[Fix haddock parse error in MouseResizableTile
Adam Vogt <vogt.adam at gmail.com>**20090930200143
 Ignore-this: 34d9bbabcf48424121387e87931bf973
] 
[A ResizableTile-like layout that can be resized using the mouse.
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090930121105
 Ignore-this: 8941ecfb0e5653663db29e9f195e23f2
 All separations between windows can be dragged to modify the layout.
 Keyboard commands can also be used to achieve the same effect.
] 
[Replaced more stuff in X.L.Maximize with pure versions
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090516233557
 Ignore-this: ffafa9ce65efb2639a147493fb49c7e1
] 
[Expanded on X.L.Maximize functionality
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090503001052
 Ignore-this: b0d765b3bf6fc1e72cedebfd564236fc
 1. Move maximized window into the background when it's not focused.
 2. Changed semantics so that maximizing a different window will
    automatically restore the currently maximized window and maximize the
    new one (previously this had to be done in two seperate steps).
] 
[EventHook to restore minimized windows from taskbar (re-recorded from Bluetile repo)
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090928231549
 Ignore-this: 673b003c4e07b591046ed01e5f27a7ec
] 
[LayoutModifier to minimize windows (re-recorded from Bluetile repo)
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090928231320
 Ignore-this: 45830f2bf3bb8473c569582593844253
] 
[Correctly check completionKey field in XMonad.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20090928093215
 Ignore-this: 99e68a63fe156650cc8e96d31e6d1f5a
] 
[Fix for issue 315
Daniel Schoepe <daniel.schoepe at gmail.com>**20090928091946
 Ignore-this: 7de748d6cbd143b073451ba92ecec659
] 
[Only use search history for completion in X.A.Search
Daniel Schoepe <daniel.schoepe at gmail.com>**20090920221455
 Ignore-this: 807fcd4fa14a25ecc9787940f9950736
] 
[Fix regression in XMonad.Prompt's completion
Daniel Schoepe <daniel.schoepe at gmail.com>**20090920205711
 Ignore-this: 3c0e5a1f843be1981ecc3d40d43530d1
] 
[Clean keymask before use in XMonad.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20090920201229
 Ignore-this: 80903452f15352aef025b9979793fb8a
] 
[Export moveCursor in XMonad.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20090920192513
 Ignore-this: 7732b0444b26cd653190bb3a6e69346c
] 
[U.EZConfig: Correct additionalKeysP M2-M5 values
Wirt Wolff <wirtwolff at gmail.com>**20090906070503
 Ignore-this: 938c9739a8e00c07195890938e7c12fc
 Was 8,9,10,11,12 rather than needed 8,16,32,64,128
] 
[Factor out direction types and put them in X.U.Types
Daniel Schoepe <daniel.schoepe at gmail.com>**20090919191717
 Ignore-this: b2255ec2754fcdf797b1ce2c082642ba
 
 This patch factors out commonly used direction types like
 data Direction = Prev | Next
 and moves them to X.U.Types.
] 
[Add function to disable focusFollowsMouse conditionally
Daniel Schoepe <daniel.schoepe at gmail.com>**20090829212916
 Ignore-this: de73003672f76d955fe4476ca279cded
 
 This patch adds an event hook to have the focus follow the mouse only
 if a given condition is true.
] 
[Make the keymap of XMonad.Prompt customizable
Daniel Schoepe <daniel.schoepe at gmail.com>**20090910160828
 Ignore-this: 37c04043518d7e4e06b821b3438cbe03
 
 This patch allows the user to change the keymap XMonad.Prompt and
 related modules use to be customized using the XPConfig structure.
] 
[Run gnomeRegister from startupHook
Spencer Janssen <spencerjanssen at gmail.com>**20090918023410
 Ignore-this: 419959a33840264674d2c8034882b689
] 
[Use U.Run.safeSpawn in C.Gnome
Adam Vogt <vogt.adam at gmail.com>**20090917233953
 Ignore-this: b2476a239089a3fd3fe9001cf48e8f09
] 
[Add gnomeRegister to C.Gnome.
Adam Vogt <vogt.adam at gmail.com>**20090917232150
 Ignore-this: 5b2960004418c04bdbb921e3aa777fc2
     
 Credit to Joachim Breitner here:
 http://www.haskell.org/pipermail/xmonad/2009-May/007984.html
] 
[Remove excess broadcastMessage ReleaseResources from A.Commands
Adam Vogt <vogt.adam at gmail.com>**20090904010259
 Ignore-this: e55e16750bd1ee116760559680495b46
 
 XMonad.Operations.restart tells the layouts to release resources.  There's no
 sense in duplicating it in contrib code anymore.
] 
[Mark modules last-modified in 2007 as stable
Adam Vogt <vogt.adam at gmail.com>**20090904005147
 Ignore-this: 53f7fde5684cd9f105cf4e3ce0d849d2
 
 http://www.haskell.org/pipermail/xmonad/2009-July/008328.html
] 
[Minor changes to my config
Spencer Janssen <spencerjanssen at gmail.com>**20090901024802
 Ignore-this: 5196fb217e72153fc4fb32fb40ab18f
] 
[Return True in X.H.FadeInactive.isUnfocused if current workspace is empty. (dschoepe)
Adam Vogt <vogt.adam at gmail.com>**20090828214537
 Ignore-this: 56a3dac874f6430f10ad23870a4be38a
] 
[Actually execute the correct command when giving user-defined commands to ServerMode
Jan Vornberger <jan.vornberger at informatik.uni-oldenburg.de>**20090825233828
 Ignore-this: 571e4d3ec5bcae56987c6e3b85b800b6
] 
[Preserve backwards compatibility with H.ServerMode
Adam Vogt <vogt.adam at gmail.com>**20090825220348
 Ignore-this: cd5df0c49e1d0f07ede1994da9c4c865
] 
[Let the user decide which commands to use in X.H.ServerMode
Daniel Schoepe <daniel.schoepe at gmail.com>**20090825101630
 Ignore-this: 3a1b95f85253ce6059f4528e23c5a3d3
] 
[Improve/correct documentation in X.A.TagWindows
Daniel Schoepe <daniel.schoepe at gmail.com>**20090823131229
 Ignore-this: e9adb7bf77eeebff42f564390c6ceedc
] 
[Replace nextEvent with maskEvent to prevent GridSelect from swallowing unrelated events (such as map/unmap)
Clemens Fruhwirth <clemens at endorphin.org>**20090809131055
 Ignore-this: 6c3bc2487e4f011e0febe0935c223f2
] 
[Better default for ppUrgent in xmobarPP
Daniel Schoepe <daniel.schoepe at gmail.com>**20090822183416
 Ignore-this: ffdfad360d8fd5c5bfa38fd0549b8f19
 
 Most users would expect workspaces with urgent windows to be highlighted in
 xmobar when they set up an UrgencyHook. Hence, doing this by default in xmobarPP
 makes sense. (dzenPP does the same)
] 
[Add backwards compatability in X.H.FadeInactive
Daniel Schoepe <daniel.schoepe at gmail.com>**20090821225646
 Ignore-this: d2ef91429d80fde5126b2aa8f0de9b1f
] 
[More flexible interface for X.H.FadeInactive
Daniel Schoepe <daniel.schoepe at gmail.com>**20090821203936
 Ignore-this: e905086d3fb640cbccf4eec2f11f293
 
 This patch allows setting the opacity on a per-window basis and lets the
 user specify it as a percentage instead of an Integer between 0 and 2^32-1.
] 
[U.Scratchpad: doc add disable-factory flag to gnome-terminal example
Wirt Wolff <wirtwolff at gmail.com>**20090818192503
 Ignore-this: 6fd874a236121b5669b0ec5944caf205
 Few systems have --disable-factory on by default, but it's needed to
 set custom resource string.
 http://code.google.com/p/xmonad/issues/detail?id=308
] 
[A.CycleWS: add toggleOrView fns, fix doc, prevent head exception
Wirt Wolff <wirtwolff at gmail.com>**20090817215549
 Ignore-this: 35acc32e696e665aca900721d309d1d3
] 
[Add -fwarn-tabs to ghc-options for the regular build
Adam Vogt <vogt.adam at gmail.com>**20090814022108
 Ignore-this: 203ea4e54936f8bb6c3c28446d069f88
] 
[Don't use tabs in EwmhDesktops
Daniel Schoepe <daniel.schoepe at gmail.com>**20090813200119
 Ignore-this: 59b1ade240aa75cf448620cd7a37579b
] 
[Do not warn about unknown ClientMessageEvents
Joachim Breitner <mail at joachim-breitner.de>**20090812222917
 Ignore-this: d02940888cd54cf209d6e5f4847548ab
 Not all client messages are are meant to be handled by the wndow manager, so do
 not complain when one is unknown.
] 
[ScratchpadRewrite
konstantin.sobolev at gmail.com**20090428200136
 Ignore-this: 17c946c04dae72f0873f0f5bb56c9f37
 Scratchpad reimplementation in terms of NamedScratchpad. No interface changes.
] 
[NS_Placement
konstantin.sobolev at gmail.com**20090428192731
 Ignore-this: 7cf2d8d956c8e906b41731632db67e2a
 Added ability to specify scratchpad manage hooks, mostly for defining window placement in a more flexible manner
] 
[ThreeColMid - Swap slave window positions
Anders Engstrom <ankaan at gmail.com>**20090503195026
 Ignore-this: f2673e83386bc0e5d398d4e875537cc8
 This patch will swap the positions of the two slave windows and this will result in a more intuitive window order. When using focusDown beginning in the master pane we will move in the following graphical order 2->3->1->2->3 instead of 2->1->3->2->1. This is backwards from what is expected.
 
 The small drawback is that increasing from 2 to 3 windows (and therefore also columns) will behave in a less intuitive way. The window in the right column will jump to the left of the screen.
 
 I think that it is a good idea to make this change since I rely a lot on the window order but people using WindowNavigation may be of a different opinion.
 
 An alternative is to add an option to select in what way to behave, but that could be overkill... I leave it up to discussion and devs to decide.
] 
[fix UrgencyHook docs (\a -> \\a  in Haddock)
Brent Yorgey <byorgey at cis.upenn.edu>**20090809184016
 Ignore-this: a1fcfe2446184a8cea4553fd68565b58
] 
[XMonad.Actions.Search: removeColonPrefix shouldn't throw an exception if no :!
gwern0 at gmail.com**20090808002224
 Ignore-this: db0a25c0d615c3d8cb6ef31489919d91
] 
[XMonad.Actions.Search: clean up hasPrefix - dupe of Data.List.isPrefixOf
gwern0 at gmail.com**20090808002120
 Ignore-this: 3327a19e5aa23af649ce080fc38a7409
] 
[XMonad.Actions.Search: +wikt
gwern0 at gmail.com**20090808000622
 Ignore-this: cee8b1325820ea1f513ae18d840b4c48
] 
[NoWrap export patch for use with X.L.MessageControl
quentin.moser at unifr.ch**20090128004726
 Ignore-this: 2b76afa0547aaed5fb39454a074ec4c3
] 
[new XMonad.Layout.MessageControl module
quentin.moser at unifr.ch**20090128013917
 Ignore-this: cc28e0def6c797f6d1da8f23469a4f8
] 
[U.NamedActions: align the descriptions for each section, refactor its integration with EZConfig
Adam Vogt <vogt.adam at gmail.com>**20090726032003
 Ignore-this: f7132388b1f1fd2dbf03885ffa534c20
] 
[U.NamedActions support subtitles bound to (0,0) unreachable normally
Adam Vogt <vogt.adam at gmail.com>**20090525002915
 Ignore-this: fdb9f0f07663854049cade2f0f7c2ebd
] 
[Add U.NamedActions: present a list of keybindings including submaps
Adam Vogt <vogt.adam at gmail.com>**20090504024017
 Ignore-this: 181c3ee603c82e0c56406ba8552fd394
] 
[Revert to old behavior where unmatched keys do not exit the eventloop for A.GridSelect
Adam Vogt <vogt.adam at gmail.com>**20090727012302
 Ignore-this: 936cfd1e1b6243ced54e356f8067fac
] 
[Share more mkAdjust calls L.LayoutHints in the LayoutHintsToCenter modifier
Adam Vogt <vogt.adam at gmail.com>**20090726061802
 Ignore-this: baa33d5b38a7811b9f50b7d0f808ee75
] 
[Make direction keybindings configurable in A.GridSelect
Adam Vogt <vogt.adam at gmail.com>**20090726020438
 Ignore-this: 9cd675485270ccebec22df72eea40578
] 
[LayoutBuilder - make an example more sane
Anders Engstrom <ankaan at gmail.com>**20090513155732
 Ignore-this: 772566441df97479c49b6b149b57fc27
] 
[Clean Xkb masks in X.A.Submap
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090623164653
 Ignore-this: 930e2bca230d5f403bf9c06650afc57b
 
 Xkb adds its own mask and prevent Submap keybindings from normal
 functioning when alternate layout is used. This patch cleans
 these masks.
 
] 
[Fix defaulting warning with A.RandomBackground
Adam Vogt <vogt.adam at gmail.com>**20090716234955
 Ignore-this: 55dddcc134aa173d2c8e015fc462ff99
] 
[Addition of Machine window property.
Juraj Hercek <juhe_xmonad at hck.sk>**20090715105053
 Ignore-this: d71d82bac7cc59ef462e728adaf5db01
 
 This patch adds WM_CLIENT_MACHINE property to window properties.
 I can be used to distinguish windows run from different machines.
] 
[remove myself as maintainer from code I don't maintain.
David Roundy <droundy at darcs.net>**20090716153409
 Ignore-this: 362988aeca1996474942fa29ffcccbce5e543e57
] 
[X.A.CopyWindow: add wsContainingCopies, doc cleanup
wirtwolff at gmail.com**20090703011524
 Ignore-this: 883899013707737d085476637a44695a
 Use wsContainingCopies in a logHook to highlight hidden workspaces
 with copies of the focused window. (refactored from original by aavogt)
] 
[Add ability to copy the entered string in X.Prompt
Daniel Schoepe <daniel.schoepe at gmail.com>**20090709100703
 Ignore-this: 4e8b98f281001d7540617d0ff6a3d4f3
] 
[Correct license for L.CenteredMaster
Adam Vogt <vogt.adam at gmail.com>**20090708051616
 Ignore-this: 31136b901a7dc476ea337678cbc8637f
 
 Context for why I've recorded the patch:
 	aavogt | portnov: did you get the message about your XMonad.Layout.CenteredMaster licence being not compatible with the licence of contrib?
 	portnov | aavogt: yep.  Could you change that yourself? I allow this to be distributed as bsd3. Making so small patch and sending it will get to much time :)
 	portnov | *so
 	aavogt | I can change it, its more about whether you would allow the change to be made                                                                       
 	aavogt | but I guess this clears it up                                                                                                                       
 	portnov | i allow. 
] 
[Remove trailing whitespace from many modules
Adam Vogt <vogt.adam at gmail.com>**20090705201205
 Ignore-this: 1e28ff0974578d329bd3d593c1a5125e
] 
[Clarify documentation the Migrate message added to L.SubLayouts
Adam Vogt <vogt.adam at gmail.com>**20090705180014
 Ignore-this: 1d47165904048edfe28414ec5ce7f3e
] 
[Reduce a bit of recently introduced duplication in L.SubLayouts
Adam Vogt <vogt.adam at gmail.com>**20090705175145
 Ignore-this: e87a5643938183eff156e08646cc71ac
] 
[Add Migrate message to L.SubLayouts, for better support of moving windows between groups
Adam Vogt <vogt.adam at gmail.com>**20090705174934
 Ignore-this: d76b2f3e5999999a489b843b4dde59f1
] 
[L.SubLayouts: also run the layout being modified in a restricted environment
Adam Vogt <vogt.adam at gmail.com>**20090705174156
 Ignore-this: 9defa5b6a59ed84a15f733bd979e1c45
 
 This way, correct behavior can be expected if the layout runs ex. 'withWindowset
 W.peek', instead of looking at its arguments.
] 
[L.SubLayouts fix bug where previously run layouts would not get messages
Adam Vogt <vogt.adam at gmail.com>**20090705173504
 Ignore-this: 1d54ddb6596173f2fb6f30a648d7f3ba
] 
[Simplify A.WorkspaceCursors use of layout for state, add documentation
Adam Vogt <vogt.adam at gmail.com>**20090705050629
 Ignore-this: 5a4cb6f165edd266a55e42ccedc8c0a7
] 
[Add A.WorkspaceCursors, a generalization of Plane to arbitrary dimensions
Adam Vogt <vogt.adam at gmail.com>**20090702042609
 Ignore-this: 54225917a34aa0785a97c8153ff32ab9
 
 This is implemented as a layoutModifier, since that way the workspace
 arrangment is preserved between restarts.
] 
[Refactor A.OnScreen to use Maybe Monad
Adam Vogt <vogt.adam at gmail.com>**20090703021507
 Ignore-this: d45331ad77662b356f12b3912ea3eac0
] 
[Added XMonad.Actions.OnScreen
mail at n-sch.de**20090702101621
 Ignore-this: 605666aeba92e1d53f03a480506ddf2f
] 
[Remove code duplication in X.A.CopyWindow
Daniel Schoepe <daniel.schoepe at gmail.com>**20090702104933
 Ignore-this: cbbbe68690dbb4b814cd48fa32d4720
] 
[Cleanup code duplication in X.P.Layout and X.P.Workspace
sean.escriva at gmail.com**20090701215640
 Ignore-this: 8675be8952f8d100c9042bdcdb962d3a
] 
[X.A.Search: use the new canonical package URL for hackage search
Brent Yorgey <byorgey at cis.upenn.edu>**20090629192455] 
[X.H.ManageHelpers: add two new helper functions, doFloatDep and doFloatAt
Brent Yorgey <byorgey at cis.upenn.edu>**20090605030113] 
[Keep track of whether messages should be given to new sublayouts in L.SubLayouts
Adam Vogt <vogt.adam at gmail.com>**20090628060608
 Ignore-this: 647184c1b7f65c262c8cc15fdd0829d5
] 
[Run sublayouts in L.Sublayouts in a restricted state
Adam Vogt <vogt.adam at gmail.com>**20090628060333
 Ignore-this: f2a236d3dc0374bbc1c19b864baa7c86
] 
[A.RandomBackground: Parameterize randomBg by a RandomColor data
Adam Vogt <vogt.adam at gmail.com>**20090629004147
 Ignore-this: ba8042aa0f5d3221583aead9dced6cc
] 
[Add A.RandomBackground, actions to start terminals with a random -bg option
Adam Vogt <vogt.adam at gmail.com>**20090627202755
 Ignore-this: a90c98bb14a2f917d8552cd2563aeb49
] 
[Replace most -fglasgow-exts with specific LANGUAGE pragmas
Adam Vogt <vogt.adam at gmail.com>**20090626025457
 Ignore-this: 2274fdd689b0576a76d9f3373e9c7159
] 
[Column_layout.dpatch
portnov84 at rambler.ru**20090605184515
 Ignore-this: ea5ebf0d6e8ac5c044d9291b3c55479d
 This module defines layot named Column. It places all windows in one
 column. Windows heights are calculated from equation: H1/H2 = H2/H3 = ... = q,
 where `q' is given (thus, windows heights forms a geometric progression). With
 Shrink/Expand messages one can change the `q' value.
 
] 
[X.A.Search: add Google "I'm feeling lucky" search
Brent Yorgey <byorgey at cis.upenn.edu>**20090625173751
 Ignore-this: 98bbdd4fbf12d7cd9fad6645653cb84b
] 
[Add ifWindow and ifWindows and simplify WindowGo
Daniel Schoepe <daniel.schoepe at gmail.com>**20090624231711
 Ignore-this: 4ed6e789034db8804accfe06a47ef4a2
 
 This patch adds ifWindow and ifWindows as helper functions to
 X.A.WindowGo and removes some boilerplate by rewriting other functions
 in terms of those. Also some minor simplifications.
] 
[Use -fwarn-tabs for test, remove tabs
Adam Vogt <vogt.adam at gmail.com>**20090624043831
 Ignore-this: 84dfa0d9d50826527abbe7ff6acf4465
] 
[From A.Topicspace split functions for storing strings with root to U.StringProp
Adam Vogt <vogt.adam at gmail.com>**20090623052537
 Ignore-this: 543b172fbefa9feded94d792d01921c4
 
 These functions will be used to send strings for execution by command line, in
 xmonad-eval
] 
[Correct A.TopicSpace sample config
Adam Vogt <vogt.adam at gmail.com>**20090623003937
 Ignore-this: 68a6fed2943eb9982e32815168b6f297
] 
[Add shiftNthLastFocused to A.TopicSpace
Adam Vogt <vogt.adam at gmail.com>**20090623002645
 Ignore-this: 64f4fa63f4cc25f634f8fbc3276ef2a2
] 
[Generalize Actions.SpawnOn
Daniel Schoepe <daniel.schoepe at gmail.com>**20090622183825
 Ignore-this: 8cfd0a4664ece5d721f52c59d4759a5f
 
 Actions.SpawnOn can now be used to execute arbitrary manage hooks on
 the windows spawned by a command(e.g. start a terminal of specific size
 or floated).
] 
[update callers of safeSpawn
gwern0 at gmail.com**20090622201423
 Ignore-this: 484eca17b9877f7d587fc5bce8c5ae8a
] 
[XMonad.Util.Run: improve definition so this can be used with emacs
gwern0 at gmail.com**20090622201401
 Ignore-this: 984788359376e3d2bab0d1e86ff1276f
] 
[XMonad.Actions.WindowGo: switch to safeSpawn, since everyone just passes a prog name (no shell scripting)
gwern0 at gmail.com**20090622193255
 Ignore-this: 5515c72649471fac1ffcf4b68e1e0cf9
] 
[XMonad.Util.Run: +convenience function for safeSpawn which drops args to the prog
gwern0 at gmail.com**20090622193018
 Ignore-this: fc48265f252e015ffdc1792c6c9eaa12
] 
[XMonad.Actions.WindowGo: improve haddocks
gwern0 at gmail.com**20090622192831
 Ignore-this: 28dc1d5b094d50eaf6148fa9cc2d3755
] 
[Fix window ordering bug in L.LimitWindows
Adam Vogt <vogt.adam at gmail.com>**20090622004309
 Ignore-this: 7bcfffe335b765c081c18b103d9d450a
] 
[L.LimitWindows add usage information, functions to modify the limit
Adam Vogt <vogt.adam at gmail.com>**20090622000115
 Ignore-this: 813473c5f42540ed0d575bb273f8652
] 
[Expand Tabbed documentation to describe mouse clicks processing
Dmitry Astapov <dastapov at gmail.com>**20090621211947
 Ignore-this: 185a5dba1c1333aa4a2e778f34417c39
] 
[Close tabs by middle click on tab decoration
Dmitry Astapov <dastapov at gmail.com>**20090621195225
 Ignore-this: e3fb5d78b766f63a20ab4db064d8285c
 
 I'd better do it in xmonad.hs, but I can't decide what to expose from
 Tabbed.hs to make it happed. Suggestions on how to make mouse click
 handling hook a part of the Tabbed creation interface are very welcome
 - my attempts turned out to be ugly in extreme.
] 
[Provide means to find original window by its decoration.
Dmitry Astapov <dastapov at gmail.com>**20090621194652
 Ignore-this: fad8cb7fb4c2785b14b97d48f19604cc
 
 In order to enable user to write custom `decorationMouseFocusHook' and
 `decorationMouseDragHook' hooks we need to provide him with means to
 lookup original window by its decoration.
 
 Module Decoration has internal function `lookFor' for exactly the same
 purpose. I exported it under a slightly different name and without
 exposing internals of DecorationState.
] 
[Add L.LimitWindows layout modifier
Adam Vogt <vogt.adam at gmail.com>**20090619052731
 Ignore-this: e91c07885f0ab662f70e0ebd82fb7a5d
] 
[Remove Hooks.EventHook
Daniel Schoepe <asgaroth_ at gmx.de>**20090618104318
 Ignore-this: 14c32fddc8b7b0561e97eb1d09e27fd7
 
 The Hooks.EventHook module is superseded by handleEventHook from core and should no longer be needed.
] 
[use 'take 1' instead of custom truncHead function in L.WindowNavigation
Adam Vogt <vogt.adam at gmail.com>**20090618010118
 Ignore-this: ecbb2063337bb87108c12a3c3f8ceeba
] 
[Correct many typos in the documentation, consistent US spellingg
Adam Vogt <vogt.adam at gmail.com>**20090618003729
 Ignore-this: cf6dcf340fa6cc010f7879f188d376f5
] 
[minor typo in ./XMonad/Layout/StackTile.hs
Joachim Breitner <mail at joachim-breitner.de>**20090617210345
 Ignore-this: ddb5dff32e332cf378f2204e23335d43
] 
[X.L.ResizableTile: make sure windows aren't resized to a height larger than the screen (fixes #298)
Brent Yorgey <byorgey at cis.upenn.edu>**20090604123509] 
[X.A.PhysicalScreens: fix typo
Roman Cheplyaka <roma at ro-che.info>**20090602172148] 
[X.L.AutoMaster: fix warning
Roman Cheplyaka <roma at ro-che.info>**20090602171754] 
[AutoMaster.dpatch
Ilya Portnov <portnov84 at rambler.ru>**20090426155401
 Ignore-this: e5cbb04882671d6fcc56f181f7d0d292
 Provides layout modifier AutoMaster. It separates screen in two parts -
 master and slave. Size of slave area automatically changes depending on
 number of slave windows.
] 
[UpdatePointer - Don't warp while dragging with mouse
Anders Engstrom <ankaan at gmail.com>**20090530185752
 Ignore-this: 4c3769dc96041608660789573b670c23
] 
[FlexibleResize - Resize from edge, don't move adjust at opposite edge
Anders Engstrom <ankaan at gmail.com>**20090530185437
 Ignore-this: 3c6c0748a4b0d14bd39bcb88f10aade6
 
 When resizing other corners than bottom-right, instead of adjusting to even columns/rows on the opposite side to it the same way as if resizing was made from the bottom right.
 
 Also add the possibility to add an area in the middle of an edge where only that edge is resized, not the closest corner.
 
] 
[Remove USE_UTF8 defines.
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090419130909
 They are not needed any more since utf8-string is mandatory dependence.
] 
[FloatSnap - calculate gaps instead of snapping against unmanaged windows
Anders Engstrom <ankaan at gmail.com>**20090526222942
 Ignore-this: 4378f4c6c4f383c9a35acb503409d865
 
 This patch will remove snapping against unmanaged windows, but instead calculate a new rectangle with all gaps (computed by ManageDocks) removed. This new rectangle is used to snap against. (Both the inside and outside of the rectangle.)
 
 This will remedy the issue of snapping against multiple layers of the same window, additionally there will be no snap-points between windows on the same side. So if you are running two dzen side by side with half the screen each. You will not automatically have a snap-point in the middle.
 
 Naturally, this patch will change which function is exported from ManageDocks.
] 
[Fix L.Mosaic bug where stored [Rational] was not extended
Adam Vogt <vogt.adam at gmail.com>**20090525030734
 Ignore-this: 55bb5b7fabc00f3dcc89e45cc416fc97
] 
[X.A.Search: add Wolfram|Alpha search
Brent Yorgey <byorgey at cis.upenn.edu>**20090525010419] 
[Remove L.ThreeColumnsMiddle compatiblity module
Adam Vogt <vogt.adam at gmail.com>**20090525003245
 Ignore-this: daac5841cf203c0e0df865a6fb0db3a1
 
 Signed off here too:
 http://www.haskell.org/pipermail/xmonad/2009-May/007883.html
] 
[A.FloatSnap snap to unmanaged docks too
Adam Vogt <vogt.adam at gmail.com>**20090525001834
 Ignore-this: 46a856cae139d2e224ded985a9866ecf
] 
[LayoutBuilder fix maintainer
Anders Engstrom <ankaan at gmail.com>**20090524205957
 Ignore-this: 380c279320cff67c60a9bbf9a49ec509
] 
[FloatSnap fix maintainer
Anders Engstrom <ankaan at gmail.com>**20090524205854
 Ignore-this: d3932d211e9dc755be799d863b7d58e3
] 
[X.A.FloatSnap - More configuration for magic resize, adaption for mouse bindings and some minor fixes
Anders Engstrom <ankaan at gmail.com>**20090524201143
 Ignore-this: d5fd9356e101b019735d54267a120ed
] 
[X.A.FloatSnap - Assisted move/resize of windows
Anders Engstrom <ankaan at gmail.com>**20090523235230
 Ignore-this: 53af93bdf537cf3417cedd313e36bcbd
 
 TODO: Try to snap against unmanaged windows such as dzen/xmobar.
 
] 
[Simplyify L.Mosaic interface, and support resizing specific windows
Adam Vogt <vogt.adam at gmail.com>**20090524193810
 Ignore-this: acea22bec582ee5eb076ac3bc862a9ea
 
 The order previously was not as documented, which prevented resizing specific
 windows.
 
 The Mosaic constructor is hidden in favour of mosaic :: Rational -> [Rational] -> Mosaic a
 
 Expand and Shrink messages are added, requiring another argument.
 
 Remove useless demonstration of SlopeMod message since resizing the focused
 window is better.
] 
[L.ResizableTile document ResizableTall parameters with records
Adam Vogt <vogt.adam at gmail.com>**20090519024258
 Ignore-this: a29502bc1302f18b9ae0062105a0e109
] 
[L.LayoutHints, add layoutHintsToCentre
Adam Vogt <vogt.adam at gmail.com>**20090519013806
 Ignore-this: a49106d5abb683d805e59beb29c727a9
 
 layoutHintsToCentre attempts to apply hints in a way that eliminates gaps
 between windows. The excess space ends up on all edges.
] 
[Remove excess whitespace from L.LayoutHints
Adam Vogt <vogt.adam at gmail.com>**20090519013350
 Ignore-this: b4bb5b6aeba95be047a102d07d916c48
] 
[new layout module X.L.Spacing, put blank space around each window
Brent Yorgey <byorgey at cis.upenn.edu>**20090514215552] 
[X.L.LayoutBuilder doc fix and cleaning
Anders Engstrom <ankaan at gmail.com>**20090509195254
 Ignore-this: 7cbf72ba48a2222b65615a02125d87ef
] 
[X.L.LayoutBuilder custom layouts
Anders Engstrom <ankaan at gmail.com>**20090509174627
 Ignore-this: 65c251663f02a083c5838ae1d1bd112a
 
 A layout combinator that sends a specified number of windows to one rectangle and the rest to another.
] 
[submapDefault fix key leakage
Anders Engstrom <ankaan at gmail.com>**20090426171002
 Ignore-this: edb0a2a03b2ed2959cb7068ae601fa28
] 
[Fix typo in L.Mosaic hints
Adam Vogt <vogt.adam at gmail.com>**20090508202937
 Ignore-this: 5f2163e64d876f4982b0d6baf13e0614
] 
[U.Loggers: add maildirNew, other loggers, and logger formatting utilities
wirtwolff at gmail.com**20090412041356
 Ignore-this: 73240ab34348ad895c3d66c2a2e8e40f
 Rework of the Logger portions of patches originally from seanmce33 at gmail.com
 to apply without conflicts, plus several formatting utilities for use with
 X (Maybe String) aka Loggers.
] 
[ThreeCol - Update docs to match reality
Anders Engstrom <ankaan at gmail.com>**20090503190755
 Ignore-this: e63f3ee533dd9bcf0f32da2316dde1dd
] 
[Remove some excess whitespace in XMonad.AppLauncher
Adam Vogt <vogt.adam at gmail.com>**20090503183416
 Ignore-this: b5bfa9625b5b080c20398cf1aa396a08
] 
[Export ThreeColMid from L.ThreeColumnsMiddle
Adam Vogt <vogt.adam at gmail.com>**20090425161710
 Ignore-this: f08d23d108ae9aa4ad176fd9dd275409
 
 The configs that import it should continue to work with this module, though the
 type of the ThreeColMid constructor is now ThreeCol (previously ThreeColMid).
] 
[ThreeColumns support middle column, with more backwards compatiblity
Adam Vogt <vogt.adam at gmail.com>**20090414061819
 Ignore-this: 5a8991269904986e0e012e955c6d4712
] 
[X.L.ThreeColumnsMiddle merged into X.L.ThreeColumns with some new features
Anders Engstrom <ankaan at gmail.com>**20090411113636
 Ignore-this: 1d5bb8de98f8ade3780444ed99f5a12f
] 
[nameTail - Remove the first word of a layout description
Anders Engstrom <ankaan at gmail.com>**20090503105950
 Ignore-this: a44c5e38163ed98ffc244cdd206632d1
] 
[Add H.InsertPosition: add new windows to different positions in a workspace
Adam Vogt <vogt.adam at gmail.com>**20090503020303
 Ignore-this: 7e7d5fa5b42698799cabe600159a75f7
] 
[Add changeMaster function to L.Mosaic
Adam Vogt <vogt.adam at gmail.com>**20090501233136
 Ignore-this: eca2a48fb987bb871ad93e6c6bf1a186
] 
[Optimizer bug does not affect 6.10.2 (issue 226)
Adam Vogt <vogt.adam at gmail.com>**20090430034823
 Ignore-this: f43f9bf9502ebb19743c3b417ef02347
] 
[Remove -XScopedTypeVariables requirement with L.SubLayouts
Adam Vogt <vogt.adam at gmail.com>**20090428222749
 Ignore-this: dbb08e3c1641796603fdaf7b929cdf6d
 
 This should keep the code -Wall clean on ghc-6.8 in addition to ghc-6.10
] 
[Add SubLayouts: a layout combinator for nesting layouts.
Adam Vogt <vogt.adam at gmail.com>**20090423013135
 Ignore-this: abb21b19bfbc567953419b3035b6a295
] 
[Document and extend BoringWindows to support multiple sources of boring.
Adam Vogt <vogt.adam at gmail.com>**20090406041301
 Ignore-this: 7375c8912ede6a6a44db4a4b91ffbc33
 
 The Replace and Merge messages are added to support layouts sending a list of
 windows that should be skipped over. The sources are tagged by a string key, so
 it is possible though unlikely for different sources of boring windows to
 interfere with eachother.
] 
[Add Apply message to L.WindowNavigation
Adam Vogt <vogt.adam at gmail.com>**20090303065701
 Ignore-this: e808729ddd2375778a96775568b8b621
] 
[X.A.TopicSpace: remove the allTopics lists from the configuration.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20090423172939
 Ignore-this: 1ac344b32865b38e53b968cc037b0a01
] 
[added colour themes
perlkat at katspace.org**20090227065315
 These themes are colour themes only; they use the default font settings.
 I thought the existing themes were rather dull, so these give more bright
 (but tasteful) colours; shades of peacock feathers, shades of autumn.
] 
[Prompt.hs: setSuccess True also on Keypad Enter
sean.escriva at gmail.com**20090409162609
 Ignore-this: cf04f87c546f89bd32a94de3a2a93b22
] 
[Update focus on mouse moves within inactive windows
Daniel Schoepe <asgaroth_ at gmx.de>**20090407191819
 Ignore-this: 36c05c60420520dab708401d8a80fc85
 
 This patch adds functionality to update the focus on moves in unfocused windows, which would make sense if one wanted the focus to follow the mouse.
 Currently this only happens when the mouse enters/leaves a window. 
 This patch should fix issue #205.
] 
[Add promoteWarp event to L.MagicFocus
Adam Vogt <vogt.adam at gmail.com>**20090322221456
 Ignore-this: 12ad5fc144a35fb605f53b744d8146ef
 
 This event enables A.UpdatePointer behavior without causing infinite loops in
 combination with magicFocus
] 
[Add TowardsCentre option to UpdatePointer
Adam Vogt <vogt.adam at gmail.com>**20090322215811
 Ignore-this: d543d8f090b03a6c26b3a0427be3a051
 
 This option is like Nearest, but it places the pointer a configurable
 percentage towards the centre of the window, instead of right at the edge.
] 
[Remove excess whitespace in A.UpdatePointer
Adam Vogt <vogt.adam at gmail.com>**20090322215553
 Ignore-this: 6fbc63642b946461e0fafcb44016824
] 
[Combo fix ReleaseResources when no windows are available, new fix
Anders Engstrom <ankaan at gmail.com>**20090224172018
 Ignore-this: b59603df8e4cfc1fb2cf9070cea615b3
] 
[OneBig_resize.dpatch
portnov84 at rambler.ru**20090221142300
 Ignore-this: c02b25bd370ee449aab28005eb4418cf
 Add Shrink/Expand messages handling for OneBig layout.
] 
[OneBig_layout.dpatch
portnov84 at rambler.ru**20090220172634
 Ignore-this: 9d4f308d13f003aa4236417307a66c15
 Add the OneBig layout, which places one (master) window at top left corner of
 screen (width and height of master window are parameters of layout), and other
 (slave) windows at bottom and at right of master, trying to give equal space
 for each slave window.
] 
[Properly encode destop names before sending them to X server in XMonad.Hooks.EwmhDesktops
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090220184137
 Ignore-this: 6a22ea8bdc49f8484e18f04aaeb545ae
] 
[Make utf8-string regular dependency
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090220183318
 Ignore-this: b38936b037c1172ec69905fa345f7afe
 
 The reason for this is that EWMH specification require 
 utf8 encoded strings.
] 
[Update haddock description for Actions.GridSelect
Daniel Schoepe <asgaroth_ at gmx.de>**20090422172510
 Ignore-this: db5a2c009f7e88647f168ccb225d6219
] 
[X.H.DynamicLog: provides trim, inverse of pad
sean.escriva at gmail.com**20090409163513
 Ignore-this: 9d92ff592f2bc4f041b85d1314058fdc
] 
[Mouse support for GridSelect
Daniel Schoepe <asgaroth_ at gmx.de>**20090409223302
 Ignore-this: 38669e39c8676233d71f457c0b697500
 
 GridSelect now allows selecting an element by a click with the left mouse button.
] 
[Generalize GridSelect to arbitrary elements
Daniel Schoepe <asgaroth_ at gmx.de>**20090409155704
 Ignore-this: 69fbce85232871482adcce06c1a5fe62
 
 This patch generalizes Actions.GridSelect to work for arbitrary (String,a)-lists. The changes break configurations that used `gridSelect' directly, which is now named gridSelectWindow. As an example for uses of the GridSelect-UI, I included a function to spawn an application from a list of commands(`spawnSelected').
] 
[Improve composability of X.H.Place, drop simple(st)Float support
quentin.moser at unifr.ch**20090415184550
 Ignore-this: 8a0fb64aa0db27b242b7ad4bcba1a3ca
] 
[Fixed X.H.Place.position
quentin.moser at unifr.ch**20090409084946
 Ignore-this: 29e3936800194916a859976ff126dbfe
] 
[Module for automatic placement of floating windows
quentin.moser at unifr.ch**20090408080953
 Ignore-this: 1874df995fc02a0b80051db39d91a2e1
] 
[X.H.FloatNext: new module, float the next spawned window(s)
quentin.moser at unifr.ch**20090415181907
 Ignore-this: 95e1c9daa3ca43bfb058f6a881a97f3a
] 
[ComboP
konstantin.sobolev at gmail.com**20090415014327
 Ignore-this: 73bb986165a7bba466aae789a5448170
] 
[New module: XMonad.Actions.TopicSpace
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20090419085239
 Ignore-this: 4c20592ea6ca74f38545c5a1a002ef91
] 
[NamedScratchpad
konstantin.sobolev at gmail.com**20090419045542
 Ignore-this: b442cb08123d2413e0bb144a73bf3f57
] 
[More configurability for Layout.NoBorders (typeclass method)
Adam Vogt <vogt.adam at gmail.com>**20090325050206
 Ignore-this: 91fe0bc6217b910b7348ff497b922e11
 
 This method uses a typeclass to pass a function to the layoutmodifier. It is
 flexible, but a bit indirect and perhaps the flexibility is not required.
] 
[Add XMonad.Actions.PhysicalScreens
nelhage at mit.edu**20090321001320
 
 Add an XMonad.Actions.PhysicalScreens contrib module that allows
 addressing of screens by physical ordering, rather than the arbitrary
 ScreenID.
] 
[pointWithin has moved to the core
Joachim Breitner <mail at joachim-breitner.de>**20081008154245] 
[UpdatePointer even to empty workspaces
Joachim Breitner <mail at joachim-breitner.de>**20081007080041
 This makes UpdatePointer more Xinerama-compatible: If the user switches to a
 screen with an empty workspace, the pointer is moved to that workspace, which I
 think is expected behavoiur.
] 
[More predictable aspect ratio in GridVariants.Grid
Norbert Zeh <nzeh at cs.dal.ca>**20090311013617
 
 The old version fairly arbitrarily decided to prefer windows that are too
 high over those that are too wide.  The new version chooses the number of
 columns so that all windows on the screen are as close as possible to the
 desired aspect ratio.  As a side effect, the layout changes much more
 predictably under addition and removal of clients.
] 
[X.L.Master: fix number of windows
Ismael Carnales <icarnales at gmail.com>**20090301051509
 Ignore-this: 2af132159450d4fb72eb52024eda71b5
] 
[U.EZConfig: add xK_Print <Print> to special keys
wirtwolff at gmail.com**20090302230741
 Ignore-this: 9560b7c7c4424edb5cea6eec45e2b41d
 Many setups are expecting xK_Print rather than
 xK_Sys_Req, so make it available in additionalKeysP.
] 
[More flexibility for H.FadeInactive
Daniel Schoepe <asgaroth_ at gmx.de>**20090309160020
 Ignore-this: ebfa2eadb439763276b372107cdf8d6c
] 
[Prompt.Shell: escape ampersand
Valery V. Vorotyntsev <valery.vv at gmail.com>**20090312091314
 Ignore-this: 7200b76af8109bab794157da46cb0030
 
 Ampersand (&) is a special character and should be escaped.
] 
[Cleanup X.L.Mosaic, without breaking it
Adam Vogt <vogt.adam at gmail.com>**20090219022417
 Ignore-this: d49ed55fe8dc2204256dff9252384745
] 
[X.L.Mosaic: prevent users from causing non-termination with negative elements
Adam Vogt <vogt.adam at gmail.com>**20090210022727
 Ignore-this: 370a7d6249906f1743c6692758ce5aeb
] 
[better Layout.NoBorders.smartBorders behavior on xinerama
Adam Vogt <vogt.adam at gmail.com>**20090314170058
 Ignore-this: 36737ce2fa2087c4a16ddf226d3b0f0a
 
 Now smartBorders shows borders when you have multiple screens with one window
 each. In the case where only one window is visible, no borders are drawn.
] 
[H.DynamicLog: revised dzenStrip and xmobarStrip functions
wirtwolff at gmail.com**20090314041517
 Ignore-this: 9897c60b8dfc59344939b7aebc370953
 Reconcile darcswatch patch with pushed version of dzenStrip.
] 
[X.H.DynamicLog: Add dzenStrip to remove formatting, for use in dzenPP's ppUrgent.
Braden Shepherdson <Braden.Shepherdson at gmail.com>**20090314032818
 Ignore-this: fd96a1a4b112d0f71589b639b83ec3e
 This function was written by Wirt Wolff. This change should allow UrgencyHook
 to work out of the box with dzen and dzenPP, rather than the colours being
 overridden so even though UrgencyHook is working, it doesn't change colours.
] 
[X.H.ManageHelpers: export isInProperty
Roman Cheplyaka <roma at ro-che.info>**20090308201112] 
[L.Cross: clarify documentation
wirtwolff at gmail.com**20090222042220
 Ignore-this: 4a5dcf71e63d045f27e2340e1def5cc8
 Amend-record earlier patch to work with byorgey's fix,
 this one is just the documentation typo fixes and 
 clarifications.
] 
[documentation for IndependentScreens
daniel at wagner-home.com**20090221235959] 
[eliminate a haddock warning in BoringWindows
daniel at wagner-home.com**20090221235836] 
[merge IndependentScreens
daniel at wagner-home.com**20090221232142] 
[add IndependentScreens to xmonad-contrib.cabal
daniel at wagner-home.com**20090221231632] 
[add type information for IndependentScreens
daniel at wagner-home.com**20090221231525] 
[add some boilerplate comments at the top of IndependentScreens
Brent Yorgey <byorgey at cis.upenn.edu>**20090221230850] 
[IndependentScreens, v0.0
daniel at wagner-home.com**20090221225229] 
[U.Run: remove waitForProcess to close Issue 268
wirtwolff at gmail.com**20090220214153
 Ignore-this: a6780565fde40a4aac9023cc55fc2273
 http://code.google.com/p/xmonad/issues/detail?id=268
 Submitting with some trepidation, since I've nearly no
 understanding of process handling. Should be ok, no 
 warnings by sjanssen when asking about it in hpaste or
 earlier email, and tested locally by spawning excessive
 numbers of dzens: did not leave zombies or raise exceptions.
] 
[change Cross data declaration into a record so that Haddock will parse the per-argument comments
Brent Yorgey <byorgey at cis.upenn.edu>**20090221224742] 
[X.L.Master: turn it to a Layout modifier and update the code
Ismael Carnales <icarnales at gmail.com>**20090213020453
 Ignore-this: 69513ad2b60dc4aeb49d64ca30e6f9f8
] 
[Use doShift in my config
Spencer Janssen <spencerjanssen at gmail.com>**20090219042040
 Ignore-this: 1f103d21bbceec8d48384f975f18eaec
] 
[SpawnOn: use doShift.  This resolves problems where SpawnOn would shift the wrong window
Spencer Janssen <spencerjanssen at gmail.com>**20090219041856
 Ignore-this: 6ae639a638db8eff77203f3f2e481a4e
] 
[SpawnOn: delete seen pids
Spencer Janssen <spencerjanssen at gmail.com>**20090213013011
 Ignore-this: 8b15a60bba1edf1bab5fb77ac54eb12f
] 
[X.U.Loggers: handle possible EOF (reported by dyfrgi)
Roman Cheplyaka <roma at ro-che.info>**20090216213842] 
[U.Scratchpad: add general spawn action to close issue 249
wirtwolff at gmail.com**20090214003642
 Ignore-this: 925ad9db4ecc934dcd86320f383ed44a
 Adds scratchpadSpawnActionCustom where user specifies how to set
 resource to "scratchpad". This allows use of gnome-terminal, etc.
 Add detail to RationalRectangle documentation; strip trailing spaces.
] 
[SpawnOn: add 'exec' to shell strings where possible
Spencer Janssen <spencerjanssen at gmail.com>**20090212234608
 Ignore-this: c7de4e05803d60b10f38004dcbda4732
] 
[Add Cross Layout
'Luis Cabellos <zhen.sydow at gmail.com>'**20090209174802] 
[Fix an undefined in EwmhDesktops
Daniel Schoepe <asgaroth_ at gmx.de>**20090209152308
 Ignore-this: f60a43d7ba90164ebcf700090dfb2480
] 
[X.U.WindowProperties: docs (description and sections)
Roman Cheplyaka <roma at ro-che.info>**20090208231422] 
[X.U.WindowProperties: Add getProp32 and getProp32s, helpers to get properties from windows
Ismael Carnales <icarnales at gmail.com>**20090205013031
 Ignore-this: c5481fd5d97b15ca049e2da2605f65c1
] 
[cleanup and make X.L.Mosaic behavior more intuitive wrt. areas
Adam Vogt <vogt.adam at gmail.com>**20090208221629
 Ignore-this: 3c3c6faa203cbb1c1db909e5bf018b6f
] 
[minor typo in XMonad/Util/EZConfig.hs
Joachim Breitner <mail at joachim-breitner.de>**20090208192224
 Ignore-this: 7ffee60858785c3e31fdd5383c9bb784
] 
[Multimedia keys support for EZConfig
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090207173330
 Ignore-this: 21183dd7c192682daa18e3768828f88d
] 
[+A.CycleWindows: bindings to cycle windows in new ways
wirtwolff at gmail.com**20090207170622
 Ignore-this: 51634299addf224cbbc421adb4b048f5
 Provides binding actions and customizable pure stack operations
 to cycle through a list of permutations of the stack (recent),
 cycle nth into focus, cycle through focus excluding a neighbor,
 cycle unfocused, shift a window halfway around the stack.
 Esp. for Full, two or three pane layouts, but useful for any
 layout with many windows.
] 
[XMonad.Actions.CopyWindow: fmt & qualify stackset import
gwern0 at gmail.com**20090206171833
 Ignore-this: 4d08f5a7627020b188f59fc637b53ae8
] 
[XMonad.Actions.CopyWindow runOrCopy
lan3ny at gmail.com**20080602205742] 
[ManageHelpers: reduce duplicated code in predicates
Ismael Carnales <icarnales at gmail.com>**20090204021847
 Ignore-this: e28a912d4f897eba68ab3edfddf9f26b
] 
[Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn)
Roman Cheplyaka <roma at ro-che.info>**20090204103635] 
[X.A.SpawnOn: add docs
Roman Cheplyaka <roma at ro-che.info>**20090204102424
 Add more documentation, including documentation from
 X.U.SpawnOnWorkspace by Daniel Schoepe.
] 
[Remove silliness from XMonad.Doc.Configuring
Spencer Janssen <spencerjanssen at gmail.com>**20090204055626] 
[Adjustments to use the new event hook feature instead of Hooks.EventHook
Daniel Schoepe <asgaroth_ at gmx.de>**20090203160046
 Ignore-this: f8c239bc8e301cbd6fa509ef748af542
] 
[Easier Colorizers for X.A.GridSelect
quentin.moser at unifr.ch**20090128001702
 Ignore-this: df3e0423824e40537ffdb4bc7363655d
] 
[X.A.SpawOn: fix usage doc
Roman Cheplyaka <roma at ro-che.info>**20090202102042] 
[Added GridVariants.SplitGrid
Norbert Zeh <nzeh at cs.dal.ca>**20090129152146
 
 GridVariants.TallGrid behaved weird when transformed using Mirror
 or Reflect.  The new layout SplitGrid does away with the need for
 such transformations by taking a parameter to specify horizontal
 or vertical splits.
] 
[FixedColumn: added missing nmaster to the usage doc
Ismael Carnales <icarnales at gmail.com>**20090130195239
 Ignore-this: 642aa0bc9e68e7518acc8af30324b97a
] 
[XMonad.Actions.Search: fix whitespace & tabs
gwern0 at gmail.com**20090129025246
 Ignore-this: 894e479ccc46160848c4d70c2361c929
] 
[xmonad-action-search-intelligent-searchengines
Michal Trybus <komar007 at gmail.com>**20090128101938
 Changed the XMonad.Action.Search to use a function instead of String to prepare the search URL.Added a few useful functions used to connect many search engines together and do intelligent prefixed searches (more doc in haddock)The API has not changed with the only exception of search function, which now accepts a function instead of String.
] 
[XMonad.Prompt autocompletion fix
quentin.moser at unifr.ch**20090127184145
 Ignore-this: 635cbf6420722a4edef1ae9c40b36e1b
] 
[X.A.SinkAll: re-add accidentally deleted usage documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222533] 
[move XMonad.Actions.SinkAll functionality to more general XMonad.Actions.WithAll, and re-export sinkAll from X.A.SinkAll for backwards compatibility
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222355] 
[adds generic 'all windows on current workspace' functionality
loupgaroublond at gmail.com**20081221224850] 
[placement patch to XMonad.Layout.LayoutHints
quentin.moser at unifr.ch**20090126195950
 Ignore-this: 87a5efa9c841d378a808b1a4309f18
] 
[XMonad.Actions.MessageFeedback module
quentin.moser at unifr.ch**20090126181059
 Ignore-this: 82e58357a44f98c35ccf6ad0ef98b552
] 
[submapDefault
Anders Engstrom <ankaan at gmail.com>**20090118152933
 Ignore-this: c8958d47eb584a7de04a81eb087f05d1
 Add support for a default action to take when the entered key does not match any entry.
] 
[X.A.CycleWS: convert tabs to spaces (closes #266)
Roman Cheplyaka <roma at ro-che.info>**20090127185604] 
[Mosaic picks the middle aspect layout, unless overriden
Adam Vogt <vogt.adam at gmail.com>**20090126032421
 Ignore-this: aaa31da14720bffd478db0029563aea5
] 
[Mosaic: stop preventing access to the widest layouts
Adam Vogt <vogt.adam at gmail.com>**20090125045256
 Ignore-this: c792060fe2eaf532f433cfa8eb1e8fe3
] 
[X.L.Mosaic add documentation, update interface and aspect ratio behavior
Adam Vogt <vogt.adam at gmail.com>**20090125041229
 Ignore-this: e78027707fc844b3307ea87f28efed73
] 
[Use currentTag, thanks asgaroth
Spencer Janssen <spencerjanssen at gmail.com>**20090125213331
 Ignore-this: dd1a3d96038de6479eca3b9798d38437
] 
[Support for spawning most applications on a specific workspace
Daniel Schoepe <asgaroth_ at gmx.de>**20090125191045
 Ignore-this: 26076d54b131e037b42c87e4fde63200
] 
[X.L.Mosaic: haddock fix
Roman Cheplyaka <roma at ro-che.info>**20090124235908] 
[A mosaic layout based on MosaicAlt
Adam Vogt <vogt.adam at gmail.com>**20090124022058
 Ignore-this: 92bad7498f1ac402012e3eba6cbb2693
 
 The position of a window in the stack determines its position and layout. And
 the overall tendency to make wide or tall windows can be changed, though not
 all of the options presented by MosaicAlt can be reached, the layout changes
 with each aspect ratio message.
 
] 
[uninstallSignalHandlers in spawnPipe
Spencer Janssen <spencerjanssen at gmail.com>**20090122002745
 Ignore-this: e8cfe0f18f278c95d492628da8326fd7
] 
[Create a new session for spawnPiped processes
Spencer Janssen <spencerjanssen at gmail.com>**20090122000441
 Ignore-this: 37529c5fe8b4bf1b97fffb043bb3dfb0
] 
[TAG 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090118220647] 
[Use spawnOn in my config
Spencer Janssen <spencerjanssen at gmail.com>**20090117041026
 Ignore-this: 3f92e4bbe4f2874b86a6c7ad66a31bbb
] 
[Add XMonad.Actions.SpawnOn
Spencer Janssen <spencerjanssen at gmail.com>**20090117040432
 Ignore-this: 63869d1ab11f2ed5aab1690763065800
] 
[Bump version to 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090116223607
 Ignore-this: 1c201e87080e4404f51cadc108b228a1
] 
[Compile without optimizations on x86_64 and GHC 6.10
Spencer Janssen <spencerjanssen at gmail.com>**20090108231650
 Ignore-this: a803235b8022793f648e8953d9f05e0c
 This is a workaround for http://xmonad.org/bugs/226
] 
[Update all uses of doubleFork/waitForProcess
Spencer Janssen <spencerjanssen at gmail.com>**20090116210315
 Ignore-this: 4e15b7f3fd6af3b7317449608f5246b0
] 
[Update to my config
Spencer Janssen <spencerjanssen at gmail.com>**20090116204553
 Ignore-this: 81017fa5b99855fc8ed1fe8892929f53
] 
[Adjustments to new userCode function
Daniel Schoepe <asgaroth_ at gmx.de>**20090110221310] 
[X.U.EZConfig: expand documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090116153143] 
[add a bit of documentation to HintedTile
Brent Yorgey <byorgey at cis.upenn.edu>**20090114065126] 
[ManageHelpers: add isDialog
johanngiwer at web.de**20090108232505] 
[CenteredMaster
portnov84 at rambler.ru**20090111134513
 
 centerMaster layout modifier places master window at top of other, at center of screen. Other windows are managed by base layout.
 topRightMaster is similar, but places master window at top right corner.
] 
[XMonad.Util.XSelection: update maintainer information
gwern0 at gmail.com**20090110213000
 Ignore-this: 1592ba07f2ed5d2258c215c2d175190a
] 
[X.U.XSelection: get rid of warning about missing newline, add Haddock link
Brent Yorgey <byorgey at cis.upenn.edu>**20090102194357] 
[adds haddock documentation for transformPromptSelection
loupgaroublond at gmail.com**20090102190954
 
 also renames the function per mailing list recommendation
] 
[adds a weird function to XSelection
loupgaroublond at gmail.com**20081222020730
 
 This enables you to pass a function of (String -> String) to a selection function to modify the string before executing it.  This way, you can input your own escape routines to make it shell command line safe, and/or do other fancier things.
] 
[ThreeColumnsMiddle
xmonad at c-otto.de**20090102091019] 
[fix-fromJust-errors
rupa at lrrr.us**20081224045509
 
 bogner wrote all this stuff and i just tested it.
 
 I had:
 
 myLogHook = ewmhDesktopLogHookCustom ScratchpadFilterOutWorkspace >> updatePointer Nearest
 
 Everytime I invoked or hid Scratchpad, it would leave a 'Maybe.fromJust: Nothing' line in .xsession-errors, and updatePointer would stop working.
 
] 
[ Prompt: Change Filemode to 600 for history-file (fixes bug 244)
Dominik Bruhn <dominik at dbruhn.de>**20081218001601] 
[X.L.Monitor: changes in message passing
Roman Cheplyaka <roma at ro-che.info>**20081226220851
 - transform mbName (Maybe String) to name (String)
 - slghtly change semantics of messages, document it
] 
[X.L.Monitor: change interface
Roman Cheplyaka <roma at ro-che.info>**20081226213118
 - remove add*Monitor
 - add manageMonitor, monitor template
] 
[X.U.WindowProperties: propertyToQuery+docs
Roman Cheplyaka <roma at ro-che.info>**20081225080702] 
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081225073904] 
[hlintify XUtils, XSelection, Search, WindowGo
gwern0 at gmail.com**20081220153302
 Ignore-this: 7e877484e3cd8954b74232ea83180fa9
] 
[fix focus issue for XMonad.Actions.Warp.banishScreen
Norbert Zeh <nzeh at cs.dal.ca>**20081212203532
 
 This patch ensures that the focus (or in fact the whose windowset)
 does not change as a result of a banishScreen.  The way this is implemented
 will become problematic if xmonad ever goes multithreaded.
] 
[addition of XMonad.Actions.Warp.banishScreen
Norbert Zeh <nzeh at cs.dal.ca>**20081212192621
 
 This works on top of warpToScreen and, thus, suffers from the same issue:
 focus change.
] 
[fixed documentation for banish
Norbert Zeh <nzeh at cs.dal.ca>**20081212191819
 
 banish actually warps to the specified corner of the current window, not
 the screen.
] 
[addition of combined TallGrid layout
Norbert Zeh <nzeh at cs.dal.ca>**20081212184836
 
 Added a module XMonad.Layouts.GridVariants, which defines layouts
 Grid and TallGrid.  The former is a customizable version of Grid.  The latter
 is a combination of Grid and Tall (see doc of the module).
] 
[Add FixedColumn, a layout like Tall but based on the resize hints of windows
Justin Bogner <mail at justinbogner.com>**20081213073054] 
[XMonad.Actions.WindowGo: fix a floating-related focus bug
gwern0 at gmail.com**20081205150755
 Ignore-this: c8b6625aa2bd4136937acbd2ad64ffd3
 If a floating window was focused, a cross-workspace 'raise' would cause a loop of
 shifting windows. Apparently the problem was 'focus' and its mouse-handling. Spencer
 suggested that the calls to focus be replaced with 'focusWindow', which resolved it.
] 
[Prompt.hs: +greenXPConfig and amberXPConfig
gwern0 at gmail.com**20081119213122
 Ignore-this: 95ac7dbe9c8fe3618135966f251f4fc6
] 
[Prompt.hs: increase font size to 12 from niggardly 10
gwern0 at gmail.com**20081119212523
 Ignore-this: 74a6e1ac5e1774da4ffc7c6667c034c
] 
[Prompt.hs: replace magic numbers with understandable names
gwern0 at gmail.com**20081119212502
 Ignore-this: 8401c0213be9a32c925e1bd0ba5e01f1
] 
[X.L.Monitor: recommend doHideIgnore (docs)
Roman Cheplyaka <roma at ro-che.info>**20081215190710] 
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081215184423] 
[X.L.Monitor: export Monitor datatype
Roman Cheplyaka <roma at ro-che.info>**20081215184318] 
[X.H.ManageHelpers: add doHideIgnore
Roman Cheplyaka <roma at ro-che.info>**20081215182758] 
[Add KDE 4 config, thanks to Shirakawasuna on IRC
Spencer Janssen <spencerjanssen at gmail.com>**20081211071141
 Ignore-this: 51698961ab5b6e569c294d174f2804a9
] 
[I use the deleteConsecutive history filter
Spencer Janssen <spencerjanssen at gmail.com>**20081025070438] 
[Remove XMonad.Config.PlainConfig, it has been turned into the separate xmonad-light project.
Braden Shepherdson <Braden.Shepherdson at gmail.com>**20081203161534] 
[XMonad.Prompt: swap up and down per bug #243
gwern0 at gmail.com**20081203013323
 Ignore-this: 8ab0481a0da7a983f501ac2fec4a68e8
] 
[Fix boolean operator precedence in GridSelect keybindings
Aleksandar Dimitrov <aleks.dimitrov at googlemail.com>**20081201120928
 The vim-like hjkl keys were ORed to the key event AND arrow keys.
] 
[GridSelect.hs: navigate grid with h,j,k,l as well as arrow keys
sean.escriva at gmail.com**20081122084725] 
[Export setOpacity from FadeInactive. Document how to make monitor transparent (X.L.Monitor)
Roman Cheplyaka <roma at ro-che.info>**20081117153027] 
[Monitor: use broadcastMessage instead of sendMessage; this solves several issues
Roman Cheplyaka <roma at ro-che.info>**20081117133957] 
[FadeInactive: fade all inactive windows (including focused windows on visible screens)
Roman Cheplyaka <roma at ro-che.info>**20081117130115] 
[Monitor: documented one more issue
Roman Cheplyaka <roma at ro-che.info>**20081117113807] 
[Monitor: improved the docs
Roman Cheplyaka <roma at ro-che.info>**20081117073709] 
[added XMonad.Layout.Monitor
Roman Cheplyaka <roma at ro-che.info>**20081115104735] 
[WindowProperties: added allWithProperty
Roman Cheplyaka <roma at ro-che.info>**20081115104525] 
[ManageHelpers: added doSideFloat (generalization of doCenterFloat)
Roman Cheplyaka <roma at ro-che.info>**20081114113015] 
[GridSelect: Export default_colorizer
Dominik Bruhn <dominik at dbruhn.de>**20081112140005] 
[Simplify code for restriction-calculation and remove compiletime warnings
Dominik Bruhn <dominik at dbruhn.de>**20081112134630] 
[Simplify handle/eventLoop, introduce findInWindowMap, partial updates for key movements (less flickering)
Clemens Fruhwirth <clemens at endorphin.org>**20081111100405
 
 * handle/eventLoop carried the display and the drawing window as
   parameters. The display is available from the embedded X monad, the
   drawing windows was added.
 
 * updateWindows now takes a list of windows to
   update. updateAllWindows updates all windows.
 
 * only the windows that are modified by key movements are redrawn
   now. This means less flickering.
 
] 
[GridSelect: force cursor stay in visible area
Roman Cheplyaka <roma at ro-che.info>**20081111063348] 
[GridSelect: fix infiniteness problem with diamondRestrict
Roman Cheplyaka <roma at ro-che.info>**20081111055350] 
[GridSelect: remove tabs
Roman Cheplyaka <roma at ro-che.info>**20081111053647] 
[Exported shrinkWhile from Decoration to use in GridSelect
Roman Cheplyaka <roma at ro-che.info>**20081110191534] 
[GridSelect: added link to a screenshot
Roman Cheplyaka <roma at ro-che.info>**20081110190617] 
[GridSelect: various improvements
Roman Cheplyaka <roma at ro-che.info>**20081110184644
 Added documentation
 Restricted export list for the sake of haddock
 Added functions:
   withSelectedWindow
   bringSelected (by Clemens Fruhwirth)
   goToSelected (by Dominik Bruhn)
] 
[Initial version of GridSelect.hs with a lot room for improvement/cleanups
Clemens Fruhwirth <clemens at endorphin.org>**20081107115114] 
[documentation: XMonad.Util.Search.hs, add EZConfig keybindings example
sean.escriva at gmail.com**20081106171707] 
[typo
Don Stewart <dons at galois.com>**20081104043044
 Ignore-this: bdac0ff3316c821bce321b51c62f6e89
] 
[place an upper bound on the version of base we support
Don Stewart <dons at galois.com>**20081104035857
 Ignore-this: 29139cc4f0ecb299b56ae99f7d20b854
] 
[explicit import list for things in the process library
Don Stewart <dons at galois.com>**20081104035319
 Ignore-this: 91b7f96421828788760e8bcff7dec317
] 
[Work around ghc 6.10 bug #2738
Don Stewart <dons at galois.com>**20081104034819
 Ignore-this: c75da9693fa642025eac0d074869423d
] 
[windowPromptBringCopy
deadguysfrom at gmail.com**20081023173019] 
[generic menu and window bringer
Travis B. Hartwell <nafai at travishartwell.net>**20081027005523] 
[Search.hs: +hackage search, courtesy of byorgey
gwern0 at gmail.com**20081031214937
 Ignore-this: 24db0ceed49f8bd37ce98ccf8f8ca2ab
] 
[Prompt.hs rename deleteConsecutiveDuplicates
gwern0 at gmail.com**20081008205131
 That name is really unwieldy and long.
] 
[Prompt.hs: have historyCompletion filter dupes
gwern0 at gmail.com**20081008204710
 Specifically, it calls deleteConsecutiveDuplicates on the end product. uniqSort reverses order in an unfortunate way, so we don't use that.
 The use-case is when a user has added the same input many times - as it stands, if the history records 30 'top's or whatever, the completion will show 30 'top' entries! This fixes that.
] 
[Prompt.hs: tweak haddocks
gwern0 at gmail.com**20081008204649] 
[Prompt.hs: mv uniqSort to next to its confreres, and mention the trade-off
gwern0 at gmail.com**20081008192645] 
[Do not consider XMONAD_TIMER unknown
Joachim Breitner <mail at joachim-breitner.de>**20081008195643] 
[Kill window without focusing it first
Joachim Breitner <mail at joachim-breitner.de>**20081005002533
 This patch requires the patch "add killWindow function" in xmonad.
 Before this patch, people would experience “workspace flicker” when closing
 a window via EWMH that is not on the current workspace, for example when
 quitting pidgin via the panel icon.
] 
[let MagnifyLess actually magnify less
daniel at wagner-home.com**20081015153911] 
[Actions.Search: add a few search engines
intrigeri at boum.org**20081008104033
 
 Add Debian {package, bug, tracking system} search engines, as well as Google
 Images and isohunt.
 
] 
[Implement HiddenNonEmptyWS with HiddenWS and NonEmptyWS
Joachim Breitner <mail at joachim-breitner.de>**20081006211027
 (Just to reduce code duplication)
] 
[Add straightforward HiddenWS to WSType
Joachim Breitner <mail at joachim-breitner.de>**20081006210548
 With NonEmptyWS and HiddenNonEmptyWS present, HiddenWS is obviously missing.
] 
[Merge emptyLayoutMod into redoLayout
Joachim Breitner <mail at joachim-breitner.de>**20081005190220
 This removes the emptyLayoutMod method from the LayoutModifier class, and
 change the Stack parameter to redoLayout to a Maybe Stack one. It also changes
 all affected code. This should should be a refactoring without any change in
 program behaviour.
] 
[SmartBorders even for empty layouts
Joachim Breitner <mail at joachim-breitner.de>**20081005184426
 Fixes: http://code.google.com/p/xmonad/issues/detail?id=223
] 
[Paste.hs: improve haddocks
gwern0 at gmail.com**20080927150158] 
[Paste.hs: fix haddock
gwern0 at gmail.com**20080927145238] 
[minor explanatory comment
daniel at wagner-home.com**20081003015919] 
[XMonad.Layout.HintedGrid: add GridRatio (--no-test because of haddock breakage)
Lukas Mai <l.mai at web.de>**20080930141715] 
[XMonad.Util.Font: UTF8 -> USE_UTF8
Lukas Mai <l.mai at web.de>**20080930140056] 
[Paste.hs: implement noModMask suggestion
gwern0 at gmail.com**20080926232056] 
[fix a divide by zero error in Grid
daniel at wagner-home.com**20080926204148] 
[-DUTF8 flag with -DUSE_UTF8
gwern0 at gmail.com**20080921154014] 
[XSelection.hs: use CPP to compile against utf8-string
gwern0 at gmail.com**20080920151615] 
[add XMonad.Config.Azerty
Devin Mullins <me at twifkak.com>**20080924044946] 
[flip GridRatio to match convention (x/y)
Devin Mullins <me at twifkak.com>**20080922033354] 
[let Grid have a configurable aspect ratio goal
daniel at wagner-home.com**20080922010950] 
[Paste.hs: +warning about ASCII limitations
gwern0 at gmail.com**20080921155038] 
[Paste.hs: shorten comment lines to under 80 columns per sjanssen
gwern0 at gmail.com**20080921154950] 
[Forgot to enable historyFilter :(
Spencer Janssen <spencerjanssen at gmail.com>**20080921094254] 
[Prompt: add configurable history filters
Spencer Janssen <spencerjanssen at gmail.com>**20080921093453] 
[Update my config to use 'statusBar'
Spencer Janssen <spencerjanssen at gmail.com>**20080921063513] 
[Rename pasteKey functions to sendKey
Spencer Janssen <spencerjanssen at gmail.com>**20080921062016] 
[DynamicLog: doc fixes
Spencer Janssen <spencerjanssen at gmail.com>**20080921061314] 
[Move XMonad.Util.XPaste to XMonad.Util.Paste
Spencer Janssen <spencerjanssen at gmail.com>**20080921060947] 
[Depend on X11 >= 1.4.3
Spencer Janssen <spencerjanssen at gmail.com>**20080921055456] 
[statusBar now supplies the action to toggle struts
Spencer Janssen <spencerjanssen at gmail.com>**20080918013858] 
[cleanup - use currentTag
Devin Mullins <me at twifkak.com>**20080921011159] 
[XPaste.hs: improve author info
gwern0 at gmail.com**20080920152342] 
[+XMonad.Util.XPaste: a module for pasting strings to windows
gwern0 at gmail.com**20080920152106] 
[UrgencyHook bug fix: cleanupUrgents should clean up reminders, too
Devin Mullins <me at twifkak.com>**20080920062117] 
[Sketch of XMonad.Config.Monad
Spencer Janssen <spencerjanssen at gmail.com>**20080917081838] 
[raiseMaster
seanmce33 at gmail.com**20080912184830] 
[Add missing space between dzen command and flags
Daniel Neri <daniel.neri at sigicom.com>**20080915131009] 
[Big DynamicLog refactor.  Added statusBar, improved compositionality for dzen and xmobar
Spencer Janssen <spencerjanssen at gmail.com>**20080913205931
 Compatibility notes:
     - dzen type change
     - xmobar type change
     - dynamicLogDzen removed
     - dynamicLogXmobar removed
] 
[Take maintainership of XMonad.Prompt
Spencer Janssen <spencerjanssen at gmail.com>**20080911230442] 
[Overhaul Prompt to use a zipper for history navigation.  Fixes issue #216
Spencer Janssen <spencerjanssen at gmail.com>**20080911225940] 
[Use the new completion on tab setting
Spencer Janssen <spencerjanssen at gmail.com>**20080911085940] 
[Only start to show the completion window with more than one match
Joachim Breitner <mail at joachim-breitner.de>**20080908110129] 
[XPrompt: Add showCompletionOnTab option
Joachim Breitner <mail at joachim-breitner.de>**20080908105758
 This patch partially implements
 http://code.google.com/p/xmonad/issues/detail?id=215
 It adds a XPConfig option that, if enabled, hides the completion window
 until the user presses Tab once. Default behaviour is preserved.
 TODO: If Tab causes a unique completion, continue to hide the completion
 window.
] 
[XMonad.Actions.Plane.planeKeys: function to make easier to configure
Marco Túlio Gontijo e Silva <marcot at riseup.net>**20080714153601] 
[XMonad.Actions.Plane: removed unneeded hiding
Marco Túlio Gontijo e Silva <marcot at riseup.net>**20080714152631] 
[Improvements in documentation
Marco Túlio Gontijo e Silva <marcot at riseup.net>**20080709002425] 
[Fix haddock typos in XMonad.Config.{Desktop,Gnome,Kde}
Spencer Janssen <spencerjanssen at gmail.com>**20080911040808] 
[add clearUrgents for your keys
Devin Mullins <me at twifkak.com>**20080909055425] 
[add reminder functionality to UrgencyHook
Devin Mullins <me at twifkak.com>**20080824200548
 I'm considering rewriting remindWhen and suppressWhen as UrgencyHookModifiers, so to speak. Bleh.
] 
[TAG 0.8
Spencer Janssen <spencerjanssen at gmail.com>**20080905195420] 
Patch bundle hash:
8e450fac99cf96282f2ca74b920aaf850a92d305


More information about the xmonad mailing list