Mon Feb 9 21:32:12 EST 2009

```* On Sunday, February 08 2009, Wirt Wolff wrote:

>Nice! I must say I /really/ like this layout; it gives me a way to
>automate laying out the resizable Tall variants I seem to have settled
>into, but without having to banish boring windows to other workspaces.
>(By using three or four appropriate list elements.)

Great! Now at least 2 people use it :)

>Ugh, now I'll probably waste time playing with slopeMod, though. ;-)

If you come up with something interesting, please add those functions to
the module (as a darcs patch will get it in the fastest).

Accidental negative elements cause some part of the algorithm to not
terminate, so to prevent any unpleasant events, the elements are now
treated as positive, even when they are not (with this quick patch).

-------------- next part --------------
* X.L.Mosaic: prevent users from causing non-termination with negative elements

New patches:

[X.L.Mosaic: prevent users from causing non-termination with negative elements
Ignore-this: 370a7d6249906f1743c6692758ce5aeb
] {
instance Message Aspect

data Mosaic a
-    {- | The relative magnitudes of the positive rational numbers provided
-         determine the relative areas that the windows receive. The first
-         number represents the size of the master window, the second is for the
-         next window in the stack, and so on.
+    {- | The relative magnitudes (the sign is ignored) of the rational numbers
+     - provided determine the relative areas that the windows receive. The
+     - first number represents the size of the master window, the second is for
+     - the next window in the stack, and so on. Windows without a list element
+     - are hidden.
-}
= Mosaic [Rational]
-- override the aspect? current index, maximum index
shrinkMaster (x:xs) = x/2:xs

splits :: Int -> Rectangle -> [Rational] -> [[Rectangle]]
-splits num rect sz = splitsL rect \$ makeTree \$ normalize \$ reverse \$ take num sz
+splits num rect sz = splitsL rect \$ makeTree \$ normalize
+                            \$ map abs \$ reverse \$ take num sz

-- recursively enumerate splits
splitsL :: Rectangle -> Tree Rational -> [[Rectangle]]
}

Context:

[Fix an undefined in EwmhDesktops
Daniel Schoepe <asgaroth_ at gmx.de>**20090209152308
Ignore-this: f60a43d7ba90164ebcf700090dfb2480
]
[X.U.WindowProperties: docs (description and sections)
Roman Cheplyaka <roma at ro-che.info>**20090208231422]
[X.U.WindowProperties: Add getProp32 and getProp32s, helpers to get properties from windows
Ismael Carnales <icarnales at gmail.com>**20090205013031
Ignore-this: c5481fd5d97b15ca049e2da2605f65c1
]
[cleanup and make X.L.Mosaic behavior more intuitive wrt. areas
Ignore-this: 3c3c6faa203cbb1c1db909e5bf018b6f
]
Joachim Breitner <mail at joachim-breitner.de>**20090208192224
Ignore-this: 7ffee60858785c3e31fdd5383c9bb784
]
[Multimedia keys support for EZConfig
Ignore-this: 21183dd7c192682daa18e3768828f88d
]
[+A.CycleWindows: bindings to cycle windows in new ways
wirtwolff at gmail.com**20090207170622
Provides binding actions and customizable pure stack operations
to cycle through a list of permutations of the stack (recent),
cycle nth into focus, cycle through focus excluding a neighbor,
cycle unfocused, shift a window halfway around the stack.
Esp. for Full, two or three pane layouts, but useful for any
layout with many windows.
]
[XMonad.Actions.CopyWindow: fmt & qualify stackset import
gwern0 at gmail.com**20090206171833
Ignore-this: 4d08f5a7627020b188f59fc637b53ae8
]
lan3ny at gmail.com**20080602205742]
[ManageHelpers: reduce duplicated code in predicates
Ismael Carnales <icarnales at gmail.com>**20090204021847
Ignore-this: e28a912d4f897eba68ab3edfddf9f26b
]
[Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn)
Roman Cheplyaka <roma at ro-che.info>**20090204103635]
Roman Cheplyaka <roma at ro-che.info>**20090204102424
Add more documentation, including documentation from
X.U.SpawnOnWorkspace by Daniel Schoepe.
]
Spencer Janssen <spencerjanssen at gmail.com>**20090204055626]
Daniel Schoepe <asgaroth_ at gmx.de>**20090203160046
Ignore-this: f8c239bc8e301cbd6fa509ef748af542
]
[Easier Colorizers for X.A.GridSelect
quentin.moser at unifr.ch**20090128001702
Ignore-this: df3e0423824e40537ffdb4bc7363655d
]
[X.A.SpawOn: fix usage doc
Roman Cheplyaka <roma at ro-che.info>**20090202102042]
Norbert Zeh <nzeh at cs.dal.ca>**20090129152146

GridVariants.TallGrid behaved weird when transformed using Mirror
or Reflect.  The new layout SplitGrid does away with the need for
such transformations by taking a parameter to specify horizontal
or vertical splits.
]
[FixedColumn: added missing nmaster to the usage doc
Ismael Carnales <icarnales at gmail.com>**20090130195239
Ignore-this: 642aa0bc9e68e7518acc8af30324b97a
]
gwern0 at gmail.com**20090129025246
Ignore-this: 894e479ccc46160848c4d70c2361c929
]
Michal Trybus <komar007 at gmail.com>**20090128101938
Changed the XMonad.Action.Search to use a function instead of String to prepare the search URL.Added a few useful functions used to connect many search engines together and do intelligent prefixed searches (more doc in haddock)The API has not changed with the only exception of search function, which now accepts a function instead of String.
]
quentin.moser at unifr.ch**20090127184145
Ignore-this: 635cbf6420722a4edef1ae9c40b36e1b
]
[X.A.SinkAll: re-add accidentally deleted usage documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222533]
[move XMonad.Actions.SinkAll functionality to more general XMonad.Actions.WithAll, and re-export sinkAll from X.A.SinkAll for backwards compatibility
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222355]
[adds generic 'all windows on current workspace' functionality
loupgaroublond at gmail.com**20081221224850]
quentin.moser at unifr.ch**20090126195950
Ignore-this: 87a5efa9c841d378a808b1a4309f18
]
quentin.moser at unifr.ch**20090126181059
]
[submapDefault
Anders Engstrom <ankaan at gmail.com>**20090118152933
Ignore-this: c8958d47eb584a7de04a81eb087f05d1
Add support for a default action to take when the entered key does not match any entry.
]
[X.A.CycleWS: convert tabs to spaces (closes #266)
Roman Cheplyaka <roma at ro-che.info>**20090127185604]
[Mosaic picks the middle aspect layout, unless overriden
Ignore-this: aaa31da14720bffd478db0029563aea5
]
[Use currentTag, thanks asgaroth
Spencer Janssen <spencerjanssen at gmail.com>**20090125213331
Ignore-this: dd1a3d96038de6479eca3b9798d38437
]
[Support for spawning most applications on a specific workspace
Daniel Schoepe <asgaroth_ at gmx.de>**20090125191045
Ignore-this: 26076d54b131e037b42c87e4fde63200
]
Ignore-this: c792060fe2eaf532f433cfa8eb1e8fe3
]
[X.L.Mosaic add documentation, update interface and aspect ratio behavior
Ignore-this: e78027707fc844b3307ea87f28efed73
]
Roman Cheplyaka <roma at ro-che.info>**20090124235908]
[A mosaic layout based on MosaicAlt

The position of a window in the stack determines its position and layout. And
the overall tendency to make wide or tall windows can be changed, though not
all of the options presented by MosaicAlt can be reached, the layout changes
with each aspect ratio message.

]
[uninstallSignalHandlers in spawnPipe
Spencer Janssen <spencerjanssen at gmail.com>**20090122002745
Ignore-this: e8cfe0f18f278c95d492628da8326fd7
]
[Create a new session for spawnPiped processes
Spencer Janssen <spencerjanssen at gmail.com>**20090122000441
Ignore-this: 37529c5fe8b4bf1b97fffb043bb3dfb0
]
[TAG 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090118220647]
[Use spawnOn in my config
Spencer Janssen <spencerjanssen at gmail.com>**20090117041026
]
Spencer Janssen <spencerjanssen at gmail.com>**20090117040432
Ignore-this: 63869d1ab11f2ed5aab1690763065800
]
[Bump version to 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090116223607
]
[Compile without optimizations on x86_64 and GHC 6.10
Spencer Janssen <spencerjanssen at gmail.com>**20090108231650
Ignore-this: a803235b8022793f648e8953d9f05e0c
This is a workaround for http://xmonad.org/bugs/226
]
[Update all uses of doubleFork/waitForProcess
Spencer Janssen <spencerjanssen at gmail.com>**20090116210315
Ignore-this: 4e15b7f3fd6af3b7317449608f5246b0
]
[Update to my config
Spencer Janssen <spencerjanssen at gmail.com>**20090116204553
Ignore-this: 81017fa5b99855fc8ed1fe8892929f53
]
Daniel Schoepe <asgaroth_ at gmx.de>**20090110221310]
[X.U.EZConfig: expand documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090116153143]
[add a bit of documentation to HintedTile
Brent Yorgey <byorgey at cis.upenn.edu>**20090114065126]
johanngiwer at web.de**20090108232505]
[CenteredMaster
portnov84 at rambler.ru**20090111134513

centerMaster layout modifier places master window at top of other, at center of screen. Other windows are managed by base layout.
topRightMaster is similar, but places master window at top right corner.
]
gwern0 at gmail.com**20090110213000
Ignore-this: 1592ba07f2ed5d2258c215c2d175190a
]
Brent Yorgey <byorgey at cis.upenn.edu>**20090102194357]
loupgaroublond at gmail.com**20090102190954

also renames the function per mailing list recommendation
]
[adds a weird function to XSelection
loupgaroublond at gmail.com**20081222020730

This enables you to pass a function of (String -> String) to a selection function to modify the string before executing it.  This way, you can input your own escape routines to make it shell command line safe, and/or do other fancier things.
]
[ThreeColumnsMiddle
[fix-fromJust-errors
rupa at lrrr.us**20081224045509

bogner wrote all this stuff and i just tested it.

myLogHook = ewmhDesktopLogHookCustom ScratchpadFilterOutWorkspace >> updatePointer Nearest

Everytime I invoked or hid Scratchpad, it would leave a 'Maybe.fromJust: Nothing' line in .xsession-errors, and updatePointer would stop working.

]
[ Prompt: Change Filemode to 600 for history-file (fixes bug 244)
Dominik Bruhn <dominik at dbruhn.de>**20081218001601]
[X.L.Monitor: changes in message passing
Roman Cheplyaka <roma at ro-che.info>**20081226220851
- transform mbName (Maybe String) to name (String)
- slghtly change semantics of messages, document it
]
[X.L.Monitor: change interface
Roman Cheplyaka <roma at ro-che.info>**20081226213118
]
[X.U.WindowProperties: propertyToQuery+docs
Roman Cheplyaka <roma at ro-che.info>**20081225080702]
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081225073904]
[hlintify XUtils, XSelection, Search, WindowGo
gwern0 at gmail.com**20081220153302
Ignore-this: 7e877484e3cd8954b74232ea83180fa9
]
Norbert Zeh <nzeh at cs.dal.ca>**20081212203532

This patch ensures that the focus (or in fact the whose windowset)
does not change as a result of a banishScreen.  The way this is implemented
]
Norbert Zeh <nzeh at cs.dal.ca>**20081212192621

This works on top of warpToScreen and, thus, suffers from the same issue:
focus change.
]
[fixed documentation for banish
Norbert Zeh <nzeh at cs.dal.ca>**20081212191819

banish actually warps to the specified corner of the current window, not
the screen.
]
Norbert Zeh <nzeh at cs.dal.ca>**20081212184836

Grid and TallGrid.  The former is a customizable version of Grid.  The latter
is a combination of Grid and Tall (see doc of the module).
]
[Add FixedColumn, a layout like Tall but based on the resize hints of windows
Justin Bogner <mail at justinbogner.com>**20081213073054]
[XMonad.Actions.WindowGo: fix a floating-related focus bug
gwern0 at gmail.com**20081205150755
If a floating window was focused, a cross-workspace 'raise' would cause a loop of
shifting windows. Apparently the problem was 'focus' and its mouse-handling. Spencer
suggested that the calls to focus be replaced with 'focusWindow', which resolved it.
]
[Prompt.hs: +greenXPConfig and amberXPConfig
gwern0 at gmail.com**20081119213122
Ignore-this: 95ac7dbe9c8fe3618135966f251f4fc6
]
[Prompt.hs: increase font size to 12 from niggardly 10
gwern0 at gmail.com**20081119212523
Ignore-this: 74a6e1ac5e1774da4ffc7c6667c034c
]
[Prompt.hs: replace magic numbers with understandable names
gwern0 at gmail.com**20081119212502
Ignore-this: 8401c0213be9a32c925e1bd0ba5e01f1
]
[X.L.Monitor: recommend doHideIgnore (docs)
Roman Cheplyaka <roma at ro-che.info>**20081215190710]
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081215184423]
[X.L.Monitor: export Monitor datatype
Roman Cheplyaka <roma at ro-che.info>**20081215184318]
Roman Cheplyaka <roma at ro-che.info>**20081215182758]
[Add KDE 4 config, thanks to Shirakawasuna on IRC
Spencer Janssen <spencerjanssen at gmail.com>**20081211071141
Ignore-this: 51698961ab5b6e569c294d174f2804a9
]
[I use the deleteConsecutive history filter
Spencer Janssen <spencerjanssen at gmail.com>**20081025070438]
[XMonad.Prompt: swap up and down per bug #243
gwern0 at gmail.com**20081203013323
Ignore-this: 8ab0481a0da7a983f501ac2fec4a68e8
]
[Fix boolean operator precedence in GridSelect keybindings
The vim-like hjkl keys were ORed to the key event AND arrow keys.
]
[GridSelect.hs: navigate grid with h,j,k,l as well as arrow keys
sean.escriva at gmail.com**20081122084725]
[Export setOpacity from FadeInactive. Document how to make monitor transparent (X.L.Monitor)
Roman Cheplyaka <roma at ro-che.info>**20081117153027]
Roman Cheplyaka <roma at ro-che.info>**20081117133957]
Roman Cheplyaka <roma at ro-che.info>**20081117130115]
[Monitor: documented one more issue
Roman Cheplyaka <roma at ro-che.info>**20081117113807]
[Monitor: improved the docs
Roman Cheplyaka <roma at ro-che.info>**20081117073709]
Roman Cheplyaka <roma at ro-che.info>**20081115104735]
Roman Cheplyaka <roma at ro-che.info>**20081115104525]
[ManageHelpers: added doSideFloat (generalization of doCenterFloat)
Roman Cheplyaka <roma at ro-che.info>**20081114113015]
[GridSelect: Export default_colorizer
Dominik Bruhn <dominik at dbruhn.de>**20081112140005]
[Simplify code for restriction-calculation and remove compiletime warnings
Dominik Bruhn <dominik at dbruhn.de>**20081112134630]
[Simplify handle/eventLoop, introduce findInWindowMap, partial updates for key movements (less flickering)
Clemens Fruhwirth <clemens at endorphin.org>**20081111100405

* handle/eventLoop carried the display and the drawing window as
parameters. The display is available from the embedded X monad, the

* updateWindows now takes a list of windows to

* only the windows that are modified by key movements are redrawn
now. This means less flickering.

]
[GridSelect: force cursor stay in visible area
Roman Cheplyaka <roma at ro-che.info>**20081111063348]
[GridSelect: fix infiniteness problem with diamondRestrict
Roman Cheplyaka <roma at ro-che.info>**20081111055350]
[GridSelect: remove tabs
Roman Cheplyaka <roma at ro-che.info>**20081111053647]
[Exported shrinkWhile from Decoration to use in GridSelect
Roman Cheplyaka <roma at ro-che.info>**20081110191534]
Roman Cheplyaka <roma at ro-che.info>**20081110190617]
[GridSelect: various improvements
Roman Cheplyaka <roma at ro-che.info>**20081110184644
Restricted export list for the sake of haddock
withSelectedWindow
bringSelected (by Clemens Fruhwirth)
goToSelected (by Dominik Bruhn)
]
[Initial version of GridSelect.hs with a lot room for improvement/cleanups
Clemens Fruhwirth <clemens at endorphin.org>**20081107115114]
sean.escriva at gmail.com**20081106171707]
[typo
Don Stewart <dons at galois.com>**20081104043044
Ignore-this: bdac0ff3316c821bce321b51c62f6e89
]
[place an upper bound on the version of base we support
Don Stewart <dons at galois.com>**20081104035857
Ignore-this: 29139cc4f0ecb299b56ae99f7d20b854
]
[explicit import list for things in the process library
Don Stewart <dons at galois.com>**20081104035319
Ignore-this: 91b7f96421828788760e8bcff7dec317
]
[Work around ghc 6.10 bug #2738
Don Stewart <dons at galois.com>**20081104034819
Ignore-this: c75da9693fa642025eac0d074869423d
]
[windowPromptBringCopy
Travis B. Hartwell <nafai at travishartwell.net>**20081027005523]
[Search.hs: +hackage search, courtesy of byorgey
gwern0 at gmail.com**20081031214937
Ignore-this: 24db0ceed49f8bd37ce98ccf8f8ca2ab
]
[Prompt.hs rename deleteConsecutiveDuplicates
gwern0 at gmail.com**20081008205131
That name is really unwieldy and long.
]
[Prompt.hs: have historyCompletion filter dupes
gwern0 at gmail.com**20081008204710
Specifically, it calls deleteConsecutiveDuplicates on the end product. uniqSort reverses order in an unfortunate way, so we don't use that.
The use-case is when a user has added the same input many times - as it stands, if the history records 30 'top's or whatever, the completion will show 30 'top' entries! This fixes that.
]
gwern0 at gmail.com**20081008204649]
[Prompt.hs: mv uniqSort to next to its confreres, and mention the trade-off
gwern0 at gmail.com**20081008192645]
Joachim Breitner <mail at joachim-breitner.de>**20081008195643]
[Kill window without focusing it first
Joachim Breitner <mail at joachim-breitner.de>**20081005002533
Before this patch, people would experience ?workspace flicker? when closing
a window via EWMH that is not on the current workspace, for example when
quitting pidgin via the panel icon.
]
[let MagnifyLess actually magnify less
daniel at wagner-home.com**20081015153911]
[Actions.Search: add a few search engines
intrigeri at boum.org**20081008104033

Add Debian {package, bug, tracking system} search engines, as well as Google
Images and isohunt.

]
[Implement HiddenNonEmptyWS with HiddenWS and NonEmptyWS
Joachim Breitner <mail at joachim-breitner.de>**20081006211027
(Just to reduce code duplication)
]
Joachim Breitner <mail at joachim-breitner.de>**20081006210548
With NonEmptyWS and HiddenNonEmptyWS present, HiddenWS is obviously missing.
]
[Merge emptyLayoutMod into redoLayout
Joachim Breitner <mail at joachim-breitner.de>**20081005190220
This removes the emptyLayoutMod method from the LayoutModifier class, and
change the Stack parameter to redoLayout to a Maybe Stack one. It also changes
all affected code. This should should be a refactoring without any change in
program behaviour.
]
[SmartBorders even for empty layouts
Joachim Breitner <mail at joachim-breitner.de>**20081005184426
]
gwern0 at gmail.com**20080927150158]
gwern0 at gmail.com**20080927145238]
[minor explanatory comment
daniel at wagner-home.com**20081003015919]
Lukas Mai <l.mai at web.de>**20080930141715]
Lukas Mai <l.mai at web.de>**20080930140056]
gwern0 at gmail.com**20080926232056]
[fix a divide by zero error in Grid
daniel at wagner-home.com**20080926204148]
[-DUTF8 flag with -DUSE_UTF8
gwern0 at gmail.com**20080921154014]
[XSelection.hs: use CPP to compile against utf8-string
gwern0 at gmail.com**20080920151615]
Devin Mullins <me at twifkak.com>**20080924044946]
[flip GridRatio to match convention (x/y)
Devin Mullins <me at twifkak.com>**20080922033354]
[let Grid have a configurable aspect ratio goal
daniel at wagner-home.com**20080922010950]
gwern0 at gmail.com**20080921155038]
[Paste.hs: shorten comment lines to under 80 columns per sjanssen
gwern0 at gmail.com**20080921154950]
[Forgot to enable historyFilter :(
Spencer Janssen <spencerjanssen at gmail.com>**20080921094254]
Spencer Janssen <spencerjanssen at gmail.com>**20080921093453]
[Update my config to use 'statusBar'
Spencer Janssen <spencerjanssen at gmail.com>**20080921063513]
[Rename pasteKey functions to sendKey
Spencer Janssen <spencerjanssen at gmail.com>**20080921062016]
[DynamicLog: doc fixes
Spencer Janssen <spencerjanssen at gmail.com>**20080921061314]
Spencer Janssen <spencerjanssen at gmail.com>**20080921060947]
[Depend on X11 >= 1.4.3
Spencer Janssen <spencerjanssen at gmail.com>**20080921055456]
[statusBar now supplies the action to toggle struts
Spencer Janssen <spencerjanssen at gmail.com>**20080918013858]
[cleanup - use currentTag
Devin Mullins <me at twifkak.com>**20080921011159]
[XPaste.hs: improve author info
gwern0 at gmail.com**20080920152342]
[+XMonad.Util.XPaste: a module for pasting strings to windows
gwern0 at gmail.com**20080920152106]
[UrgencyHook bug fix: cleanupUrgents should clean up reminders, too
Devin Mullins <me at twifkak.com>**20080920062117]
Spencer Janssen <spencerjanssen at gmail.com>**20080917081838]
[raiseMaster
seanmce33 at gmail.com**20080912184830]
[Add missing space between dzen command and flags
Daniel Neri <daniel.neri at sigicom.com>**20080915131009]
[Big DynamicLog refactor.  Added statusBar, improved compositionality for dzen and xmobar
Spencer Janssen <spencerjanssen at gmail.com>**20080913205931
Compatibility notes:
- dzen type change
- xmobar type change
- dynamicLogDzen removed
- dynamicLogXmobar removed
]
Spencer Janssen <spencerjanssen at gmail.com>**20080911230442]
[Overhaul Prompt to use a zipper for history navigation.  Fixes issue #216
Spencer Janssen <spencerjanssen at gmail.com>**20080911225940]
[Use the new completion on tab setting
Spencer Janssen <spencerjanssen at gmail.com>**20080911085940]
[Only start to show the completion window with more than one match
Joachim Breitner <mail at joachim-breitner.de>**20080908110129]
Joachim Breitner <mail at joachim-breitner.de>**20080908105758
This patch partially implements
It adds a XPConfig option that, if enabled, hides the completion window
until the user presses Tab once. Default behaviour is preserved.
TODO: If Tab causes a unique completion, continue to hide the completion
window.
]
[XMonad.Actions.Plane.planeKeys: function to make easier to configure
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080714153601]
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080714152631]
[Improvements in documentation
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080709002425]
Spencer Janssen <spencerjanssen at gmail.com>**20080911040808]