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

Robert robreim at bobturf.org
Wed Apr 2 20:36:22 EDT 2008


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


More information about the xmonad mailing list