
New patches:

[remove ScratchWorkspace.
David Roundy <droundy@darcs.net>**20080516185729
 It's ugly code, and I'd be surprised if anyone actually uses it.  I see no
 reason to continue to maintain it.
] {
hunk ./XMonad/Layout/ScratchWorkspace.hs 1
-{-# OPTIONS -fglasgow-exts #-}
------------------------------------------------------------------------------
--- |
--- Module      :  XMonad.Layout.ScratchWorkspace
--- Copyright   :  (c) Braden Shepherdson, David Roundy 2008
--- License     :  BSD-style (as xmonad)
---
--- Maintainer  :  Braden.Shepherdson@gmail.com
--- Stability   :  unstable
--- Portability :  unportable
-
-module XMonad.Layout.ScratchWorkspace ( toggleScratchWorkspace ) where
-
-import Data.List ( partition )
-import Control.Monad ( guard )
-
-import XMonad
-import XMonad.Core
-import qualified XMonad.StackSet as W
-
-hiddenRect :: Rectangle
-hiddenRect = Rectangle (-1) (-1) 0 0
-
-scratchName :: String
-scratchName = "*scratch*"
-
--- This module uses an ugly hack, which is to create a special screen for
--- the scratch workspace.  This screen is then moved onto a visible area or
--- away when you ask for the scratch workspace to be shown or hidden.
-
--- This is a workaround for the fact that we don't have anything like
--- proper support for hierarchical workspaces, so I use the only hierarchy
--- we've got, which is at the screen level.
-
-toggleScratchWorkspace :: LayoutClass l Int => l Int -> X ()
-toggleScratchWorkspace l =
-    do s <- gets windowset
-       defaultl <- asks (layoutHook . config)
-       srs <- withDisplay getCleanedScreenInfo
-       if length srs == 1 + length (W.visible s)
-         then -- we don't yet have a scratch screen!
-             if scratchName `W.tagMember` s
-             then return () -- We'll just bail out of scratchName already exists...
-             else do let scratchscreen = W.Screen scratch (-1) (SD hiddenRect)
-                         scratch = W.Workspace scratchName defaultl Nothing
-                         s' = s { W.visible = scratchscreen: W.visible s }
-                     modify $ \st -> st { windowset = s' }
-                     refresh
-         else -- We've already got a scratch (we think)
-           if length srs /= length (W.visible s)
-           then -- Something is odd... too many screens are visible! Do nothing.
-                return ()
-           else -- Yes, it does seem there's a scratch screen already
-              case partition ((/= -1) . W.screen) $ W.current s : W.visible s of
-              (others@(c:vs),[scratchscreen]) ->
-                  if screenRect (W.screenDetail scratchscreen) == hiddenRect
-                  then -- we're hidden now, so let's display ourselves
-                      do let r = screenRect $ W.screenDetail c
-                         (rs,_) <- runLayout (W.Workspace "" l (Just $ W.Stack 0 [1] [])) r
-                         let (r0, r1) = case rs of
-                                        [(0,ra),(1,rb)] -> (ra,rb)
-                                        [(1,ra),(0,rb)] -> (rb,ra)
-                                        [(1,ra)] -> (r,ra)
-                                        [(0,ra)] -> (ra,r)
-                                        _ -> (r,r)
-                             s' = s { W.current = setrect r0 scratchscreen,
-                                      W.visible = setrect r1 c : vs }
-                         modify $ \st -> st { windowset = s' }
-                         refresh
-                  else -- we're visible, so now we want to hide
-                       do ml <- handleMessage (W.layout $ W.workspace scratchscreen) (SomeMessage Hide)
-                          let scratchscreen' = case ml of
-                                               Nothing -> scratchscreen
-                                               Just l' -> scratchscreen
-                                                          { W.workspace =
-                                                            (W.workspace scratchscreen) { W.layout = l' } }
-                          mapM_ hide $ W.integrate' $ W.stack $ W.workspace scratchscreen
-                          let modscr scr = do guard $ scratchName /= W.tag (W.workspace scr)
-                                              r' <- pickRect (W.screen scr) srs
-                                              Just $ setrect r' scr
-                              pickRect _ [z] = Just z
-                              pickRect i (z:zs) | i < 1 = Just z
-                                                | otherwise = pickRect (i-1) zs
-                              pickRect _ [] = Nothing
-                          case mapM modscr others of
-                            Just (c':vs') ->
-                                do let s' = s { W.current = c',
-                                                W.visible = setrect hiddenRect scratchscreen' : vs' }
-                                   modify $ \st -> st { windowset = s' }
-                                   refresh
-                            _ -> return () -- weird error!
-              _ -> -- Something is odd... there doesn't seem to *really* be a scratch screen...
-                   return ()
-    where setrect :: Rectangle -> W.Screen i l a sid ScreenDetail -> W.Screen i l a sid ScreenDetail
-          setrect x scr = scr {W.screenDetail = (W.screenDetail scr) {screenRect = x}}
rmfile ./XMonad/Layout/ScratchWorkspace.hs
hunk ./xmonad-contrib.cabal 149
                         XMonad.Layout.ResizableTile
                         XMonad.Layout.ResizeScreen
                         XMonad.Layout.Roledex
-                        XMonad.Layout.ScratchWorkspace
                         XMonad.Layout.Simplest
                         XMonad.Layout.SimpleDecoration
                         XMonad.Layout.SimpleFloat
}

Context:

[I no longer use ScratchWorkspace.
David Roundy <droundy@darcs.net>**20080516185715] 
[fix bug in smartBorders when combined with decorated windows.
David Roundy <droundy@darcs.net>**20080516184855] 
[decent documentation for UrgencyHook
Devin Mullins <me@twifkak.com>**20080515082222
 Blame it on lack of sleep. Or perhaps the causation is the reverse.
] 
[X.A.WindowNavigation: currentPosition and setPosition share the same `inside` logic, now
Devin Mullins <me@twifkak.com>**20080515062211
 Aside from documentation, this is pretty much usable, now.
] 
[X.A.WindowNavigation: have currentPosition handle axes independently
Devin Mullins <me@twifkak.com>**20080515053330
 This improves some subtle interactions between mod-j/k and mod-w/a/s/d, though
 that might not become very apparent until I fix setPosition.
] 
[fix compile warnings in BoringWindows
Devin Mullins <me@twifkak.com>**20080515051728] 
[add BoringWindows module to make certain windows skipped when rotating focus.
David Roundy <droundy@darcs.net>**20080514162846] 
[UrgencyHook: some documentation (more is needed)
Devin Mullins <me@twifkak.com>**20080514080104] 
[UrgencyHook: got rid of the need for instances to know about suppressWhen
Devin Mullins <me@twifkak.com>**20080514072217
 This changes the API a little bit, but that's what you get for using a day-old feature from darcs.
] 
[move AppLauncher from Actions module to Prompt module
zhen.sydow@gmail.com**20080513201252] 
[X.A.WindowNavigation: comment cleanup
Devin Mullins <me@twifkak.com>**20080513091313] 
[windowRect now compensates for border width
Devin Mullins <me@twifkak.com>**20080513090151
 Odd that I have to do (Rectangle x y (w + 2 * bw) (h + 2 * bw)) -- you'd think
 the window would be centered within the bordered area.
] 
[X.A.WindowNavigation: update TODO
Devin Mullins <me@twifkak.com>**20080513044229] 
[X.A.WindowNavigation: minor cleanup
Devin Mullins <me@twifkak.com>**20080512170410] 
[X.A.WindowNavigation: simplify inr somewhat
Devin Mullins <me@twifkak.com>**20080512090647] 
[X.A.WindowNavigation: clarity
Devin Mullins <me@twifkak.com>**20080512085338] 
[X.A.WindowNavigation: ugh, typo
Devin Mullins <me@twifkak.com>**20080512082228] 
[X.A.WindowNavigation: implement swap, extract withTargetWindow commonality
Devin Mullins <me@twifkak.com>**20080512064715
 Why doesn't mapWindows exist already?
] 
[add more flexible withWindowNavigationKeys
Devin Mullins <me@twifkak.com>**20080512050637
 Names aren't permanent yet, so don't cry if they change.
] 
[X.A.WindowNavigation: TODO
Devin Mullins <me@twifkak.com>**20080511222116] 
[X.A.WindowNavigation: add withWindowNavigation, for easy setup
Devin Mullins <me@twifkak.com>**20080511220458
 This should be more flexible than it is -- I've got an idea, but am interested to hear others.
] 
[X.A.WindowNavigation: fix currentPosition
Devin Mullins <me@twifkak.com>**20080511212128
 Now properly deals with an unitialized state (e.g. from a restart) or an
 inconsistent state (e.g. from using mod-j/k). Deserves cleanup.
] 
[X.A.WindowNavigation: add TODOs
Devin Mullins <me@twifkak.com>**20080511211326] 
[X.A.WindowNavigation state is now workspace-specific
Devin Mullins <me@twifkak.com>**20080511071656
 racking up some code debt, here...
] 
[X.A.WindowNavigation: minor doco changes
Devin Mullins <me@twifkak.com>**20080506074235] 
[add draft XMonad.Actions.WindowNavigation
Devin Mullins <me@twifkak.com>**20080504050022
 This is an experiment with replacing the WindowNavigation LayoutModifier with
 one that simply adds keybindings and stores state in an IORef. Credit to
 droundy for the original code -- hopefully I'm not butchering it. The end
 intent is to add Xinerama support, but it'll be a little while before I get
 there.
] 
[new contrib module to launch apps with command line parameters
zhen.sydow@gmail.com**20080513134754] 
[pull suppressWhen logic into main WithUrgencyHook handler
Devin Mullins <me@twifkak.com>**20080513075247
 In order for this to work, I added a new UrgencyHook method to communicate the
 SuppressWhen value. I'm not sure if this is actually better than just providing
 a convenience function, but it's an easy switch.
] 
[add suppressWhen option to dzenUrgencyHook
Devin Mullins <me@twifkak.com>**20080513054615] 
[WindowNavigation: extract navigable function
Devin Mullins <me@twifkak.com>**20080422045248] 
[UrgencyHook: doc typo
Devin Mullins <me@twifkak.com>**20080512052137] 
[UrgencyHook: extract whenNotVisible
Devin Mullins <me@twifkak.com>**20080512041852] 
[SpawnUrgencyHook, FWIW
Devin Mullins <me@twifkak.com>**20080512040449] 
[make UrgencyHook an EventHook
Devin Mullins <me@twifkak.com>**20080512024822
 This gets rid of the stupid bug that led to a need for the clearBit hack, and
 allowed me to simplify the types (since EventHooks aren't required to
 parameterize on the window type). Config files need not change, unless they
 declare instances of UrgencyHook, in which case, they should remove "Window" as
 is seen in this patch.
 
] 
['xmobar' function added to DynamicLog for running xmobar with some defaults
Ivan N. Veselov <veselov@gmail.com>**20080508194918] 
[HintedTile: Fix mistake in documentation.
lithis <xmonad@selg.hethrael.org>**20080508003552] 
[Use gnome-session-save for the mod-shift-q binding
Spencer Janssen <sjanssen@cse.unl.edu>**20080507082205] 
[Use the named constant 'none' rather than 0
Spencer Janssen <sjanssen@cse.unl.edu>**20080507081854] 
[HintedTile: Improve documentation.
lithis <xmonad@selg.hethrael.org>**20080508000245] 
[Whitespace only
Spencer Janssen <sjanssen@cse.unl.edu>**20080507031306] 
[Add a binding for Gnome's "Run Application" dialog
Spencer Janssen <sjanssen@cse.unl.edu>**20080507031127] 
[Add some keybindings to the Kde config
Spencer Janssen <sjanssen@cse.unl.edu>**20080507022658] 
[Indentation
Spencer Janssen <sjanssen@cse.unl.edu>**20080507022553] 
[Add ToggleStruts to the desktop config
Spencer Janssen <sjanssen@cse.unl.edu>**20080507022516] 
[Refactor my config
Spencer Janssen <sjanssen@cse.unl.edu>**20080507021504] 
[Add XMonad.Config.Kde
Spencer Janssen <sjanssen@cse.unl.edu>**20080507020833] 
[Don't move the pointer if the user is moving the mouse
Klaus Weidner <kweidner@pobox.com>**20080417022234
 
 This patch depends on the following xmonad core patch:
 
   Remember if focus changes were caused by mouse actions or by key commands
 
 If the user was moving the mouse, it's not appropriate to move the pointer
 around in resonse to focus changes. Do that only in response to keyboard
 commands.
] 
[Missing pragmas
Don Stewart <dons@galois.com>**20080506053402] 
[Add full documentation
Don Stewart <dons@galois.com>**20080505210546] 
[minor cleanup on getName
Devin Mullins <me@twifkak.com>**20080504054923] 
[bug doco for UrgencyHook
Devin Mullins <me@twifkak.com>**20080426203638] 
[NamedWindows: when converting the text property, handle the empty list.
Spencer Janssen <sjanssen@cse.unl.edu>**20080502104249
 This fixes a "Prelude.head" exception observed with windows that have no title.
 Reproduce by placing several windows in the tabbed layout, then starting
 'xterm -name ""'.  Thanks to Andrea for pointing out the issue.
] 
[Fix issue #179 by handling events correctly
Andrea Rossato <andrea.rossato@unibz.it>**20080501062357] 
[My monitor is larger now :)
Spencer Janssen <sjanssen@cse.unl.edu>**20080430083026] 
[manageHooks for my config
Spencer Janssen <sjanssen@cse.unl.edu>**20080430082536] 
[Remove redundant type signature
Spencer Janssen <sjanssen@cse.unl.edu>**20080430082447] 
[Add XMonad.Config.Desktop and XMonad.Config.Gnome
Spencer Janssen <sjanssen@cse.unl.edu>**20080430082253] 
[Alphabetize exposed-modules
Spencer Janssen <sjanssen@cse.unl.edu>**20080430035453] 
[new contrib layout: XMonad.Layout.SimplestFloat - A floating layout like SimpleFloat, but without decoration
joamaki@gmail.com**20080424220957] 
[stricitfy some gap fields
Don Stewart <dons@galois.com>**20080427191247] 
[XMonad.Hooks.ManageHelpers: quick&dirty support for _NET_WM_STATE_FULLSCREEN
Lukas Mai <l.mai@web.de>**20080426132745] 
[XMonad.Hooks.Script: haddock fixes
Lukas Mai <l.mai@web.de>**20080426132629] 
[Error fix for Tabbed when tabbar always shown
Ivan.Miljenovic@gmail.com**20080424063135] 
[remove my config file -- the wiki is where its at.
Don Stewart <dons@galois.com>**20080419195650] 
[tweaks to docs for SimpleDecoration
Don Stewart <dons@galois.com>**20080418215155] 
[Allow tabbar to always be shown.
Ivan.Miljenovic@gmail.com**20080415043728
 Patch take 4, hopefully the final version.  Includes droundy's suggestions.
] 
[polish
Don Stewart <dons@galois.com>**20080418033133] 
[Script-based hooks
Trevor Elliott <trevor@galois.com>**20080416213024] 
[Don't strictify the Display component, this triggers a bug in GHC 6.6
Spencer Janssen <sjanssen@cse.unl.edu>**20080416185733] 
[Fix to IM modifier.
Roman Cheplyaka <roma@ro-che.info>**20080414232437
 Avoid differentiating integrated stack by using StackSet.filter.
] 
[IM layout converted to LayoutModifier, which can be applied to any layout
Ivan N. Veselov <veselov@gmail.com>**20080413205824] 
[stictify some fields
Don Stewart <dons@galois.com>**20080413070117] 
[strictify some fields
Don Stewart <dons@galois.com>**20080413065958] 
[Fix window order in EWMH
Joachim Breitner <mail@joachim-breitner.de>**20080411134411
 For pagers to draw the stacking order correctly, the focused window has to
 be the last in the list. Thus put an appropriate implementation of allWindows
 into the Module.
 This does not work perfectly with floating windows.
] 
[remove myself as maintainer of CopyWindow.
David Roundy <droundy@darcs.net>**20080409144333
 I'm not sure who's maintaining this, but it's not me.
] 
[XMonad.Util.WindowProperties: add WM_WINDOW_ROLE as Role
Roman Cheplyaka <roma@ro-che.info>**20080409174935] 
[Generalize copyWindow, minor style change
Spencer Janssen <sjanssen@cse.unl.edu>**20080408210050] 
[XMonad.Actions.CopyWindow: added copyToAll and killAllOtherCopies functions
Ivan N. Veselov <veselov@gmail.com>**20080408195111] 
[XMonad.Actions.UpdatePointer: doc fix
Lukas Mai <l.mai@web.de>**20080407152741] 
[XMonad.Util.Font: minor reformatting
Lukas Mai <l.mai@web.de>**20080406020935] 
[DynamicLog: resolve merge conflict
Lukas Mai <l.mai@web.de>**20080406020527] 
[Encode the entire DynamicLog output, instead of just window title.
lithis <xmonad@selg.hethrael.org>**20080329031537] 
[DynamicLog: add support for UTF-8 locales when compiled with XFT or UFT-8 support
Andrea Rossato <andrea.rossato@unibz.it>**20080313102643] 
[XMonad.Util.Font: don't call setlocale; core does it for us
Lukas Mai <l.mai@web.de>**20080406013123] 
[XMonad.Util.NamedWindows: fix imports
Lukas Mai <l.mai@web.de>**20080326172745] 
[Changed getName to use locale-aware functions
Mats Jansborg <mats@jansb.org>**20070819132104
 Rewrote getName using getTextProperty and wcTextPropertyToTextList.
] 
[Added next-window versions of the raise* functions.
Ian Zerny <ian@zerny.dk>**20080405182900] 
[XMonad.Layout.Master: initial import
Lukas Mai <l.mai@web.de>**20080404220734] 
[update contrib for applySizeHints changes
Lukas Mai <l.mai@web.de>**20080404220558] 
[XMonad.Hooks.ManageDocks: haddock fix
Lukas Mai <l.mai@web.de>**20080404220532] 
[MultiToggle/Instances: ghc 6.6 can't parse LANGUAGE pragma
Brent Yorgey <byorgey@gmail.com>**20080404200157] 
[Document _NET_ACTIVE_WINDOW behaviour more exactly
Joachim Breitner <mail@joachim-breitner.de>**20080404072944] 
[_NET_ACTIVE_WINDOW moves windows if necessary
Joachim Breitner <mail@joachim-breitner.de>*-20080402143811
 This makes EWMH behave a bit more like metacity: If _NET_ACTIVE_WINDOW is
 received and the window is not on the current worspace, it is brought here 
 (instead of the workspace switched to the other one). So for example, if you
 click on the pidgin icon in the panel and the buddy list is already open some
 where it is moved here.
] 
[onstart=lower, solves floating dzen issue
Don Stewart <dons@galois.com>**20080403203425] 
[some bang patterns
Don Stewart <dons@galois.com>**20080403172246] 
[have 'dzen' use autoStruts to detect the gaps
Don Stewart <dons@galois.com>**20080403003130] 
[Actions/Search.hs: add dictionary.com search
Brent Yorgey <byorgey@gmail.com>**20080402150521] 
[_NET_ACTIVE_WINDOW moves windows if necessary
Joachim Breitner <mail@joachim-breitner.de>**20080402143811
 This makes EWMH behave a bit more like metacity: If _NET_ACTIVE_WINDOW is
 received and the window is not on the current worspace, it is brought here 
 (instead of the workspace switched to the other one). So for example, if you
 click on the pidgin icon in the panel and the buddy list is already open some
 where it is moved here.
] 
[HintedGrid: guesstimate window flexibility and layout rigid windows first
Lukas Mai <l.mai@web.de>**20080402042846] 
[HintedGrid: try both bottom-up/top-down window placement to minimize unused space
Lukas Mai <l.mai@web.de>**20080402012538] 
[Grid/HintedGrid: use an ncolumns formula inspired by dwm's "optimal" mode
Lukas Mai <l.mai@web.de>**20080402012126] 
[XMonad.Layout.Gaps: new contrib module for manual gap support, in the few cases where ManageDocks is not appropriate (dock apps that don't set STRUTS properly, adjusting for a display that is cut off on one edge, etc.)
Brent Yorgey <byorgey@gmail.com>**20080402003742] 
[improve WindowGo.hs Haddock formatting
gwern0@gmail.com**20080401023130] 
[forgot a haddock for getEditor in Shell.hs
gwern0@gmail.com**20080401022012] 
[WindowGo.hs: +raiseBrowser, raiseEditor
gwern0@gmail.com**20080401021740
 Specialize runOrRaise in the same way as with Actions.Search, for one's browser and one's editors.
] 
[RunOrRaise.hs: FF 3 doesn't use the "Firefox-bin" classname
gwern0@gmail.com**20080401015049] 
[Search.hs: remove an argument from selectSearch and promptSearch
gwern0@gmail.com**20080401013947
 The new getBrowser function allows us to mv the old selectSearch and promptSearch aside as too-general functions, and replace them with new versions, which employ getBrowser to supply one more argument. This allows us to replace the tedious 'selectSearch google "firefox"; selectSearch yahoo "firefox"...' with shorter 'selectSearch google' and so on. One less argument.
 
 Also, update the docs.
] 
[Shell.hs: +getBrowser, getEditor, helper function
gwern0@gmail.com**20080401013447
 The helper function asks the shell for the value of a variable, else returns the second argument.
 getBrowser and getEditor obviously specialize it for two particular possibly queries
] 
[XMonad.Layout.HintedGrid: initial import
Lukas Mai <l.mai@web.de>**20080401231722] 
[Documentation improvement.
Roman Cheplyaka <roma@ro-che.info>**20080401134305] 
[Remove broken link to screenshot.
Roman Cheplyaka <roma@ro-che.info>**20080331210854] 
[MultiToggle: add new XMonad.Layout.MultiToggle.Instances module for common instances of Transformer, update MultiToggle docs accordingly
Brent Yorgey <byorgey@gmail.com>**20080331201739] 
[XMonad.Actions.CycleRecentWS: initial import
Michal Janeczek <janeczek@gmail.com>**20080331111906] 
[XMonad.Hooks.ManageDocks: export checkDoc
Lukas Mai <l.mai@web.de>**20080331012911] 
[XMonad.Layout.Grid: fix indentation
Lukas Mai <l.mai@web.de>**20080330004859] 
[move Direction type from WindowNavigation to ManageDocks (ManageDocks will move into the core, taking Direction with it)
Brent Yorgey <byorgey@gmail.com>**20080331010127] 
[ManageDocks: clean up + add more documentation
Brent Yorgey <byorgey@gmail.com>**20080331002929] 
[Util.Run, Hooks.DynamicLog: re-export hPutStrLn and hPutStr from Util.Run for convenience, and update DynamicLog documentation to show proper imports
Brent Yorgey <byorgey@gmail.com>**20080328205446] 
[ManageDocks: add avoidStrutsOn, for covering some docks and not others by default.
Brent Yorgey <byorgey@gmail.com>**20080327203940] 
[ManageDocks: add ability to toggle individual gaps independently
Brent Yorgey <byorgey@gmail.com>**20080327111722] 
[PerWorkspace: add modWorkspace(s) combinators, for selectively applying layout modifiers to certain workspaces but not others
Brent Yorgey <byorgey@gmail.com>**20080326214351] 
[Haddock fix
Roman Cheplyaka <roma@ro-che.info>**20080330134435] 
[Remove stale status gaps code
Spencer Janssen <sjanssen@cse.unl.edu>**20080329230737] 
[TAG 0.7
Spencer Janssen <sjanssen@cse.unl.edu>**20080329202416] 
[Bump version to 0.7
Spencer Janssen <sjanssen@cse.unl.edu>**20080329192400] 
[Fix haddock error
Spencer Janssen <sjanssen@cse.unl.edu>**20080329191752] 
[XMonad.Layout.MultiToggle: let runLayout modify the base layout if no transformer is active
Lukas Mai <l.mai@web.de>**20080328190903] 
[Spiral: add documentation
Brent Yorgey <byorgey@gmail.com>**20080328192231] 
[corrected version of make workspaceDir work even in workspaces with no windows.
David Roundy <droundy@darcs.net>**20080327142257] 
[make workspaceDir work even in workspaces with no windows.
David Roundy <droundy@darcs.net>*-20080326152708
 This also fixes a (minor) bug when the focussed window is present on
 multiple visible workspaces.
] 
[ManageDocks: add warning about making sure gaps are set to zero before switching to avoidStruts, since ToggleStruts won't work otherwise
Brent Yorgey <byorgey@gmail.com>**20080326231928] 
[update documentation in XMonad/Doc in preparation for 0.7 release
Brent Yorgey <byorgey@gmail.com>**20080326195741] 
[XMonad.Hooks.ManageHelpers: reformatting
Lukas Mai <l.mai@web.de>**20080326182707] 
[XMonad.Layout.NoBorders: fix floating fullscreen logic
Lukas Mai <l.mai@web.de>**20080326172844] 
[clean up Config.Droundy.
David Roundy <droundy@darcs.net>**20080327002159] 
[make workspaceDir work even in workspaces with no windows.
David Roundy <droundy@darcs.net>**20080326152708
 This also fixes a (minor) bug when the focussed window is present on
 multiple visible workspaces.
] 
[cleanup in Tabbed (make 'loc' be actual location).
David Roundy <droundy@darcs.net>**20080326151004] 
[Fix bugs in Tabbed and TabBarDecoration -- please remember multi-head!
Spencer Janssen <sjanssen@cse.unl.edu>**20080326034541] 
[UpdatePointer: Make pointer position configurable.
xmonad@selg.hethrael.org**20080326075759] 
[my current config
Don Stewart <dons@galois.com>**20080326023303] 
[I don't use DwmStyle
Spencer Janssen <sjanssen@cse.unl.edu>**20080325213818] 
[fix bug in TabBarDecoration leading to gaps in corner.
David Roundy <droundy@darcs.net>**20080325210327] 
[fix bug leading to gaps in tabs at the corner of the screen.
David Roundy <droundy@darcs.net>**20080325210211
 Besides being ugly, this had the effect of making me fail to click on the
 tab I aimed for, if it was in the corner.
] 
[XMonad.Layout.LayoutModifier: add a metric crapload of documentation
Brent Yorgey <byorgey@gmail.com>**20080325205006] 
[XMonad.Layout.Reflect: update documentation to reflect (haha) recent updates to MultiToggle
Brent Yorgey <byorgey@gmail.com>**20080325185630] 
[XMonad.Layout.HintedTile: make alignment of shrunk windows configurable
Lukas Mai <l.mai@web.de>**20080325202958] 
[XMonad.Actions.Commands: documentation fix
Brent Yorgey <byorgey@gmail.com>**20080325165707] 
[focusedHasProperty
redbeard0531@gmail.com**20080325040412] 
[XMonad.Util.Themes: improve documentation to make it clear that themes only apply to decorated layouts
Brent Yorgey <byorgey@gmail.com>**20080324185946] 
[Doc/Extending: remove references to "XMonad.Layouts" -- it's now called "XMonad.Layout", and in any case, importing it explicitly is not needed anyway.
Brent Yorgey <byorgey@gmail.com>**20080324143503] 
[XMonad.Actions.Search: add Google Maps search
Brent Yorgey <byorgey@gmail.com>**20080324143348] 
[XMonad.Layout.Magnifier: add documentation
Brent Yorgey <byorgey@gmail.com>**20080324143214] 
[wfarrTheme
wcfarrington@gmail.com**20080324011625
 Add a new color theme using blue and black.
] 
[added RunOrRaisePrompt, exported getCommands from Shell
Justin Bogner <mail@justinbogner.com>**20080323222632] 
[XMonad.Actions.MouseGestures: reexport Direction from WindowNavigation, avoid type duplication
Lukas Mai <l.mai@web.de>**20080322193457] 
[use ewmhDesktopsLayout in Droundy.
David Roundy <droundy@darcs.net>**20080322153610] 
[cut Anneal and Mosaic.
David Roundy <droundy@darcs.net>**20080322153546] 
[fix various compilation errors
Lukas Mai <l.mai@web.de>**20080322074113] 
[XMonad.Layout.NoBorders: first attempt at documenting smartBorders
Lukas Mai <l.mai@web.de>**20080321221315] 
[allow magnifier to toggle whether it's active
daniel@wagner-home.com**20080321104605] 
[a magnifier that defaults to not magnifying any windows
daniel@wagner-home.com**20080321104441] 
[XMonad.Layout.Magnifier: remove references to Data.Ratio.% from documentation
Lukas Mai <l.mai@web.de>**20080320223816] 
[mark Mosaic as broken. use MosaicAlt
Don Stewart <dons@galois.com>**20080320223717] 
[add ewmhDesktopsLayout for EWMH interaction
Joachim Breitner <mail@joachim-breitner.de>**20080319195736
 
 This is based on Andrea���s EventHook thingy. Note that I could not merge
 this with some of my earlier EWHM interaction patches (darcs was failing on me),
 so I copied some code. Do not try to merge it with those patches either.
 
 Note that the docs are saying what should work. There are still some bugs
 to be resolved, but it works sometimes and should work similar to what we have.
] 
[Export HandleEvent type to be able to use it in type annotations
Joachim Breitner <mail@joachim-breitner.de>**20080319195603] 
[I now use ServerMode
Andrea Rossato <andrea.rossato@unibz.it>**20080226115347] 
[EventHook: handle events after the underlying layout and more
Andrea Rossato <andrea.rossato@unibz.it>**20080224230854
 - check the first time the Bool is True
 - coding and naming style
] 
[Add Hooks.ServerMode: an event hook to execute commands sent by an external client
Andrea Rossato <andrea.rossato@unibz.it>**20080224133706] 
[Add EventHook: a layout modifier to handle X events
Andrea Rossato <andrea.rossato@unibz.it>**20080224112432] 
[tabs
Don Stewart <dons@galois.com>**20080317224758] 
[WindowProperties: fix documentation
Brent Yorgey <byorgey@gmail.com>**20080318204540] 
[Move window properties to a separate Util module
Roman Cheplyaka <roma@ro-che.info>**20080318165658
 Add XMonad.Util.WindowProperties
 Modify XMonad.Layout.IM.hs to use WindowProperties.
] 
[XMonad.Layout.NoBorders: always unborder fullscreen floating windows, even when there are multiple screens
Lukas Mai <l.mai@web.de>**20080317183043] 
[MagicFocus: reimplement as a LayoutModifier, fix bug (MagicFocus didn't pass on messages to underlying layouts)
Brent Yorgey <byorgey@gmail.com>**20080317193008] 
[WindowGo.hs: improve description
gwern0@gmail.com**20080316223946
 I'm still not sure whether the description makes sense if you don't already understand the idea.
] 
[Run.hs: improve haddock
gwern0@gmail.com**20080316223219
 This module too was causing horizontal scrolling because of the shell command. I managed to discover that you only need to specify 'png:' *or* "foo.png", not both, which trimmed off enough characters.
 Also, I improved the docs for my functions.
] 
[XSelection.hs: improved haddockf formatting, more links, & cpedit
gwern0@gmail.com**20080316222050] 
[Search.hs: try to add a more descriptive type
gwern0@gmail.com**20080316215728] 
[improve the formatting for WindowGo.hs
gwern0@gmail.com**20080316215642] 
[Search.hs: haddock fmt
gwern0@gmail.com**20080316213914
 This removes whitespace in source code snippets. Because Haddock renders quoted source code as monospaced unwrappable text, the excess whitespace meant you would have to scroll horizontally, unpleasantly.
] 
[Add XMonad.Actions.Promote
xmonad@s001.hethrael.com**20080316205722] 
[LayoutCombinators: improve documentation (closes ticket #136)
Brent Yorgey <byorgey@gmail.com>**20080316195826] 
[Xmonad.Layout.NoBorders: make smartBorders unborder fullscreen floating windows (bug 157)
Lukas Mai <l.mai@web.de>**20080316042941] 
[Xmonad.Prompt.DirExec: fix haddock error
Lukas Mai <l.mai@web.de>**20080316042840] 
[EwmhDesktops: advertise support for _NET_CLIENT_LIST_STACKING
Alec Berryman <alec@thened.net>**20080315212631] 
[ScratchWorkspace: update to work with runLayout changes
Brent Yorgey <byorgey@gmail.com>**20080311212908] 
[Scratchpad: update to work with runLayout changes
Brent Yorgey <byorgey@gmail.com>**20080311181715] 
[MagicFocus: update to work with runLayout changes
Brent Yorgey <byorgey@gmail.com>**20080311181625] 
[LayoutScreens: update to work with runLayout changes
Brent Yorgey <byorgey@gmail.com>**20080311181537] 
[Combo: update to work with runLayout changes
Brent Yorgey <byorgey@gmail.com>**20080311181400] 
[MultiToggle: fix to work with runLayout changes to core
Brent Yorgey <byorgey@gmail.com>**20080311172046] 
[PerWorksapce: use a safer False as default
Andrea Rossato <andrea.rossato@unibz.it>**20080223075531] 
[PerWorkspace: reimplemented using runLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080222175954
 This way we have a Xinerama safe PerWorkspace and the emptyLayout
 method for free.
] 
[ToggleLayouts: reimplemented with runLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080223081553] 
[LayoutCombinators: NewSelect reimplemented with runLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080223080958] 
[LayoutModifier: reimplement ModifiedLayout using runLayout and more
Andrea Rossato <andrea.rossato@unibz.it>**20080223075610
 - change modifyLayout type to get the Workspace
 - updated ResizeScreen and ManageDocks accordingly.
] 
[Combo: updated to latest runLayout changes
Andrea Rossato <andrea.rossato@unibz.it>**20080222175924] 
[EZConfig: add documentation and a warning, so no one repeats my silly hard-to-track-down mistake.
Brent Yorgey <byorgey@gmail.com>**20080311172610] 
[fix WorkspaceDir to work when there are multiple screens.
David Roundy <droundy@darcs.net>**20080311221201
 In particlar, ScratchWorkspace broke this.
] 
[Fix to work with "floats always use current screen" patch
robreim@bobturf.org**20080308024928] 
[Fix ThreeColumns doc.
Roman Cheplyaka <roma@ro-che.info>**20080307203022] 
[Shell: add support for UTF-8 locales
Andrea Rossato <andrea.rossato@unibz.it>**20080302095924] 
[Font and XUtils: add UTF-8 support and various fixes related to XFT
Andrea Rossato <andrea.rossato@unibz.it>**20080302095712
 - printStringXMF: use the background color for XFT fonts too
 - textWidthXMF now returns the text width even with xft fonts
 - textExtentsXMF will now return only the ascend and the descent of a
   string.
 - stringPosition now takes the display too
 - add support for UTF-8 locales: if the contrib library is compiled
   with the 'with_xft' or the 'with_utf8' option the prompt and the
   decoration system will support UTF-8 locales - this requires
   utf8-strings.
] 
[Ssh: coding style
Andrea Rossato <andrea.rossato@unibz.it>**20080229100346] 
[Ssh: complete known hosts with non standard ports too
Andrea Rossato <andrea.rossato@unibz.it>**20080229095014] 
[Fix xmonadPromptC and use it.
nicolas.pouillard@gmail.com**20080306163928] 
[Documentation typo about UpdatePointer.
nicolas.pouillard@gmail.com**20080306163516] 
[Fix ToggleOff: It was adding 0.1 to the magnification.
Braden Shepherdson <Braden.Shepherdson@gmail.com>**20080305222302] 
[Removed WmiiActions module.
Juraj Hercek <juhe_xmonad@hck.sk>**20080305082336] 
[Adjusted signature of DirExec module functions.
Juraj Hercek <juhe_xmonad@hck.sk>**20080301171905
   - added parameter for function which executes the selected program
   - renamed dirExecPromptWithName to dirExecPromptNamed
] 
[Import of new DirExec module.
Juraj Hercek <juhe_xmonad@hck.sk>**20080229212257
   - allows execution of executable files from specific directory
] 
[Hooks.DynamicLog: export xmobarPP
Dmitry Kurochkin <dmitry.kurochkin@gmail.com>**20080303215637] 
[Magnifier: fix behavior for windows on the bottom + right of the screen.  Now all magnified windows will be the same size, possibly shifted in order to fit completely on the screen.
Brent Yorgey <byorgey@gmail.com>**20080303204619] 
[Changed semantics of UpdatePointer to move to nearest point
robreim@bobturf.org**20080301143126] 
[UpdatePointer XMonadContrib module
robreim@bobturf.org**20080301134401] 
[Util.Run: minor clarification in comment
gwern0@gmail.com**20080303051513] 
[Add XMonad.Actions.PerWorkspaceKeys
Roman Cheplyaka <roma@ro-che.info>**20080302202346] 
[Haddock fix: Changed URL-Markup
Dominik Bruhn <dominik@dbruhn.de>**20080302185435] 
[make smartBorders ignore screens with no dimensions.
David Roundy <droundy@darcs.net>**20080308224244] 
[rewrite ScratchWorkspace to make scratch always visible, but not always on screen.
David Roundy <droundy@darcs.net>**20080308223830] 
[add HiddenNonEmptyWS to CycleWS to avoid workspaces already visible.
David Roundy <droundy@darcs.net>**20080308223717] 
[switch Droundy to smartBorders (which works better with ScratchWorkspace).
David Roundy <droundy@darcs.net>**20080301191103] 
[XMonad.Layout.Simplest: add FlexibleInstances pragma
Lukas Mai <l.mai@web.de>**20080301061714] 
[XMonad.Layout.ScratchWorkspace: avoid warnings, make tests compile again
Lukas Mai <l.mai@web.de>**20080301061625] 
[implement ScratchWorkspace.
David Roundy <droundy@darcs.net>**20080229224316] 
[in Prompt.Workspace sort by official workspace order.
David Roundy <droundy@darcs.net>**20080229223047] 
[simplify Simplest--allow it to apply to non-Windows.
David Roundy <droundy@darcs.net>**20080229221326] 
[XMonad.Actions.MouseGestures.mkCollect: generalize type
Lukas Mai <l.mai@web.de>**20080229211732] 
[Add bottom-tabbed layout.
Roman Cheplyaka <roma@ro-che.info>**20080229155120] 
[XMonad.Actions.MouseGestures: refactoring, code simplification
Lukas Mai <l.mai@web.de>**20080229002136
 
 It is now possible to get "live" status updates while the gesture handler
 is running. I use this in my xmonad.hs to print the current gesture to my
 status bar. Because collecting movements is now the callback's job, the
 implementation of mouseGestureH got quite a bit simpler. The interface is
 incompatible with the previous mouseGestureH but the old mouseGesture
 function works as before.
 
] 
[EZConfig: additional documentation
Brent Yorgey <byorgey@gmail.com>**20080227164602] 
[XMonad.Util.Scratchpad: change 'XConfig Layout' to 'XConfig l', to avoid type mismatches; the exact layout type doesn't actually matter
Brent Yorgey <byorgey@gmail.com>**20080227014201] 
[EZConfig: add an emacs-style keybinding parser!
Brent Yorgey <byorgey@gmail.com>**20080226222723
 Now, instead of writing out incredibly dull things like
 
   ((modMask conf .|. controlMask .|. shiftMask, xK_F2), ...)
 
 you can just write
 
   ("M-C-S-<F2>", ...)
 
 Hooray!
] 
[Xmonad.Actions.MouseGestures: generalize interface, allow hooks
Lukas Mai <l.mai@web.de>**20080226202639] 
[update inactive debugging code in MouseGestures; no visible changes
Lukas Mai <l.mai@web.de>**20071109020755] 
[Scratchpad terminal
Braden Shepherdson <Braden.Shepherdson@gmail.com>**20080225183633
 
 Key binding and ManageHook to pop up a small, floating terminal window for a few quick commands.
 
 Combined with a utility like detach[1], makes a great X application launcher.
 
 Requires my two new ManageHooks (doRectFloat, specifically).
 
 [1] http://detach.sourceforge.net
] 
[Two new floating window ManageHooks.
Braden Shepherdson <Braden.Shepherdson@gmail.com>**20080225183337
 
 Adds doRectFloat, which floats the new window in the given rectangle; and doCenterFloat, which floats the 
 new window with its original size, but centered.
] 
[Fix usage doc.
Roman Cheplyaka <roma@ro-che.info>**20080225062330] 
[Fix haddock hyperlink.
Roman Cheplyaka <roma@ro-che.info>**20080224205416] 
[Add XMonad.Layout.IM
Roman Cheplyaka <roma@ro-che.info>**20080221085752] 
[Export XMonad.Layout.Grid.arrange (for use in XMonad.Layout.IM)
Roman Cheplyaka <roma@ro-che.info>**20080221062204] 
[Decoration: some haddock updates
Andrea Rossato <andrea.rossato@unibz.it>**20080220214934] 
[Small refactoring.
Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20080210224756] 
[Fixed off-by-one error which broke strut handling for some panels.
Nils Anders Danielsson <nils.anders.danielsson@gmail.com>**20080210222600] 
[Decoration: fix an issue with decoration window creation and more
Andrea Rossato <andrea.rossato@unibz.it>**20080220204355
 - fix a bug reported by Roman Cheplyaka: when decorate returned
   Nothing the window was never going to be created, even if decorate
   was reporting a Just Rectangle in the next run. Quite a deep issue,
   still visible only with TabbedDecoration at the present time.
 - remove decorateFirst (decorate has enough information to decide
   whether a window is the first one or not, am I right, David?)
 - some point free.
] 
[DynamicLog.hs: haddock fix
Andrea Rossato <andrea.rossato@unibz.it>**20080220204033
 
 Someone forgot to check if her patch was going to break haddock docs
 generation or not. So, while I was recording a patch with quite a long
 description I had to manually write - sound strange? -, I found out
 that my patch did not pass the tests, because of this haddock problem
 left behind.
 
 And so I fixed it, recorded this patch, with the hope the my next
 description of the next patch I'm going to record will survive the
 test suite we created to avoid this kind of problems for.
] 
[improvements to XMonad.Hooks.DynamicLog, and new contrib module XMonad.Util.Loggers
Brent Yorgey <byorgey@gmail.com>**20080219210128
 Improvements to DynamicLog include:
   * Greatly expanded and improved documentation and examples
   * remove seemingly useless makeSimpleDzenConfig function
   * factor out xmobarPP
   * add new ppExtras field to PP record, for specifying 'extra'
     loggers which can supply information other than window title,
     layout, and workspace status to a status bar (for example, time and date,
     battery status, mail status, etc.)
 
 The new XMonad.Util.Loggers module provides some example loggers that 
 can be used in the new ppExtras field of the PP record.  Create your own,
 add them to this module, go crazy! =)
 
] 
[LayoutHints: fix a wrong fix
Andrea Rossato <andrea.rossato@unibz.it>**20080219165127
 The case analisys of my fix should be the other way around... this is
 the real fix.
] 
[Arossato: updated to latest changes
Andrea Rossato <andrea.rossato@unibz.it>**20080219163058] 
[Decoration: comment only
Andrea Rossato <andrea.rossato@unibz.it>**20080219161339
 This is a detailed commentary of all the code.
] 
[Decoratione: generate rectangles first, and create windows accordingly
Andrea Rossato <andrea.rossato@unibz.it>**20080219122115
 With this patch Decoration will first generate a rectangle and only if
 there is a rectangle available a window will be created.
 
 This makes the Decoration state a bit more difficult to process, but
 should reduce resource consumption.
] 
[Fix doc for Tabbed
Roman Cheplyaka <roma@ro-che.info>**20080219055650] 
[Tabbed and TabBarDecoration: no need to implement decorateFirst (the default is used)
Andrea Rossato <andrea.rossato@unibz.it>**20080218184950] 
[TabBarDecoration: simpleTabBar automatically applies resizeVertical
Andrea Rossato <andrea.rossato@unibz.it>**20080218180922
 Added some comments too.
] 
[DwmStyle: comment fix only
Andrea Rossato <andrea.rossato@unibz.it>**20080218180727] 
[ResizeScreen: add resizeHorizontalRight and resizeVerticalBottom
Andrea Rossato <andrea.rossato@unibz.it>**20080218180504] 
[Add TabBarDecoration, a layout modifier to add a bar of tabs to any layout
Andrea Rossato <andrea.rossato@unibz.it>**20080218161121
 ... and port DecorationMadness to the new system.
] 
[add Eq superclass to DecorationStyle and change styles in order not to decorate non managed windows
Andrea Rossato <andrea.rossato@unibz.it>**20080218131320] 
[Refactor MouseResize, remove isDecoration and introduce isInStack, isVisible, isInvisible
Andrea Rossato <andrea.rossato@unibz.it>**20080218105726
 This patch includes several changes, which are strictly related and
 cannot be recorded separately:
 - remove Decoraion.isDecoartion and introduce Decoration.isInStack
   (with the related change to LayoutHints)
 - in Decoration introduce useful utilities: isVisible, isInvisible,
   isWithin and lookFor'
 - MouseResize: - invisible inputOnly windows will not be created;
 	       - fix a bug in the read instance which caused a failure
                  in the state deserialization.
] 
[Prompt: regenerate completion list if there's just one completion
Andrea Rossato <andrea.rossato@unibz.it>**20080217132734] 
[Prompt.Theme: use mkComplFunFromList' to generate completions
Andrea Rossato <andrea.rossato@unibz.it>**20080217124453] 
[some code formatting
Andrea Rossato <andrea.rossato@unibz.it>**20080217124434] 
[Prompt: comment only (clafiry completionToCommand uses)
Andrea Rossato <andrea.rossato@unibz.it>**20080216181620] 
[Prompt: comment only (remove confusing remarks about commandToComplete)
Andrea Rossato <andrea.rossato@unibz.it>**20080216180412] 
[Prompt: haddock fixes only
Andrea Rossato <andrea.rossato@unibz.it>**20080216172331] 
[Prompt.XMonad: use mkComplFunFromList' to get all the completions with an empty command line
Andrea Rossato <andrea.rossato@unibz.it>**20080216133949] 
[Prompt.Window: remove unneeded and ugly escaping/unescaping
Andrea Rossato <andrea.rossato@unibz.it>**20080216133842] 
[Theme: move theme's nextCompletion implementation to Prompt.getNextCompletion
Andrea Rossato <andrea.rossato@unibz.it>**20080216133738] 
[Shell: escape the string in the command line only
Andrea Rossato <andrea.rossato@unibz.it>**20080216133651] 
[Prompt: add some methods to make completions more flexible
Andrea Rossato <andrea.rossato@unibz.it>**20080216133454
 - now it is possible to decide if the prompt will complete the last
   word of the command line or the whole line (default is the last
   word);
 - completing the last word can be fine tuned by implementing
   'commandToComplete' and 'completionToCommand': see comments for
   details;
 - move mkComplFunFromList' from TagWindows to Prompt.
] 
[Prompt.Theme: display all theme information and handle completion accordingly
Andrea Rossato <andrea.rossato@unibz.it>**20080216114159] 
[Prompt.Shell: if there's just one completion and it is a directory add a trailing slash
Andrea Rossato <andrea.rossato@unibz.it>**20080216114005] 
[Prompt: added nextCompletion and commandToComplete methods to fine tune prompts' completion functions
Andrea Rossato <andrea.rossato@unibz.it>**20080216113723] 
[Util.Themes: add ppThemeInfor to render the theme info
Andrea Rossato <andrea.rossato@unibz.it>**20080216113635] 
[DecorationMadness: resizable layouts now use MouseResize too
Andrea Rossato <andrea.rossato@unibz.it>**20080212173645] 
[SimpleFloat now uses MouseResize
Andrea Rossato <andrea.rossato@unibz.it>**20080212173615] 
[Add Actions.MouseResize: a layout modifier to resize windows with the mouse
Andrea Rossato <andrea.rossato@unibz.it>**20080212173455] 
[Decoration: remove mouse resize and more
Andrea Rossato <andrea.rossato@unibz.it>**20080212165306
 - since mouse resize is not related to decoration, I removed the code
   from here. Mouse resize will be handled by a separated layout
   modifier (in a separated module)
 - now also stacked decoration will be removed (I separated insert_dwr
   from remove_stacked)
] 
[Decoration.hs: variable names consistency only
Andrea Rossato <andrea.rossato@unibz.it>**20080211123056] 
[Tabbed and SimpleTabbed (in DecorationMadness) define their own decorationMouseDragHook method
Andrea Rossato <andrea.rossato@unibz.it>**20080211114043
 ... to disable mouse drag in tabbed layouts
] 
[Decoration: DecorationStyle class cleanup and focus/drag unification
Andrea Rossato <andrea.rossato@unibz.it>**20080211113650
 - moved decoEventHook to decorationEventHook
 - added decorationMouseFocusHook, decorationMouseDragHook,
   decorationMouseResizeHook methods
 - added a handleMouseFocusDrag to focus and drag a window (which makes
   it possible to focus *and* drag unfocused windows too
] 
[Refactor XMonad.Hooks.DynamicLog
Roman Cheplyaka <roma@ro-che.info>**20080210222406
 This allows using DynamicLog not only for statusbar.
] 
[DecorationMadness: comment only
Andrea Rossato <andrea.rossato@unibz.it>**20080210131427] 
[DecorationMadness: added a few floating layouts
Andrea Rossato <andrea.rossato@unibz.it>**20080210122523] 
[SimpleFloat: export SimpleFloat and add documentation
Andrea Rossato <andrea.rossato@unibz.it>**20080210113159] 
[Move DefaultDecoration from DecorationMadness to Decoration
Andrea Rossato <andrea.rossato@unibz.it>**20080210104304] 
[Themes: added robertTheme and donaldTheme
Andrea Rossato <andrea.rossato@unibz.it>**20080210083016] 
[DecorationMadness: make tunable tabbed layouts respect the Theme decoHeight field
Andrea Rossato <andrea.rossato@unibz.it>**20080210075322] 
[ScreenResize: vertical and horizontal now respond to SetTheme
Andrea Rossato <andrea.rossato@unibz.it>**20080210074544
 And so they will change the screen dimension accordingly.
] 
[WindowGo.hs: fix syntax in example
Brent Yorgey <byorgey@gmail.com>**20080209225135] 
[+doc for WindowGo.hs: I've discovered a common usecase for me for raiseMaybe
gwern0@gmail.com**20080205032155] 
[Run.hs: add an option to runinterms
gwern0@gmail.com**20080205031824
 It turns out that for urxvt, and most terminal, apparently, once you give a '-e' option, that's it.
 They will not interpret anything after that as anything but input for /bin/sh, so if you wanted to go 'runInTerm "'screen -r session' -title IRC"',
 you were SOL - the -title would not be seen by urxvt. This, needless to say, is bad, since then you can't do stuff like set the title which means
 various hooks and extensions are helpless. This patch adds an extra options argument which is inserted *before* the -e. If you want the old behaivour,
 you can just go 'runInTerm "" "executable"', but now if you need to do something extra, 'runInTerm "-title mutt" "mutt"' works fine.
 
 This patch also updates callers.
] 
[Add DecorationMadness: a repository of weirdnesses
Andrea Rossato <andrea.rossato@unibz.it>**20080209182515] 
[Decoration: change mouseEventHook to decoEventHook and more
Andrea Rossato <andrea.rossato@unibz.it>**20080209165101
 Fix also the problem with window's movement when the grabbing starts
] 
[Tabbed: add simpleTabbed and fx documentation
Andrea Rossato <andrea.rossato@unibz.it>**20080209163917
 simpleTabbed is just a version of tabbed with default theme and
 default srhinker.
] 
[Arossato: update to latest changes
Andrea Rossato <andrea.rossato@unibz.it>**20080208140604] 
[Decoration: enable mouse dragging of windows
Andrea Rossato <andrea.rossato@unibz.it>**20080208083602] 
[WindowArranger: add a SetGeometry message - needed to enable mouseDrag
Andrea Rossato <andrea.rossato@unibz.it>**20080208083413] 
[Decoration: add a mouseEventHook methohd and move mouse button event there
Andrea Rossato <andrea.rossato@unibz.it>**20080208073514] 
[Util.Thems: some more typos in comments
Andrea Rossato <andrea.rossato@unibz.it>**20080207233341] 
[Util.Themes: documentation and export list (added themes that have been left out)
Andrea Rossato <andrea.rossato@unibz.it>**20080207232251] 
[Prompt.Theme: comments and some point-free
Andrea Rossato <andrea.rossato@unibz.it>**20080207232155] 
[oxymor00nTheme
<its.sec@gmx.net>**20080207213100] 
[add swapScreen to CycleWS
<its.sec@gmx.net>**20080206191032
 * add support for swapping the workspaces on screens to CycleWS
] 
[Decoration: consistency of variable names
Andrea Rossato <andrea.rossato@unibz.it>**20080207191442
 Since the configuration is now called Theme, the variable 'c' is now a
 't'
] 
[Add Prompt.Theme: a prompt for dynamically applying a theme to the current workspace
Andrea Rossato <andrea.rossato@unibz.it>**20080207184321] 
[Decoration: add a SetTheme message and releaseResources
Andrea Rossato <andrea.rossato@unibz.it>**20080207184048
 ...which should make it harder to forget to release the font structure.
] 
[cabal file: respect alphabetic order for modules
Andrea Rossato <andrea.rossato@unibz.it>**20080207183153] 
[Add Util.Themes to collect user contributed themes
Andrea Rossato <andrea.rossato@unibz.it>**20080207182843] 
[SimpleFloat: comment only
Andrea Rossato <andrea.rossato@unibz.it>**20080207182438] 
[Update to safer initColor api
Don Stewart <dons@galois.com>**20080206192232] 
[use Util.WorkspaceCompare in Prompt.Workspace.
David Roundy <droundy@darcs.net>**20080206004057] 
[roll back to previous version of Droundy.hs.
David Roundy <droundy@darcs.net>**20080205204043
 
 A cleaner WindowNavigation fix made the separation of tabbed and addTabs
 not strictly necessary (but still a desireable possibility in my opinion,
 as it allows pretty decoration of non-composite layouts that might want to
 have some of their windows tabbed.
] 
[make WindowNavigation ignore decorations.
David Roundy <droundy@darcs.net>**20080205203556] 
[make tabbed work nicely with LayoutCombinators and WindowNavigation.
David Roundy <droundy@darcs.net>**20080205202343
 The problem is that WindowNavigation assumes all windows are navigable, and
 it was getting confused by decorations.  With a bit of work, we can
 decorate windows *after* combining layouts just fine.
] 
[make WindowNavigation work when windows are stacked.
David Roundy <droundy@darcs.net>**20080205202027] 
[ XMonad.Actions.WindowGo: add a runOrRaise module for Joseph Garvin with the help of Spencer Janssen
gwern0@gmail.com**20080204173402] 
[enable proper handling of panels in droundy config.
David Roundy <droundy@darcs.net>**20080204030843] 
[enable button click for focus in tabbed.
David Roundy <droundy@darcs.net>**20080204010536
 Note that this patch doesn't work with
 
 Thu Dec 27 03:03:56 EST 2007  Spencer Janssen <sjanssen@cse.unl.edu>
   * Broadcast button events to all layouts, fix for issue #111
 
 but this isn't a regression, since button events have never worked with
 tabbed and this change.
] 
[in Decoration, remove windows that are precisely hidden underneath other windows.
David Roundy <droundy@darcs.net>**20080204005413
 This is needed for WindowNavigation to work properly with the new
 Decorations framework.
] 
[switch tabbed back to using Simplest (so tabs will be shown).
David Roundy <droundy@darcs.net>**20080204005350] 
[CycleWS: change example binding for toggleWS from mod-t to mod-z.  example bindings shouldn't conflict with default key bindings.
Brent Yorgey <byorgey@gmail.com>**20080201202126] 
[REMOVE RotView: use CycleWS instead.
Brent Yorgey <byorgey@gmail.com>**20080201180618
 See CycleWS docs for info on switching, or just look at the changes to
 XMonad.Config.Droundy.
] 
[CycleWS: add more general functionality that now subsumes the functionality of RotView.  Now with parameterized workspace sorting and predicates!
Brent Yorgey <byorgey@gmail.com>**20080201121524] 
[WorkspaceCompare: some refactoring.
Brent Yorgey <byorgey@gmail.com>**20080201120430
   * Export WorkspaceCompare and WorkspaceSort types.
   * Extract commonality in sort methods into mkWsSort, which creates
     a workspace sort from a workspace comparison function.
   * Rename getSortByTag to getSortByIndex, since it did not actually sort
     by tag at all; it sorts by index of workspace tags in the user's config.
   * Create a new getSortByTag function which actually does sort
     lexicographically by tag.
   * Enhance documentation.
] 
[Search.hs: haddock cleanup
Brent Yorgey <byorgey@gmail.com>**20080131161948] 
[Added a handy tip to the documentation of XMonad.Actions.Search
v.dijk.bas@gmail.com**20080131122620
 The tip explains how to use the submap action to create a handy submap of keybindings for searching.
] 
[Make LayoutHints a decoration aware layout modifier
Andrea Rossato <andrea.rossato@unibz.it>**20080131082314] 
[Remove LayoutCombinator class and revert PerWorkspace to its Maybe Bool state
Andrea Rossato <andrea.rossato@unibz.it>**20080131063929
 As I said in order to have a CombinedLayout type instace of
 LayoutClass and a class for easily writing pure and impure combinators
 to be feeded to the CombinedLayout together with the layouts to be
 conbined, there's seems to be the need to change the type of the
 LayoutClass.description method from l a -> String to l a -> X String.
 
 Without that "ugly" change - loosing the purity of the description
 (please note the *every* methods of that class unless description
 operates in the X monad) - I'm plainly unable to write something
 really useful and maintainable. If someone can point me in the right
 direction I would really really appreciate.
 
 Since, in the meantime, PerWorkspace, which has its users, is broken
 and I broke it, I'm reverting it to it supposedly more beautiful
 PerWorkspac [WorkspaceId] (Maybe Bool) (l1 a) (l2 a) type.
] 
[Extending.hs: documentation update
Brent Yorgey <byorgey@gmail.com>**20080131012728] 
[DynamicLog: lots of additional documentation; add byorgeyPP as an example dzen config
Brent Yorgey <byorgey@gmail.com>**20080130205219] 
[Extended PP with sorting algorithm specification and added xinerama sorting
Juraj Hercek <juhe_xmonad@hck.sk>**20080109154923
   algorithm
   - idea is to specify sorting algorithm from user's xmonad.hs
   - xinerama sorting algorithm produces same ordering as
     pprWindowSetXinerama
   - default ppSort is set to getSortByTag, so the default functionality
     is the same as it was before
] 
[SimpleDecoration: export defaultTheme
Andrea Rossato <andrea.rossato@unibz.it>**20080130124609] 
[Various decorations related updates
Spencer Janssen <sjanssen@cse.unl.edu>**20080130064624
  * remove deprecated TConf stuff
  * Remove 'style' from DeConf
  * Change DeConf to Theme
  * share defaultTheme across all decorations
] 
[TwoPane: add description string
Joachim Fasting <joachim.fasting@gmail.com>**20080126141332] 
[add XMonad.Actions.CycleSelectedLayouts
Roman Cheplyaka <roma@ro-che.info>**20080116205020] 
[Search.hs: add documentation and two more search engines (MathWorld and Google Scholar)
Brent Yorgey <byorgey@gmail.com>**20080128190443] 
[xmonad-contrib.cabal: add build-type field to get rid of Cabal warning
Brent Yorgey <byorgey@gmail.com>**20080128190137] 
[LayoutCombinator class: code clean up
Andrea Rossato <andrea.rossato@unibz.it>**20080129224952
 - ComboType becomes CombboChooser
 - removed the stupid doFirst
 - better comboDescription default implemenation
] 
[Add a LayoutCombinator class and a CombinedLayout and port PerWorkspace to the new system
Andrea Rossato <andrea.rossato@unibz.it>**20080129192903] 
[Named: reimplemented as a LayoutModifier and updated Config.Droundy accordingly
Andrea Rossato <andrea.rossato@unibz.it>**20080128161343] 
[LayoutModifier: add modifyDescription for completely override the modified layout description
Andrea Rossato <andrea.rossato@unibz.it>**20080128160614] 
[Make ToggleLayouts and Named implement emptyLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080128151535] 
[Decoration: the fontset must be released even when we don't decorate the first window
Andrea Rossato <andrea.rossato@unibz.it>**20080128004411
 This is quite an old bug! It affected Tabbed since the very beginning..;)
] 
[Decoration: I forgot we need to release the fontset too!
Andrea Rossato <andrea.rossato@unibz.it>**20080127233521] 
[Decoration: after deleting the windows we must update the layout modifier
Andrea Rossato <andrea.rossato@unibz.it>**20080127231815
 Thanks to Feuerbach for reporting this.
] 
[Reflect: reimplemented as a layout modifier (which makes it compatible with windowArranger and decoration)
Andrea Rossato <andrea.rossato@unibz.it>**20080127165854] 
[SimpleFLoat: change the description to Float (Simple is the decoration description)
Andrea Rossato <andrea.rossato@unibz.it>**20080127144556] 
[ManageDocks: implement AvoidStruts as a layout modifier
Andrea Rossato <andrea.rossato@unibz.it>**20080127144301] 
[ResizeScreen has been rewritten as a layout modifier
Andrea Rossato <andrea.rossato@unibz.it>**20080127140837] 
[LayoutModifier add a modifyLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080127140219
 Many layouts are written as layout modifiers because they need to
 change the stack of the rectangle before executing doLayout.
 
 This is a major source of bugs. all layout modifiers should be using the
 LayoutModifier class. This method (modifyLayout) can be used to
 manipulate the rectangle and the stack before running doLayout by the
 layout modifier.
] 
[Make LayoutCombinators deal with emptyLayout
Andrea Rossato <andrea.rossato@unibz.it>**20080127092415] 
[Add ResizeScreen, a layout modifier for modifing the screen geometry
Andrea Rossato <andrea.rossato@unibz.it>**20080127010755] 
[WindowArranger can now arrange all windows
Andrea Rossato <andrea.rossato@unibz.it>**20080126233053
 This is useful for SimpleFloat, whose state can now persists across
 layout switches.
] 
[Arossato: updated my config to recent changes
Andrea Rossato <andrea.rossato@unibz.it>**20080126205638] 
[Add SimpleFloat a very basic floating layout that will place windows according to their size hints
Andrea Rossato <andrea.rossato@unibz.it>**20080126205410] 
[WindoWrranger: export the WindowArranger type (see the upcoming SimpleFloat)
Andrea Rossato <andrea.rossato@unibz.it>**20080126204605] 
[ShowWName: show the name of empty layouts too
Andrea Rossato <andrea.rossato@unibz.it>**20080126190214] 
[ManageDocks: add emptyLayout definition for supporting the new decoration framework
Andrea Rossato <andrea.rossato@unibz.it>**20080126185936] 
[Decoration: code formatting only
Andrea Rossato <andrea.rossato@unibz.it>**20080126101354] 
[export DeConfig to avoid importing Decoration
Andrea Rossato <andrea.rossato@unibz.it>**20080126101049] 
[Prompt: code formatting only
Andrea Rossato <andrea.rossato@unibz.it>**20080126093234] 
[Don't export TConf anymore and export DeConfig instead
Andrea Rossato <andrea.rossato@unibz.it>**20080126092141
 WARNING: this patch may be breaking your configuration. While it is
 still possible to use:
 
 tabbed shrinkText defaultTConf
 
 updating the fields of the defaultTConf record is not possible
 anymore, since the type TConf is now hidden.
 
 WARNING: "tabSize" has been substituted by "decoHeight"
 
 You can change your configuration this way:
 myTConf :: TConf
 myTConf = defaultTConf
        { tabSize = 15
        , etc....
 
 becomes:
 myTConf :: DeConfig TabbedDecoration Window
 myTConf = defaultTabbedConfig
        { decoHeight = 15
        , etc....
 
 and
 tabbed shrinkText myTConf
 
 becomes:
 tabDeco shrinkText myTConf
 
] 
[Tabbed now uses Decoration
Andrea Rossato <andrea.rossato@unibz.it>**20080125152311] 
[Add DwmStyle, a layout modifier to add dwm-style decorations to windows in any layout
Andrea Rossato <andrea.rossato@unibz.it>**20080125152152] 
[Adde SimpleDecoration, a layout modifier to add simple decorations to windows in any layout
Andrea Rossato <andrea.rossato@unibz.it>**20080125152106] 
[Add Layout.Simplest, the simplest layout
Andrea Rossato <andrea.rossato@unibz.it>**20080125152015] 
[Add Decoration, a layout modifier and a class for easily writing decorated layouts
Andrea Rossato <andrea.rossato@unibz.it>**20080125151726] 
[Add WindowArranger, a layout modifier to move and resize windows with the keyboard
Andrea Rossato <andrea.rossato@unibz.it>**20080125151633] 
[ShowWName: moved fi to XUtils
Andrea Rossato <andrea.rossato@unibz.it>**20080124134725] 
[XUtils: add functions for operating on lists of windows and export fi
Andrea Rossato <andrea.rossato@unibz.it>**20080124134638] 
[LayoutModifier: add emptyLayoutMod for dealing with empty workspaces
Andrea Rossato <andrea.rossato@unibz.it>**20080124015605] 
[LayoutModifier: add pureMess and pureModifier to the LayoutModifier class
Andrea Rossato <andrea.rossato@unibz.it>**20080122111319] 
[Layout.ShowWName: generalize the instance
Andrea Rossato <andrea.rossato@unibz.it>**20080115045139] 
[add emptyLayout to MultiToggle
Lukas Mai <l.mai@web.de>**20080128175313] 
[grammar fix
Lukas Mai <l.mai@web.de>**20080128175059] 
[TAG 0.6
Spencer Janssen <sjanssen@cse.unl.edu>**20080127222114] 
[depend on xmonad-0.6
Spencer Janssen <sjanssen@cse.unl.edu>**20080127221101] 
[Bump version to 0.6
Spencer Janssen <sjanssen@cse.unl.edu>**20080127211504] 
[I use urxvtc now
Spencer Janssen <sjanssen@cse.unl.edu>**20080127211452] 
[Update the test hook
Spencer Janssen <sjanssen@cse.unl.edu>**20080127205148] 
[add 'single' helper function
Lukas Mai <l.mai@web.de>**20080117234550] 
[documentation fix
Lukas Mai <l.mai@web.de>**20080117234401] 
[style assimilation
Lukas Mai <l.mai@web.de>**20080117234059] 
[cleared up transience to better highlight how to use ManageHooks properly
xmonad-contrib@hexago.nl**20080102074810
 
 The initial patch that extended the EDSL for writing ManageHook rules did not come with a good example on how to use it.  This patch ammends that. 'move' is an example of how to write a rule to resolve a Query (Maybe a) into something tangible.  'move'' is an example of how to write a rule isolating window managing code from the rest ofthe mess the EDSL creates.
] 
[expands the EDSL for performing actions on windows
xmonad-contrib@hexago.nl**20080101174446
 
 This patch adds a few types of relationships and operators for managing windows with rules.  It provides grouping operators so the X action can access the quantifier that was matched or not matched.  It provides a formalism for predicates that work in both grouping and non grouping rules.  It could do with some classes, so that there are fewer operators that always do the Right Thing (TM), but the Haskell Type system currently has some problems resolving types.  Since I don't know enough about these high level things, it would be hard to create a GHC patch just to make it all work.
] 
[-Werror when flag(testing) only
Spencer Janssen <sjanssen@cse.unl.edu>**20080118015207] 
[Timer: some code cleanup
Andrea Rossato <andrea.rossato@unibz.it>**20080114211114] 
[Use doubleFork instead of manual double fork, or buggy single fork.
nicolas.pouillard@gmail.com**20080114202833
 
 This fixes showWName because Timer was leaking zombie processes.
 You should update xmonad, since doubleFork was not exported.
] 
[Reflect.hs: minor haddock fix
Brent Yorgey <byorgey@gmail.com>**20080116203546] 
[Reflect.hs: use -fglasgow-exts for now instead of LANGUAGE pragmas, for compatibility with ghc 6.6
Brent Yorgey <byorgey@gmail.com>**20080115194811] 
[Reflect.hs: add MultiToggle support
Brent Yorgey <byorgey@gmail.com>**20080115193519] 
[MultiToggle.hs: improve 'description' implementation in LayoutClass instance to display the current transformed layout rather than just 'MultiToggle'
Brent Yorgey <byorgey@gmail.com>**20080115193311] 
[Layout.Reflect: new contrib module for reflecting layouts horizontally/vertically
Brent Yorgey <byorgey@gmail.com>**20080115030947] 
[ShowWName.hs: switch color/bgcolor in call to paintAndWrite
Brent Yorgey <byorgey@gmail.com>**20080114153821] 
[Prompt: clean up and optimize moveWord a bit
Andrea Rossato <andrea.rossato@unibz.it>**20080113164745] 
[Prompt: added moveWord to move the cursor to the word boundaries
Andrea Rossato <andrea.rossato@unibz.it>**20080113123529
 The actions have been bound to ctrl+Left and Right
] 
[Doc.Extending: added links and description of recent module addition
Andrea Rossato <andrea.rossato@unibz.it>**20080113093211] 
[Action.Search: small haddock fixes
Andrea Rossato <andrea.rossato@unibz.it>**20080113092646] 
[ShowWName now uses Timer and XUtils to display the workspace name
Andrea Rossato <andrea.rossato@unibz.it>**20080113091107] 
[Add XMonad.Util.Timer, a module to set up timers and to handle them
Andrea Rossato <andrea.rossato@unibz.it>**20080113090140] 
[de-obfuscate the initState and set the init offset to the length of the default text
Andrea Rossato <andrea.rossato@unibz.it>**20080110140951] 
[prompt: Allow to provide a default text in the prompt config.
nicolas.pouillard@gmail.com**20080109213916] 
[Correct caps in module header.
Joachim Fasting <joachim.fasting@gmail.com>**20071230061920] 
[Use LANGUAGE pragma.
Joachim Fasting <joachim.fasting@gmail.com>**20071230061817] 
[shiftPrevScreen and shiftNextScreen, to make CycleWS consistent
mail@joachim-breitner.de**20071231171609] 
[formatting
Don Stewart <dons@galois.com>**20071204174920] 
[PerWorkspace.hs: add an explanatory note
Brent Yorgey <byorgey@gmail.com>**20071231135806] 
[Add ShowWName a layout modifier to show the workspace name
Andrea Rossato <andrea.rossato@unibz.it>**20071231130441
 This module requires dzen
] 
[ManageDocks: some documentation fixes
Andrea Rossato <andrea.rossato@unibz.it>**20071231101820] 
[-Wall police (again)
Spencer Janssen <sjanssen@cse.unl.edu>**20071228061841] 
[-Wall police
Spencer Janssen <sjanssen@cse.unl.edu>**20071228061822] 
[Fulfill the EWMH specification by listing the supported ATOMs, doesnt really make a differene AFAIK
mail@joachim-breitner.de**20071227215607] 
[display all visible windows on the current desktop in the pager
mail@joachim-breitner.de**20071227204349
 This is my best shot at modeling xmonad���s WM behaviour in a way that
 the Extended Window Manager Hints specification allows.
 
 Unfortunately, we can not tell the panel what size and position it should
 think the apps are.
] 
[Although I do not need the curr variable after all, this is nicer
mail@joachim-breitner.de**20071227190113] 
[Add support for cycling through screens to CycleWS
mail@joachim-breitner.de**20071227182635] 
[Clear _NET_ACTIVE_WINDOW when nothing is focused
mail@joachim-breitner.de**20071228154222] 
[textExtentsXMF doesn't require the display
Andrea Rossato <andrea.rossato@unibz.it>**20071228125913] 
[Don't bother checking executable bits of items in $PATH, yields a significant speed-up
Spencer Janssen <sjanssen@cse.unl.edu>**20071226032412] 
[ResizableTile.hs: fix resizing to work in the presence of floating windows (resolves issue #100)
Brent Yorgey <byorgey@gmail.com>**20071225135839] 
[LayoutScreens: haddock fixes
Andrea Rossato <andrea.rossato@unibz.it>**20071225105316] 
[XMonad.Actions.Search: haddock fix
Andrea Rossato <andrea.rossato@unibz.it>**20071224171115] 
[Fix isssue 105
Andrea Rossato <andrea.rossato@unibz.it>**20071224171020
 issue 105 was due to the fact that tab windows created when
 bootstrapping the windowset after a restart where managed. Setting the
 override_redirect attributes to True fixes the issue.
 
 Added the possibility to set the override_redirect attribute with
 XMonad.Util.XUtils.creationNewWindow
] 
[Prompt.hs: mv .xmonad_history into .xmonad/
gwern0@gmail.com**20071224054610
 See my email to mailing list. This will slightly break anyone who upgrades while running and expects to see their prompt history, and leave a stray file, I think, but nothing else, and it'll permanently improve tab-completion, and is tidier.
] 
[Search.hs: +docs, and export simpleEngine so users can define their own
gwern0@gmail.com**20071224043828] 
[Search.hs: mv into Actions/ per IRC suggestion
gwern0@gmail.com**20071224043735] 
[add XMonad.Actions.NoBorders
Lukas Mai <l.mai@web.de>**20071220203953] 
[AvoidStruts: add support for partial struts
Spencer Janssen <sjanssen@cse.unl.edu>**20071222133425] 
[Search.hs: add hoogle
Brent Yorgey <byorgey@gmail.com>**20071222184912] 
[ManageDocks: ignore desktop windows also
Spencer Janssen <sjanssen@cse.unl.edu>**20071222113808] 
[Wibble
Spencer Janssen <sjanssen@cse.unl.edu>**20071222110641] 
[EwmhDesktops: add _NET_ACTIVE_WINDOW support
Spencer Janssen <sjanssen@cse.unl.edu>**20071222110552] 
[A few short comments for WorkspaceCompare
Spencer Janssen <sjanssen@cse.unl.edu>**20071222105045] 
[EwmhDesktops: drop 'Workspace' from displayed workspace names
Spencer Janssen <sjanssen@cse.unl.edu>**20071222104559] 
[Factor workspace sorting into a separate module
Spencer Janssen <sjanssen@cse.unl.edu>**20071222104114] 
[No more tabs
Spencer Janssen <sjanssen@cse.unl.edu>**20071222050439] 
[Refactor Search.hs
Spencer Janssen <sjanssen@cse.unl.edu>**20071222044714] 
[Generalize XSelection functions to MonadIO
Spencer Janssen <sjanssen@cse.unl.edu>**20071222044514] 
[Search.hs: +imdb & amazon engines for unk_red
gwern0@gmail.com**20071222035837] 
[Search.hs: cleanup and refactor
gwern0@gmail.com**20071220174001] 
[Update various restart bindings
Spencer Janssen <sjanssen@cse.unl.edu>**20071219220634] 
[Fix typo.
Roman Cheplyaka <roma@ro-che.info>**20071219073857] 
[Doc/Developing.hs: add some information about Haddock documentation.
Brent Yorgey <byorgey@gmail.com>**20071219215300] 
[require haddock documentation to build successfully in order to record a patch.
Brent Yorgey <byorgey@gmail.com>**20071219215217] 
[Remove inaccurate comment about 'banish'
Spencer Janssen <sjanssen@cse.unl.edu>**20071217231540] 
[Warp.hs: haddock fixes
Brent Yorgey <byorgey@gmail.com>**20071217224712] 
[Warp.hs: +doc
gwern0@gmail.com**20071216030015
 Describe how to emulate Ratpoison's 'banish' functionality on one's config
] 
[Util/Search.hs: a few updates/fixes
Brent Yorgey <byorgey@gmail.com>**20071217222930
   * fix shadowing warning (ghc 6.8.2 complains)
   * export a few more of the functions
   * re-de-obfuscate generated URLs by not escaping alphanumerics or punct.
] 
[Util.Search: import escapeURIString, and fall back on the ugly const false hack to avoid copy-pasting even more
gwern0@gmail.com**20071215211638] 
[update Config.Droundy to use a few nice hooks.
David Roundy <droundy@darcs.net>**20071216185653] 
[Add UrgencyHook support to Tabbed
Shachaf Ben-Kiki <shachaf@gmail.com>**20071215171617] 
[DynamicLog.hs: some documentation updates.
Brent Yorgey <byorgey@gmail.com>**20071215143727] 
[DynamicLog.hs: fix shadowing warning
Brent Yorgey <byorgey@gmail.com>**20071215143227] 
[Add UrgencyHook support to DynamicLog
Shachaf Ben-Kiki <shachaf@gmail.com>**20071214043528
 Someone with Xinerama should look at this -- I don't know exactly how that
 should behave.
] 
[Depend on X11-1.4.1, it has crucial bugfixes
Spencer Janssen <sjanssen@cse.unl.edu>**20071215022151] 
[Remove network dependency, potentially breaking XMonad.Util.Search
Spencer Janssen <sjanssen@cse.unl.edu>**20071214231859] 
[Search.hs: fix shadowing warning and haddock errors
Brent Yorgey <byorgey@gmail.com>**20071214163119] 
[+cabal support for XMonad.Util.Search
gwern0@gmail.com**20071213205654] 
[+XMonad.Util.Search: new module
gwern0@gmail.com**20071213205159
 This module is intended to provide helpful functions for easily running web searchs; just hit a bound key, enter your query, and up opens a new tab/browser/window with the search results. In theory anyway; the Wikipedia and Google ones work fine for me, but the Internet Archive's docs on how to do don't necessarily seem to be correct. If you were, like me, previously running shell commands to call Surfraw or similar shell scripts to do the same thing, you can now scrap them and replace them.
 
 There aren't too many search engines defined here; new ones would be good, and they're easy to add!
] 
[Add support for _NET_WM_STRUT_PARTIAL
Spencer Janssen <sjanssen@cse.unl.edu>**20071213021704] 
[ManageDocks: when there are struts on opposing edges, the right/bottom strut
Spencer Janssen <sjanssen@cse.unl.edu>**20071210021030
 was ignored.  TODO: quickchecks
] 
[Run.hs: fix documentation, cleanup whitespace
"Valery V. Vorotyntsev" <valery.vv@gmail.com>**20071212091516] 
[Man.hs: input speedup
"Valery V. Vorotyntsev" <valery.vv@gmail.com>**20071212090256
 
 Descend manpage directories once -- when `manPrompt' is called.
 (Previous version used to search directories upon each character
 arrival.)
] 
[new XMonad.Hooks.ManageHelpers module
Lukas Mai <l.mai@web.de>**20071211183040] 
[Magnifier: custom zoom ratio for magnifier' too
intrigeri@boum.org**20071211015554] 
[Magnifier.hs: minor haddock fixes
Brent Yorgey <byorgey@gmail.com>**20071211011154] 
[fix haddock on Magnifier
tim.thelion@gmail.com**20071210231942] 
[Custom zoom levels for magnifier
tim.thelion@gmail.com**20071208230844] 
[TAG 0.5
Spencer Janssen <sjanssen@cse.unl.edu>**20071209233056] 
Patch bundle hash:
5da8829bc45faba4837e719646f3f33623bc06e0
