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

Adam Vogt vogt.adam at gmail.com
Fri Jun 17 03:58:38 CEST 2011

Applied, thanks.

* On Wednesday, June 15 2011, Tomáš Janoušek wrote:

>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.
>Tomáš Janoušek, a.k.a. Liskni_si, http://work.lisk.in/

>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
>[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.
>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.
>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.
>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 < 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 < because Seq.filter and
> Seq.breakl were introduced only in containers
>[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
>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
>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
>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
>`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, 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.
>konstantin.sobolev at gmail.com**20090428200136
> Ignore-this: 17c946c04dae72f0873f0f5bb56c9f37
> Scratchpad reimplementation in terms of NamedScratchpad. No interface changes.
>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
>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] 
>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
>portnov84 at rambler.ru**20090221142300
> Ignore-this: c02b25bd370ee449aab28005eb4418cf
> Add Shrink/Expand messages handling for OneBig layout.
>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
>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
>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
>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
>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] 
>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.
>xmonad at c-otto.de**20090102091019] 
>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] 
>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
>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] 
>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:

More information about the xmonad mailing list