[xmonad] Floats always go to the current screen (Patch)

Robert robreim at bobturf.org
Thu Apr 3 00:17:04 EDT 2008

That's the one. How's it not Xinerama safe? Maybe I can fix that.

Don Stewart wrote:
> Hmm,
>     Fri Mar 21 14:41:29 PDT 2008  Don Stewart <dons at galois.com>
>       * Revert float location patch. Not Xinerama safe
>     Fri Mar  7 18:19:39 PST 2008  robreim at bobturf.org
>       * Small linecount fix :)
>     Fri Mar  7 17:58:29 PST 2008  robreim at bobturf.org
>       * Change floats to always use the current screen
> Or were you thinking of something else?
> -- Don
> robreim:
>> This patch was previously applied but now seems to have disappeared in 
>> the latest darcs xmonad. Does anyone know what happened?
>> Robert wrote:
>>> When opening new floating windows on a multihead display, they will 
>>> often unpredictably appear on a different screen to the one that 
>>> currently has focus. Example:
>>> Bind a key to run 'gmrun'. Run gmrun from one screen and take note of 
>>> which screen it appears on. Switch to another screen and do the same 
>>> thing. gmrun will generally appear on the same screen each time.
>>> This seems unpredictable to me. I think new windows should always appear 
>>> on the current workspace (unless it's transient perhaps). This allows me 
>>> to, for example, choose which screen a new window appears on by 
>>> switching to it first. In the current situation, I have to somehow 
>>> remember where X prefers to launch an application and try to arrange my 
>>> workspaces and screens such that the application will appear in the 
>>> right location.
>>> This patch makes new float windows appear on the current screen as I 
>>> think they should. The contrib patch makes contrib compatible with this 
>>> change.
>>> I've undone some of the floating layer work in this patch. It seems the 
>>> floating layer stuff was written explicitly to support the current way 
>>> of placing floating windows. If there were good reasons for this 
>>> functionality, please convince me my patch does the wrong thing. 
>>> Otherwise, I think this patch has the benefit of being more predictable 
>>> and simpler in code.
>>> ------------------------------------------------------------------------
>>> New patches:
>>> [Fix to work with "floats always use current screen" patch
>>> robreim at bobturf.org**20080308024928] {
>>> hunk ./XMonad/Hooks/ManageHelpers.hs 143
>>> -doCenterFloat = ask >>= \w -> doF . W.float w . center . snd =<< liftX 
>>> (floatLocation w)
>>> +doCenterFloat = ask >>= \w -> doF . W.float w . center =<< liftX 
>>> (floatLocation w)
>>> }
>>> Context:
>>> [Fix ThreeColumns doc.
>>> Roman Cheplyaka <roma at ro-che.info>**20080307203022] 
>>> [Shell: add support for UTF-8 locales
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080302095924] 
>>> [Font and XUtils: add UTF-8 support and various fixes related to XFT
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080229100346] 
>>> [Ssh: complete known hosts with non standard ports too
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080229095014] 
>>> [Fix xmonadPromptC and use it.
>>> nicolas.pouillard at gmail.com**20080306163928] 
>>> [Documentation typo about UpdatePointer.
>>> nicolas.pouillard at gmail.com**20080306163516] 
>>> [Fix ToggleOff: It was adding 0.1 to the magnification.
>>> Braden Shepherdson <Braden.Shepherdson at gmail.com>**20080305222302] 
>>> [Removed WmiiActions module.
>>> Juraj Hercek <juhe_xmonad at hck.sk>**20080305082336] 
>>> [Adjusted signature of DirExec module functions.
>>> Juraj Hercek <juhe_xmonad at 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 at hck.sk>**20080229212257
>>>   - allows execution of executable files from specific directory
>>> ] 
>>> [Hooks.DynamicLog: export xmobarPP
>>> Dmitry Kurochkin <dmitry.kurochkin at 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 at gmail.com>**20080303204619] 
>>> [Util.Run: minor clarification in comment
>>> gwern0 at gmail.com**20080303051513] 
>>> [Add XMonad.Actions.PerWorkspaceKeys
>>> Roman Cheplyaka <roma at ro-che.info>**20080302202346] 
>>> [Haddock fix: Changed URL-Markup
>>> Dominik Bruhn <dominik at dbruhn.de>**20080302185435] 
>>> [switch Droundy to smartBorders (which works better with ScratchWorkspace).
>>> David Roundy <droundy at darcs.net>**20080301191103] 
>>> [Changed semantics of UpdatePointer to move to nearest point
>>> robreim at bobturf.org**20080301143126] 
>>> [UpdatePointer XMonadContrib module
>>> robreim at bobturf.org**20080301134401] 
>>> [XMonad.Layout.Simplest: add FlexibleInstances pragma
>>> Lukas Mai <l.mai at web.de>**20080301061714] 
>>> [XMonad.Layout.ScratchWorkspace: avoid warnings, make tests compile again
>>> Lukas Mai <l.mai at web.de>**20080301061625] 
>>> [implement ScratchWorkspace.
>>> David Roundy <droundy at darcs.net>**20080229224316] 
>>> [in Prompt.Workspace sort by official workspace order.
>>> David Roundy <droundy at darcs.net>**20080229223047] 
>>> [simplify Simplest--allow it to apply to non-Windows.
>>> David Roundy <droundy at darcs.net>**20080229221326] 
>>> [XMonad.Actions.MouseGestures.mkCollect: generalize type
>>> Lukas Mai <l.mai at web.de>**20080229211732] 
>>> [Add bottom-tabbed layout.
>>> Roman Cheplyaka <roma at ro-che.info>**20080229155120] 
>>> [XMonad.Actions.MouseGestures: refactoring, code simplification
>>> Lukas Mai <l.mai at 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 at 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 at gmail.com>**20080227014201] 
>>> [EZConfig: add an emacs-style keybinding parser!
>>> Brent Yorgey <byorgey at 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 at web.de>**20080226202639] 
>>> [update inactive debugging code in MouseGestures; no visible changes
>>> Lukas Mai <l.mai at web.de>**20071109020755] 
>>> [Scratchpad terminal
>>> Braden Shepherdson <Braden.Shepherdson at 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 at 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 at ro-che.info>**20080225062330] 
>>> [Fix haddock hyperlink.
>>> Roman Cheplyaka <roma at ro-che.info>**20080224205416] 
>>> [Add XMonad.Layout.IM
>>> Roman Cheplyaka <roma at ro-che.info>**20080221085752] 
>>> [Export XMonad.Layout.Grid.arrange (for use in XMonad.Layout.IM)
>>> Roman Cheplyaka <roma at ro-che.info>**20080221062204] 
>>> [Decoration: some haddock updates
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080220214934] 
>>> [Small refactoring.
>>> Nils Anders Danielsson <nils.anders.danielsson at gmail.com>**20080210224756] 
>>> [Fixed off-by-one error which broke strut handling for some panels.
>>> Nils Anders Danielsson <nils.anders.danielsson at gmail.com>**20080210222600] 
>>> [Decoration: fix an issue with decoration window creation and more
>>> Andrea Rossato <andrea.rossato at 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 at 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 at 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 at 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 at unibz.it>**20080219163058] 
>>> [Decoration: comment only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080219161339
>>> This is a detailed commentary of all the code.
>>> ] 
>>> [Decoratione: generate rectangles first, and create windows accordingly
>>> Andrea Rossato <andrea.rossato at 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 at ro-che.info>**20080219055650] 
>>> [Tabbed and TabBarDecoration: no need to implement decorateFirst (the 
>>> default is used)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080218184950] 
>>> [TabBarDecoration: simpleTabBar automatically applies resizeVertical
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080218180922
>>> Added some comments too.
>>> ] 
>>> [DwmStyle: comment fix only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080218180727] 
>>> [ResizeScreen: add resizeHorizontalRight and resizeVerticalBottom
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080218180504] 
>>> [Add TabBarDecoration, a layout modifier to add a bar of tabs to any layout
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080218131320] 
>>> [Refactor MouseResize, remove isDecoration and introduce isInStack, 
>>> isVisible, isInvisible
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080217132734] 
>>> [Prompt.Theme: use mkComplFunFromList' to generate completions
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080217124453] 
>>> [some code formatting
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080217124434] 
>>> [Prompt: comment only (clafiry completionToCommand uses)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216181620] 
>>> [Prompt: comment only (remove confusing remarks about commandToComplete)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216180412] 
>>> [Prompt: haddock fixes only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216172331] 
>>> [Prompt.XMonad: use mkComplFunFromList' to get all the completions with an 
>>> empty command line
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216133949] 
>>> [Prompt.Window: remove unneeded and ugly escaping/unescaping
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216133842] 
>>> [Theme: move theme's nextCompletion implementation to 
>>> Prompt.getNextCompletion
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216133738] 
>>> [Shell: escape the string in the command line only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216133651] 
>>> [Prompt: add some methods to make completions more flexible
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080216114159] 
>>> [Prompt.Shell: if there's just one completion and it is a directory add a 
>>> trailing slash
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216114005] 
>>> [Prompt: added nextCompletion and commandToComplete methods to fine tune 
>>> prompts' completion functions
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216113723] 
>>> [Util.Themes: add ppThemeInfor to render the theme info
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080216113635] 
>>> [DecorationMadness: resizable layouts now use MouseResize too
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080212173645] 
>>> [SimpleFloat now uses MouseResize
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080212173615] 
>>> [Add Actions.MouseResize: a layout modifier to resize windows with the 
>>> mouse
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080212173455] 
>>> [Decoration: remove mouse resize and more
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080211123056] 
>>> [Tabbed and SimpleTabbed (in DecorationMadness) define their own 
>>> decorationMouseDragHook method
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080211114043
>>> ... to disable mouse drag in tabbed layouts
>>> ] 
>>> [Decoration: DecorationStyle class cleanup and focus/drag unification
>>> Andrea Rossato <andrea.rossato at 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 at ro-che.info>**20080210222406
>>> This allows using DynamicLog not only for statusbar.
>>> ] 
>>> [DecorationMadness: comment only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210131427] 
>>> [DecorationMadness: added a few floating layouts
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210122523] 
>>> [SimpleFloat: export SimpleFloat and add documentation
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210113159] 
>>> [Move DefaultDecoration from DecorationMadness to Decoration
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210104304] 
>>> [Themes: added robertTheme and donaldTheme
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210083016] 
>>> [DecorationMadness: make tunable tabbed layouts respect the Theme 
>>> decoHeight field
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210075322] 
>>> [ScreenResize: vertical and horizontal now respond to SetTheme
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080210074544
>>> And so they will change the screen dimension accordingly.
>>> ] 
>>> [WindowGo.hs: fix syntax in example
>>> Brent Yorgey <byorgey at gmail.com>**20080209225135] 
>>> [+doc for WindowGo.hs: I've discovered a common usecase for me for 
>>> raiseMaybe
>>> gwern0 at gmail.com**20080205032155] 
>>> [Run.hs: add an option to runinterms
>>> gwern0 at 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 at unibz.it>**20080209182515] 
>>> [Decoration: change mouseEventHook to decoEventHook and more
>>> Andrea Rossato <andrea.rossato at 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 at 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 at unibz.it>**20080208140604] 
>>> [Decoration: enable mouse dragging of windows
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080208083602] 
>>> [WindowArranger: add a SetGeometry message - needed to enable mouseDrag
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080208083413] 
>>> [Decoration: add a mouseEventHook methohd and move mouse button event there
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080208073514] 
>>> [Util.Thems: some more typos in comments
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080207233341] 
>>> [Util.Themes: documentation and export list (added themes that have been 
>>> left out)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080207232251] 
>>> [Prompt.Theme: comments and some point-free
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080207232155] 
>>> [oxymor00nTheme
>>> <its.sec at gmx.net>**20080207213100] 
>>> [add swapScreen to CycleWS
>>> <its.sec at gmx.net>**20080206191032
>>> * add support for swapping the workspaces on screens to CycleWS
>>> ] 
>>> [Decoration: consistency of variable names
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080207184321] 
>>> [Decoration: add a SetTheme message and releaseResources
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080207183153] 
>>> [Add Util.Themes to collect user contributed themes
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080207182843] 
>>> [SimpleFloat: comment only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080207182438] 
>>> [Update to safer initColor api
>>> Don Stewart <dons at galois.com>**20080206192232] 
>>> [use Util.WorkspaceCompare in Prompt.Workspace.
>>> David Roundy <droundy at darcs.net>**20080206004057] 
>>> [roll back to previous version of Droundy.hs.
>>> David Roundy <droundy at 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 at darcs.net>**20080205203556] 
>>> [make tabbed work nicely with LayoutCombinators and WindowNavigation.
>>> David Roundy <droundy at 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 at darcs.net>**20080205202027] 
>>> [ XMonad.Actions.WindowGo: add a runOrRaise module for Joseph Garvin with 
>>> the help of Spencer Janssen
>>> gwern0 at gmail.com**20080204173402] 
>>> [enable proper handling of panels in droundy config.
>>> David Roundy <droundy at darcs.net>**20080204030843] 
>>> [enable button click for focus in tabbed.
>>> David Roundy <droundy at darcs.net>**20080204010536
>>> Note that this patch doesn't work with
>>> Thu Dec 27 03:03:56 EST 2007  Spencer Janssen <sjanssen at 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 at 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 at 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 at gmail.com>**20080201202126] 
>>> [REMOVE RotView: use CycleWS instead.
>>> Brent Yorgey <byorgey at 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 at gmail.com>**20080201121524] 
>>> [WorkspaceCompare: some refactoring.
>>> Brent Yorgey <byorgey at 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 at gmail.com>**20080131161948] 
>>> [Added a handy tip to the documentation of XMonad.Actions.Search
>>> v.dijk.bas at 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 at unibz.it>**20080131082314] 
>>> [Remove LayoutCombinator class and revert PerWorkspace to its Maybe Bool 
>>> state
>>> Andrea Rossato <andrea.rossato at 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 at gmail.com>**20080131012728] 
>>> [DynamicLog: lots of additional documentation; add byorgeyPP as an example 
>>> dzen config
>>> Brent Yorgey <byorgey at gmail.com>**20080130205219] 
>>> [Extended PP with sorting algorithm specification and added xinerama 
>>> sorting
>>> Juraj Hercek <juhe_xmonad at 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 at unibz.it>**20080130124609] 
>>> [Various decorations related updates
>>> Spencer Janssen <sjanssen at 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 at gmail.com>**20080126141332] 
>>> [add XMonad.Actions.CycleSelectedLayouts
>>> Roman Cheplyaka <roma at ro-che.info>**20080116205020] 
>>> [Search.hs: add documentation and two more search engines (MathWorld and 
>>> Google Scholar)
>>> Brent Yorgey <byorgey at gmail.com>**20080128190443] 
>>> [xmonad-contrib.cabal: add build-type field to get rid of Cabal warning
>>> Brent Yorgey <byorgey at gmail.com>**20080128190137] 
>>> [LayoutCombinator class: code clean up
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080129192903] 
>>> [Named: reimplemented as a LayoutModifier and updated Config.Droundy 
>>> accordingly
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080128161343] 
>>> [LayoutModifier: add modifyDescription for completely override the 
>>> modified layout description
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080128160614] 
>>> [Make ToggleLayouts and Named implement emptyLayout
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080128151535] 
>>> [Decoration: the fontset must be released even when we don't decorate the 
>>> first window
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080127233521] 
>>> [Decoration: after deleting the windows we must update the layout modifier
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080127165854] 
>>> [SimpleFLoat: change the description to Float (Simple is the decoration 
>>> description)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080127144556] 
>>> [ManageDocks: implement AvoidStruts as a layout modifier
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080127144301] 
>>> [ResizeScreen has been rewritten as a layout modifier
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080127140837] 
>>> [LayoutModifier add a modifyLayout
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080127092415] 
>>> [Add ResizeScreen, a layout modifier for modifing the screen geometry
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080127010755] 
>>> [WindowArranger can now arrange all windows
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080126205638] 
>>> [Add SimpleFloat a very basic floating layout that will place windows 
>>> according to their size hints
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126205410] 
>>> [WindoWrranger: export the WindowArranger type (see the upcoming 
>>> SimpleFloat)
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126204605] 
>>> [ShowWName: show the name of empty layouts too
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126190214] 
>>> [ManageDocks: add emptyLayout definition for supporting the new decoration 
>>> framework
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126185936] 
>>> [Decoration: code formatting only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126101354] 
>>> [export DeConfig to avoid importing Decoration
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126101049] 
>>> [Prompt: code formatting only
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080126093234] 
>>> [Don't export TConf anymore and export DeConfig instead
>>> Andrea Rossato <andrea.rossato at 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 at unibz.it>**20080125152311] 
>>> [Add DwmStyle, a layout modifier to add dwm-style decorations to windows 
>>> in any layout
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080125152152] 
>>> [Adde SimpleDecoration, a layout modifier to add simple decorations to 
>>> windows in any layout
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080125152106] 
>>> [Add Layout.Simplest, the simplest layout
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080125152015] 
>>> [Add Decoration, a layout modifier and a class for easily writing 
>>> decorated layouts
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080125151726] 
>>> [Add WindowArranger, a layout modifier to move and resize windows with the 
>>> keyboard
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080125151633] 
>>> [ShowWName: moved fi to XUtils
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080124134725] 
>>> [XUtils: add functions for operating on lists of windows and export fi
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080124134638] 
>>> [LayoutModifier: add emptyLayoutMod for dealing with empty workspaces
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080124015605] 
>>> [LayoutModifier: add pureMess and pureModifier to the LayoutModifier class
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080122111319] 
>>> [Layout.ShowWName: generalize the instance
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080115045139] 
>>> [add emptyLayout to MultiToggle
>>> Lukas Mai <l.mai at web.de>**20080128175313] 
>>> [grammar fix
>>> Lukas Mai <l.mai at web.de>**20080128175059] 
>>> [TAG 0.6
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080127222114] 
>>> Patch bundle hash:
>>> 3bbcbe93e994691f7bb76f141aa787c9b20e8a21
>>> ------------------------------------------------------------------------
>>> New patches:
>>> [Change floats to always use the current screen
>>> robreim at bobturf.org**20080308015829] {
>>> hunk ./XMonad/ManageHook.hs 74
>>> -doFloat = ask >>= \w -> doF . W.float w . snd =<< liftX (floatLocation w)
>>> +doFloat = ask >>= \w -> doF . W.float w =<< liftX (floatLocation w)
>>> hunk ./XMonad/Operations.hs 59
>>> -    (sc, rr) <- floatLocation w
>>> +    rr <- floatLocation w
>>> hunk ./XMonad/Operations.hs 67
>>> -            where i = fromMaybe (W.tag . W.workspace . W.current $ ws) $ 
>>> W.lookupWorkspace sc ws
>>> +            where i = W.tag $ W.workspace $ W.current ws
>>> hunk ./XMonad/Operations.hs 395
>>> -floatLocation :: Window -> X (ScreenId, W.RationalRect)
>>> +floatLocation :: Window -> X (W.RationalRect)
>>> hunk ./XMonad/Operations.hs 409
>>> -    return (W.screen $ sc, rr)
>>> +    return rr
>>> hunk ./XMonad/Operations.hs 420
>>> -    (sc, rr) <- floatLocation w
>>> +    rr <- floatLocation w
>>> hunk ./XMonad/Operations.hs 422
>>> +        let sc = W.screen $ W.current ws
>>> }
>>> [Small linecount fix :)
>>> robreim at bobturf.org**20080308021939] {
>>> hunk ./XMonad/Operations.hs 422
>>> -        let sc = W.screen $ W.current ws
>>> hunk ./XMonad/Operations.hs 425
>>> -        sw <- W.lookupWorkspace sc ws
>>> +        sw <- W.lookupWorkspace (W.screen $ W.current ws) ws
>>> }
>>> Context:
>>> [use -fhpc by default when testing. All developers should have 6.8.x
>>> Don Stewart <dons at galois.com>**20080307184223] 
>>> [more general properties for view, greedyView
>>> Don Stewart <dons at galois.com>**20080307181657] 
>>> [rework failure cases in StackSet.view
>>> Don Stewart <dons at galois.com>**20080307181634] 
>>> [bit more code coverage
>>> Don Stewart <dons at galois.com>**20080307180905] 
>>> [more tests. slightly better test coverage
>>> Don Stewart <dons at galois.com>**20080227180113] 
>>> [test geometry setting
>>> Don Stewart <dons at galois.com>**20080227175554] 
>>> [incorrect invariant test for greedyView
>>> Don Stewart <dons at galois.com>**20080225180350] 
>>> [Add a startupHook.
>>> Brent Yorgey <byorgey at gmail.com>**20080204192445
>>> The only thing I am not sure about here is at what exact point the 
>>> startupHook should get run.  I picked a place that seems to make sense: 
>>> as late as possible, right before entering the main loop.  That way all
>>> the layouts/workspaces/other state are set up and the startupHook can
>>> manipulate them.
>>> ] 
>>> [Core.hs: add an Applicative instance for X
>>> Brent Yorgey <byorgey at gmail.com>**20080204192348] 
>>> [update LOC claim in man page
>>> gwern0 at gmail.com**20080215211420] 
>>> [add quickstart instructions
>>> Don Stewart <dons at galois.com>**20080212203502] 
>>> [Remove non-existent windows on restart
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080207091140] 
>>> [Lift initColor exceptions into Maybe
>>> Don Stewart <dons at galois.com>**20080206194858
>>> We should audit all X11 Haskell lib calls we make for whether
>>> they throw undocumented exceptions, and then banish that.
>>> ] 
>>> [some things to do
>>> Don Stewart <dons at galois.com>**20080206192533] 
>>> [module uses CPP
>>> Don Stewart <dons at galois.com>**20080206190521] 
>>> [Rename runManageHook to runQuery
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080204053336] 
>>> [let enter dismiss compile errors
>>> daniel at wagner-home.com**20080203202852] 
>>> [Core.hs, StackSet.hs: some documentation updates
>>> Brent Yorgey <byorgey at gmail.com>**20080201190653] 
>>> [Make Mirror implement emptyLayout
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080128001834] 
>>> [xmonad.cabal: add `build-type' to make Cabal happy
>>> "Valery V. Vorotyntsev" <valery.vv at gmail.com>**20080131163213] 
>>> [Get version from the Paths_xmonad module generated by Cabal
>>> Daniel Neri <daniel.neri at sigicom.se>**20080129144037
>>> No need to bump version in more than one place.
>>> ] 
>>> [Kill stale xmonad 0.1 comments
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080128211418] 
>>> [Point to 0.6 release of contrib
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080128101115] 
>>> [notes on releases
>>> Don Stewart <dons at galois.com>**20080128171012] 
>>> [bump output of --version
>>> Don Stewart <dons at galois.com>**20080128170840] 
>>> [Generalize the type of catchIO, use it in Main.hs
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080128054651] 
>>> [Add emptyLayout to LayoutClass, a method to be called when a workspace is 
>>> empty
>>> Andrea Rossato <andrea.rossato at unibz.it>**20080124013207] 
>>> [clarify copyright
>>> Don Stewart <dons at galois.com>**20080108185640] 
>>> [TAG 0.6
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080127220633] 
>>> [More other-modules
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080127220152] 
>>> [Update example config
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080127212331] 
>>> [Bump version to 0.6
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080127205000] 
>>> [Updated ./man/xmonad.1.in to contain new command line parameters
>>> Austin Seipp <mad.one at gmail.com>**20080122070153] 
>>> [Depend on QuickCheck < 2 when building tests
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080122070225] 
>>> [Roll testing into the main executable, use Cabal to build the tests
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080119091215] 
>>> [Simplify duplicate/cloned screen logic
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080118032228] 
>>> [Put the screen removing stuff in getCleanedScreenInfo
>>> Joachim Breitner <mail at joachim-breitner.de>**20071231181556] 
>>> [Ignore cloned screens
>>> Joachim Breitner <mail at joachim-breitner.de>**20071231180628
>>> This patch ignores screens that are just clones of existing ones,
>>> or are completely contained in another. Currently only for rescreen, not 
>>> yet for
>>> xmonad start.
>>> ] 
>>> [-Werror when flag(testing) only
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20080118014827] 
>>> [Export doubleFork
>>> nicolas.pouillard at gmail.com**20080114202612] 
>>> [reword comment (previous version didn't make sense to me)
>>> Lukas Mai <l.mai at web.de>**20071122165925] 
>>> [The recompile function now returns a boolean status instead of ().
>>> nicolas.pouillard at gmail.com**20080105225500] 
>>> [Make focus-follows-mouse configurable
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071229023301] 
>>> [Strictify all XConfig fields, gives nice error messages when a field is 
>>> forgotten on construction
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071229021923] 
>>> [Spelling
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071229021628] 
>>> [Wibble
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071229021519] 
>>> [Broadcast button events to all layouts, fix for issue #111
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071227080356] 
>>> [Config.hs: too many users seem to be ignoring/missing the polite warning 
>>> not to modify this file; change it to something a bit less polite/more 
>>> obvious.
>>> Brent Yorgey <byorgey at gmail.com>**20071220201549] 
>>> [Remove desktop manageHook rules in favor of ManageDocks
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071222113735] 
>>> [Wibble
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071222041151] 
>>> [Add support for several flags:
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071222020520
>>>  --version: print xmonad's version
>>>  --recompile: recompile xmonad.hs if it is out of date
>>>  --force-recompile: recompile xmonad.hs unconditionally
>>> ] 
>>> [Remove getProgName capability from restart, we don't use it anymore
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071219215011] 
>>> [Flush pending X calls before restarting
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071219162029] 
>>> [Allow for sharing of home directory across architectures.
>>> tim.thelion at gmail.com**20071218065146] 
>>> [Call 'broadcastMessage ReleaseResources' in restart
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071219065710] 
>>> [Manpage now describes config in ~/.xmonad/xmonad.hs
>>> Adam Vogt <vogt.adam at gmail.com>**20071219023918] 
>>> [Update manpage to describe greedyView
>>> Adam Vogt <vogt.adam at gmail.com>**20071219023726] 
>>> [Depend on X11-1.4.1, it has crucial bugfixes
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071215022100] 
>>> [1.4.1 X11 dep
>>> Don Stewart <dons at galois.com>**20071214160558] 
>>> [Set withdrawnState after calling hide
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071212060250] 
>>> [Remove stale comment
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071211084236] 
>>> [Make windows responsible for setting withdrawn state
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071211080117] 
>>> [Remove stale comment
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071211075641] 
>>> [Clean up stale mapped/waitingUnmap state in handle rather than unmanage.
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071211074810
>>> This is an attempt to fix issue #96.  Thanks to jcreigh for the insights
>>> necessary to fix the bug.
>>> ] 
>>> [Delete windows from waitingUnmap that aren't waitng for any unmaps
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071211074506] 
>>> [man/xmonad.hs: add some documentation explaining that 'title' can be used 
>>> in the manageHook just like 'resource' and 'className'.
>>> Brent Yorgey <byorgey at gmail.com>**20071210173357] 
>>> [normalize Module headers
>>> Lukas Mai <l.mai at web.de>**20071210085327] 
>>> [Add 'testing' mode, this should reduce 'darcs check' time significantly
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071210004704] 
>>> [Use XMonad meta-module in Main.hs
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071210004456] 
>>> [TAG 0.5
>>> Spencer Janssen <sjanssen at cse.unl.edu>**20071209233044] 
>>> Patch bundle hash:
>>> 181ff6efdf7bb0d4a72ad7d9d5a8234ce85b3595
>>> ------------------------------------------------------------------------
>>> _______________________________________________
>>> xmonad mailing list
>>> xmonad at haskell.org
>>> http://www.haskell.org/mailman/listinfo/xmonad
>> _______________________________________________
>> xmonad mailing list
>> xmonad at haskell.org
>> http://www.haskell.org/mailman/listinfo/xmonad

More information about the xmonad mailing list