[Xmonad] darcs patch: SshPrompt.hs: support global known hosts, clean up host list

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Mon Sep 10 00:32:12 EDT 2007

New patches:

Brandon S Allbery KF8NH <allbery at ece.cmu.edu>**20070909222432
Add support for global ssh known hosts file, which is checked for via
$SSH_KNOWN_HOSTS or a standard list of locations.  This is stripped of
comments and hashed hosts, combined with the local hosts file (which is
trated the same way), and duplicates eliminated.
] {
hunk ./SshPrompt.hs 28
+import Data.List
+import Data.Maybe
hunk ./SshPrompt.hs 58
hunk ./SshPrompt.hs 60
-sshComplList = do
+sshComplList =  (nub . sort) `fmap` liftM2 (++) sshComplListLocal  
+sshComplListLocal :: IO [String]
+sshComplListLocal = do
hunk ./SshPrompt.hs 65
-  let kh = h ++ "/.ssh/known_hosts"
+  sshComplListFile $ h ++ "/.ssh/known_hosts"
+sshComplListGlobal :: IO [String]
+sshComplListGlobal = do
+  env <- getEnv "SSH_KNOWN_HOSTS" `catch` (\_ -> return "/nonexistent")
+  fs <- mapM fileExists [ env
+                        , "/usr/local/etc/ssh/ssh_known_hosts"
+                        , "/usr/local/etc/ssh_known_hosts"
+                        , "/etc/ssh/ssh_known_hosts"
+                        , "/etc/ssh_known_hosts"
+                        ]
+  case catMaybes fs of
+    []    -> return []
+    (f:_) -> sshComplListFile' f
+sshComplListFile :: String -> IO [String]
+sshComplListFile kh = do
hunk ./SshPrompt.hs 83
-  if f then do l <- readFile kh
-               return $ map (takeWhile (/= ',') . concat . take 1 .  
words) (lines l)
+  if f then sshComplListFile' kh
hunk ./SshPrompt.hs 86
+sshComplListFile' :: String -> IO [String]
+sshComplListFile' kh = do
+  l <- readFile kh
+  return $ map (takeWhile (/= ',') . concat . take 1 . words)
+         $ filter nonComment
+         $ lines l
+fileExists :: String -> IO (Maybe String)
+fileExists kh = do
+  f <- doesFileExist kh
+  if f then return $ Just kh
+       else return Nothing
+nonComment :: String -> Bool
+nonComment []      = False
+nonComment ('#':_) = False
+nonComment ('|':_) = False -- hashed, undecodeable
+nonComment _       = True


[Unify Drag(UpDown)Pane
Karsten Schoelzel <kuser at gmx.de>**20070904210312]
[add function and comment assisting use in resizing the screen.
David Roundy <droundy at darcs.net>**20070906125543]
[Add FloatKeys for moving and resizing of floating windows with the  
Karsten Schoelzel <kuser at gmx.de>**20070905212531]
[Fix FlexibleResize for change in applySizeHints
Karsten Schoelzel <kuser at gmx.de>**20070905193926]
[make dragPane handle thinner.
David Roundy <droundy at darcs.net>**20070905124139]
[cleanup in WorkspaceDir.
David Roundy <droundy at darcs.net>**20070827185833]
[new SetWMName module, useful for working around problems running  
Java GUI applications.
Ivan Tarasov <Ivan.Tarasov at gmail.com>**20070826004411]
[remove LayoutHooks module (which is unused).
David Roundy <droundy at darcs.net>**20070823154520]
[cleanup in DwmPromote.
David Roundy <droundy at darcs.net>**20070823155437]
[cleanup in ViewPrev.
David Roundy <droundy at darcs.net>**20070823155405]
[clean up CopyWindow.
David Roundy <droundy at darcs.net>**20070823155912]
[Add CycleWS to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070905203137]
[CycleWS: a couple of simple functions to cycle between workspaces
Andrea Rossato <andrea.rossato at unibz.it>**20070821061132]
[make Contrib use WorkspaceId = type String.
David Roundy <droundy at darcs.net>**20070820113813]
[Add HintedTile docstring
Spencer Janssen <sjanssen at cse.unl.edu>**20070905200310]
[Docstring parser for generating xmonad build configs with default  
settings for extensions
Alex Tarkovsky <alextarkovsky at gmail.com>**20070905200128]
[TAG 0.3
Spencer Janssen <sjanssen at cse.unl.edu>**20070905022947]
[docs not generated in DragPane.hs
Don Stewart <dons at cse.unsw.edu.au>**20070904232447]
[HintedTile typo
Spencer Janssen <sjanssen at cse.unl.edu>**20070904202804]
Spencer Janssen <sjanssen at cse.unl.edu>**20070904202219]
[Doc fixes for DragPane
Spencer Janssen <sjanssen at cse.unl.edu>**20070904201847]
[XPrompt: a very long string in the completion list can lead to a  
division by zero
Andrea Rossato <andrea.rossato at unibz.it>**20070830141524]
[XPrompt.hs: remove debugging bits
Andrea Rossato <andrea.rossato at unibz.it>**20070828081235]
[make code more compact in XPrompt.
David Roundy <droundy at darcs.net>**20070827191830]
[XPrompt: just code formatting
Andrea Rossato <andrea.rossato at unibz.it>**20070822193220]
[fix bug leading to early exit in XPrompt.
David Roundy <droundy at darcs.net>**20070827185858]
[fix bug where we draw divider for DragPane even if there's just one  
David Roundy <droundy at darcs.net>**20070823155810]
[CopyWindow: update usage info
Spencer Janssen <sjanssen at cse.unl.edu>**20070820232834]
[add DragPane.
David Roundy <droundy at darcs.net>**20070813144007]
[fix bug in Combo where we ignored changes in super.
David Roundy <droundy at darcs.net>**20070813143500]
[remove redundant fromIntegral from Commands.
David Roundy <droundy at darcs.net>**20070820000925]
[Mosaic.hs (really) Fix incorrect usage example
Jason Creighton <jcreigh at gmail.com>**20070818215725
"tall" and "wide" are anachronisms as well. It makes me wonder how we  
and/or should give examples like this that don't bitrot and confuse  
[Mosaic.hs: Fix incorrect usage example
Jason Creighton <jcreigh at gmail.com>**20070818212854]
[XPrompt: haddock tuning and more comments
Andrea Rossato <andrea.rossato at unibz.it>**20070818083423]
[SwitchTrans:: haddock tuning
Andrea Rossato <andrea.rossato at unibz.it>**20070818083401]
[RunInXTerm: haddock tuning
Andrea Rossato <andrea.rossato at unibz.it>**20070818083329]
[RotSlaves: haddock tuning
Andrea Rossato <andrea.rossato at unibz.it>**20070818083306]
[Roledex: haddock tuning
Andrea Rossato <andrea.rossato at unibz.it>**20070818083244]
[LayoutHelpers: haddock tuning
Andrea Rossato <andrea.rossato at unibz.it>**20070818083220]
[DirectoryPrompt: removed ShellPrompt usage info and added pointer to  
Andrea Rossato <andrea.rossato at unibz.it>**20070818083105]
[DeManage: haddock fixes
Andrea Rossato <andrea.rossato at unibz.it>**20070818083036]
[MetaModule: removed BackCompat no longer in the repository
Andrea Rossato <andrea.rossato at unibz.it>**20070818071916]
[fix MagicFocus/floats interaction
Peter De Wachter <pdewacht at gmail.com>**20070816185217]
[fix Circle/floats interaction
Peter De Wachter <pdewacht at gmail.com>**20070816185144]
[XPrompt: documentation only
Andrea Rossato <andrea.rossato at unibz.it>**20070817162806]
[ShellPrompt: quickcheck related refactoring
Andrea Rossato <andrea.rossato at unibz.it>**20070817155725]
[added a tests directory with quickcheck tests for XPrompt and  
Andrea Rossato <andrea.rossato at unibz.it>**20070817155634]
[XPrompt: quickcheck related refactoring
Andrea Rossato <andrea.rossato at unibz.it>**20070817155454
With this patch XPrompt can be tested with quickcheck. As a result
getLastWord and skipLastWord has been refactored to avoid possible
[XPrompt: fixes a nasty bug in getLastWord
Andrea Rossato <andrea.rossato at unibz.it>**20070815163457
This patch fixes a nasty bug in getLastWord, a bug that causes XMonad
to crash as soon as the command line consists of only 2 empty spaces.
*PLEASE UPDATE* if you are running XPrompt.
[ghc thinks I don't need those fromIntegrals
l.mai at web.de**20070815231852]
[use XPrompt in WorkspaceDir.
David Roundy <droundy at darcs.net>**20070814191103]
[clean up DynamicWorkspaces to handle layouts properly.
David Roundy <droundy at darcs.net>**20070814183542]
[make DynamicWorkspace more thorough.
David Roundy <droundy at darcs.net>**20070814014548
Note: there's still a bug due to our failure to inform
the old layouts to clean up.
[new module DynamicWorkspaces to add and remove workspaces.
David Roundy <droundy at darcs.net>**20070814011501]
[fix Commands to work with new workspaces.
David Roundy <droundy at darcs.net>**20070814004146]
[Make FlexibleManipulate comply with new mouse dragging system
Spencer Janssen <sjanssen at cse.unl.edu>**20070815032619]
[make FlexibleResize use new mouseDrag properly.
David Roundy <droundy at darcs.net>**20070807202016]
[fix Expand/Shrink for spiralWithDir
bobstopper at bobturf.org**20070808204752]
[Remove GreedyView: the functionality is now in StackSet
Spencer Janssen <sjanssen at cse.unl.edu>**20070815022101]
[Use maskEvent rather than nextEvent.  Fixes rare segfaults
Spencer Janssen <sjanssen at cse.unl.edu>**20070814170416]
[Decoration: don't crash when given a non-existent font
Andrea Rossato <andrea.rossato at unibz.it>**20070810182433]
[actually use the selected font in XPrompt.
David Roundy <droundy at darcs.net>**20070810174543]
[increase default contrast in XPrompt.
David Roundy <droundy at darcs.net>**20070810174724]
[center prompt text in window.
David Roundy <droundy at darcs.net>**20070810173746]
[don't crash when given a non-existent font in XPrompt.
David Roundy <droundy at darcs.net>**20070810170445]
[Add ViewPrev to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070810211242]
nelhage at mit.edu**20070810032653
Add a ViewPrev extension which gives a viewPrev command to view the
previously visible workspace.
[fix CopyWindow to not require Integral WorkspaceId.
David Roundy <droundy at darcs.net>**20070801144543]
[SshPrompt now uses RunInXTerm to launch the command
Andrea Rossato <andrea.rossato at unibz.it>**20070807101911]
[RunInXTerm: a simple module to run commands in an X terminal
Andrea Rossato <andrea.rossato at unibz.it>**20070807101603
This is just a wrapper around spawn to launch commands in an X
terminal: runInXTerm will check the for the XTERMCMD environmental
variable, and use it to run the command. If the variable is not set
the command will be executed with xterm.
[XPrompt: removed touchFile (which is not the equivalent of touch!)
Andrea Rossato <andrea.rossato at unibz.it>**20070805225906]
[LayoutScreen: haddock cleanup
Andrea Rossato <andrea.rossato at unibz.it>**20070805215800]
[XPrompt.hs: getCompletion should check for completions of the last  
word of the command line
Andrea Rossato <andrea.rossato at unibz.it>**20070805124130]
[work around Magnifier's problems with floating windows
Peter De Wachter <pdewacht at gmail.com>**20070805141051]
[Add Roledex to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070806151628]
[XPrompt.hs: read history lazily
Andrea Rossato <andrea.rossato at unibz.it>**20070804185914
Instead of forcing the reading of all the history file we read it  
[XPrompt.hs: removed defaultPromptConfig. use defautlXPConfig instead
Andrea Rossato <andrea.rossato at unibz.it>**20070804183252]
[weird formatting fixed
Don Stewart <dons at cse.unsw.edu.au>**20070806032739]
tim.thelion at gmail.com**20070804235730
Cascading windows...
[XPrompt.hs: haddock corrections and some comments
Andrea Rossato <andrea.rossato at unibz.it>**20070804104622]
[XMonadPrompt.hs: minor haddock corrections
Andrea Rossato <andrea.rossato at unibz.it>**20070804104534]
[SwitchTrans.hs: minor haddock corrections
Andrea Rossato <andrea.rossato at unibz.it>**20070804104458]
[SshPrompt.hs: minor haddock corrections
Andrea Rossato <andrea.rossato at unibz.it>**20070804104441]
[ShellPrompt.hs: minor haddock corrections
Andrea Rossato <andrea.rossato at unibz.it>**20070804104408]
[FlexibleManipulate.hs: minor haddock corrections
Andrea Rossato <andrea.rossato at unibz.it>**20070804104330]
[MetaModule: added XPrompt and others
Andrea Rossato <andrea.rossato at unibz.it>**20070804093049
XPrompt, XMonadPrompt, SshPrompt.
ShellPrompt is commented out since it requires readline and the related
xmonad.cabal modifications.
[XPrompt: fixes a couple of bugs
Andrea Rossato <andrea.rossato at unibz.it>**20070804090817
- we run the action passed to mkXPrompt only if we have a command;
- updateWindows must call destroyComplWin if there are no completions;
- some comments (more to come)
- a shorthand in keyPressHandle
- removed all warnings
[RotSlaves rework
Karsten Schoelzel <kuser at gmx.de>**20070803185337
Rework the logic of RotSlaves and rename it RotSlavesDown, add  
RotSlavesUp. These rotate
the slaves in different directions.
Also changed the usage, eliminating the need for "windows" in the  
[XPrompt: code cleanup
Andrea Rossato <andrea.rossato at unibz.it>**20070803181905
The completion list is not cached anymore: this greatly simplify the  
making its runtime behaviour more predictable...;-) Suggested by  
[Make 'compList :: [String]', rather than Maybe.  No completions is  
represented by []
Spencer Janssen <sjanssen at cse.unl.edu>**20070803160424]
[Rename 'setCompletionList' to 'refreshCompletionList'
Spencer Janssen <sjanssen at cse.unl.edu>**20070803155942]
[XPrompt: added comletion and history support
Andrea Rossato <andrea.rossato at unibz.it>**20070803154531
This is a long patch the brings us a real prompt, more or less:  
now work. Added history support, with a configuration option: defaul  
size is 256.
defaultPromptConfig is now deprecated: please use defaultXPConfig  
[Prompts: updated and corrected usage info
Andrea Rossato <andrea.rossato at unibz.it>**20070803130158]
[Make the XPrompt appear on the current screen
Spencer Janssen <sjanssen at cse.unl.edu>**20070802184231]
[XPrompt: a module for easily writing graphical prompts
Andrea Rossato <andrea.rossato at unibz.it>**20070802171552]
[ XMonadPrompt: a graphical prompt for running XMonad internal commands
Andrea Rossato <andrea.rossato at unibz.it>**20070802165336]
[SshPrompt: a graphical prompt for ssh connection
Andrea Rossato <andrea.rossato at unibz.it>**20070802155943]
[ShellPrompt: a graphical shell prompt
Andrea Rossato <andrea.rossato at unibz.it>**20070802155845
This module requires readline and so a modification to xmonad.cabal. See
usage for instructions.
[FlexibleManipulate.hs: needs -fglasgow-exts to compile.
joachim.fasting at gmail.com**20070802144042]
[MetaModule.hs: add FocusNth.
joachim.fasting at gmail.com**20070802144023]
[Add ThreeColumns to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070802143356]
[Add RotSlaves to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070802143334]
Hans Philipp Annen <haphi at gmx.net>**20070802094408]
[DeManage.hs: haddock compatibility.
joachim.fasting at gmail.com**20070725100910]
[Fix warnings in FlexibleManipulate (Sorry!)
Michael G. Sloan <mgsloan at gmail.com>**20070729032407]
[Add FlexibleManipulate extension
Michael G. Sloan <mgsloan at gmail.com>**20070729031402]
[Commands: refactoring to include in MetaModule
Andrea Rossato <andrea.rossato at unibz.it>**20070728132029
Just a small refactooring (well, now runCommand requires a command  
list, and
I added runCommand's that will take a string to run it against the  
command list) to include this module in MetaModule so that we can  
track it
in case of API changes (this patch has been requested by Spencer).
[SwitchTrans.hs, initial version
l.mai at web.de**20070728153826]
[fix WorkspaceDir (which was broken) using LayoutHelpers.
David Roundy <droundy at darcs.net>**20070726133520]
[FocusNth initial import
Karsten Schoelzel <kuser at gmx.de>**20070725203305]
[use a little more contrast in default tabs.
David Roundy <droundy at darcs.net>**20070724143723]
[3col fix: do not switch to tall layout on resize/incmastern
Kai Grossjohann <kai at emptydomain.de>**20070723212754]
[3col rounding
Kai Grossjohann <kai at emptydomain.de>**20070721204026]
[fix 3col layout for nmaster + 1 windows
Kai Grossjohann <kai at emptydomain.de>**20070721150825
Do like two column layout if there are nmaster+1 windows (putting 1  
in the right column).
[Three column layout
Kai Grossjohann <kai at emptydomain.de>**20070721144654
This layout is similar to tall, but has three columns.  The first column
is the master column.
[Made the direction of spiral in Spiral.hs optionally configurable
bobstopper at bobturf.org**20070721002307]
[DeManage: take a Window as argument
Spencer Janssen <sjanssen at cse.unl.edu>**20070718204410]
Spencer Janssen <sjanssen at cse.unl.edu>**20070718204041]
[Add XMonadContrib.DeManage: a module for unmanaging windows (like  
Spencer Janssen <sjanssen at cse.unl.edu>**20070718203107]
[Tabbed.hs: corrected error in Usage reported by Xavier Maillard
Andrea Rossato <andrea.rossato at unibz.it>**20070717050034]
[fixes Commands.hs
Andrea Rossato <andrea.rossato at unibz.it>**20070716164017]
[MetaModule.hs: add missing modules.
joachim.fasting at gmail.com**20070715205857]
[Magnifier: unbreak: raise focus window
Peter De Wachter <pdewacht at gmail.com>**20070630072206]
[Spiral.hs: correct module header.
joachim.fasting at gmail.com**20070707212836]
[LayoutScreens.hs: correct module header.
joachim.fasting at gmail.com**20070701215712]
[add FlexibleResize to MetaModule
l.mai at web.de**20070708130229]
[link to xinerama-dmenu patch for dmenu 3.2
Jason Creighton <jcreigh at gmail.com>**20070708021413
Thanks to Dave Harrison for an updated version of the patch.
[Tabbed: updated usage information
Andrea Rossato <andrea.rossato at unibz.it>**20070707065123]
[Tabs should stay beneath any floating window
Andrea Rossato <andrea.rossato at unibz.it>**20070707064941
This ifxes the issue reported by Geoffrey Alan Washburn: " Sometimes the
tabs will be drawn on top of floating windows." Not anymore!
[Tabbed: added more configuration options
Andrea Rossato <andrea.rossato at unibz.it>**20070706130845
It is now possible to configure active and inactive border colors, and
active and inactive text colors (i.e. tabs are now very similar to Ion3
tabs: former Ion users may appreciate).
[NamedWindows: if fetchName returns Nothing sets the name to resName  
Andrea Rossato <andrea.rossato at unibz.it>**20070706130644
fetchName may return a Nothing if the window's name contains multi byte
characters. In such a case the resName string of the ClassHints of that
window will be used instead.
[the gaps list should be filled with the default value from Config.hs
Andrea Rossato <andrea.rossato at unibz.it>**20070704224110]
[SimpleStacking: -Wall police
Alec Berryman <alec at thened.net>**20070704201255]
[SimpleStacking: remove note about Xinerama incompatability, works  
fine now
Alec Berryman <alec at thened.net>**20070704200626]
[ScreenLayouts.hs: updates to the last API changes
Andrea Rossato <andrea.rossato at unibz.it>**20070703201145
A silent API change broke this nice piece of David's code: Spencer  
to move screen details into StackSet, and there we went to manipulate  
[More ScreenDetails fixes
Spencer Janssen <sjanssen at cse.unl.edu>**20070630065916]
[Make GreedyView work with ScreenDetails
Spencer Janssen <sjanssen at cse.unl.edu>**20070630065643]
[flexible resizing for floating windows
l.mai at web.de**20070629171038
The default resize handler for floating windows warps the mouse  
pointer to
the bottom right corner of the window (fixing the opposite, upper left,
corner). This extension lets you use any of the four window corners as
grabbing points, allowing more flexible resizing.
[resolve conflicts in Decoration and Tabbed.
David Roundy <droundy at darcs.net>**20070629204518
Note that you no longer need simpleStacking when using tabbed.
[resolve conflict in Square.
David Roundy <droundy at darcs.net>**20070629201636]
[clean up code in Combo.
David Roundy <droundy at darcs.net>**20070624171346
This adds some type safety, since the super-layout is now of a distinct
type from the sublayouts.  This avoids the ugliness we had, of passing
"fake" windows to the super layout.  Now we directly lay out the  
[add CopyWindow module, to support sticky/tagged windows.
David Roundy <droundy at darcs.net>**20070624155648
This module allows dwm-style tagging (as I understand dwm).  You can  
have a
given window visible in multiple workspaces.  If it's visible in two
workspaces both of which are visible, a gap will show up in one of them
(which is something that needs fixing in xmonad core).  Also defines a
kill1 which is like kill, but only removes from the current workspace a
window if it's in multiple workspaces.
[make everything work with new doLayout.
David Roundy <droundy at darcs.net>**20070623210952
This modifies all the contrib modules to work (so far as I know) with  
new contrib layout.  The exception is the LayoutHooks module, which  
used.  It exports an API that is inherently unsafe, so far as I can tell
(and always has been).
[move Accordian to use idModify.
David Roundy <droundy at darcs.net>**20070623143745]
[introduce idModify which is just "const (return Nothing)".
David Roundy <droundy at darcs.net>**20070623143542]
[move Spiral to LayoutHelpers.
David Roundy <droundy at darcs.net>**20070623143516]
[Note that SimpleStacking is incompatible with Xinerama
Jason Creighton <jcreigh at gmail.com>**20070627035426
It's unclear to me what SimpleStacking is supposed to accomplish, so  
I'm just
going to note that it doesn't work with Xinerama. (Due to assuming  
that the
current workspace is the one being laid out)
[Tabbed: Make use of the Stack to get focused window
Jason Creighton <jcreigh at gmail.com>**20070627033910]
[Accordion.hs: whitespace.
joachim.fasting at gmail.com**20070626071449
Makes Haddock not complain about not finding documentation for '$'.
[MetaModule.hs: add LayoutHelpers.
joachim.fasting at gmail.com**20070626065522
Also tweaks import ordering slightly.
[Tabbed.hs: updated usage information
Andrea Rossato <andrea.rossato at unibz.it>**20070625140735]
[added configration options and moved font stuff to Decorations.hs
Andrea Rossato <andrea.rossato at unibz.it>**20070625140112
Added a new data type to keep configuration options. tabbed now takes  
the shrinker and the configuration
Fixed a bug related to vertical alignment of text.
[Decoration.hs: added automatic font managment
Andrea Rossato <andrea.rossato at unibz.it>**20070625135722
newDecoration now takes also a fontname to set fonts in decorations  
that use them.
If an empty string is send the the default Xorg fonts will be loaded.
[fix usage instructions on NoBorders.
David Roundy <droundy at darcs.net>**20070624141631]
[remove BackCompat.hs
daniel at wagner-home.com**20070624171740]
[Square.hs: put usage instructions after imports for Haddock  
joachim.fasting at gmail.com**20070623184938]
[Magnifier.hs: quote screenshot url for Haddock compatibility.
joachim.fasting at gmail.com**20070623223227]
[add new LayoutHelpers module.
David Roundy <droundy at darcs.net>**20070622142950]
[Add SinkAll module.
joachim.fasting at gmail.com**20070623050510
Provides a means of pushing all windows on the current workspace back  
tiling. Not all that useful, but might be preferable to restarting or  
pushing windows.
[Magnifier.hs: needs -fglasgow-exts to compile.
joachim.fasting at gmail.com**20070622111442]
[fix usage info for LayoutScreens.
David Roundy <droundy at darcs.net>**20070622132618]
[add new LayoutScreens module.
David Roundy <droundy at darcs.net>**20070622131300]
[Magnifier: raise the focus window
Peter De Wachter <pdewacht at gmail.com>**20070621192541]
[Circle: raise the focus window
Peter De Wachter <pdewacht at gmail.com>**20070621191207]
[Circle cleanups
Peter De Wachter <pdewacht at gmail.com>**20070621191125]
[make Mosaic lay thigs out a bit better.
David Roundy <droundy at darcs.net>**20070621162632]
[add SimpleStacking module to make Combo and Tabbed work together.
David Roundy <droundy at darcs.net>**20070621151524
WARNING! This change will break existing Tabbed configurations.  The
problem is that there is no way within a Layout's "doLayout" to safely
modify the layout itself.  This makes LayoutHooks fragile, and more  
to the
point, makes SimpleStacking fragile, so we can't safely define a
tabbed' = simpleStacking . tabbed
A workaround would have been to duplicate the tabbed code, but I'd  
leave the ugliness and get this fixed.
[Make Magnifier's master window behavior customizable
Peter De Wachter <pdewacht at gmail.com>**20070620170020
based on a suggestion by Tim Hobbs
joachim.fasting at gmail.com**20070620115852]
[Make Mosaic compile without warnings
Spencer Janssen <sjanssen at cse.unl.edu>**20070620153111]
[make some layouts more general.
David Roundy <droundy at darcs.net>**20070620125420]
[Mosaic.hs: get rid off some of the warnings generated by -Wall.
joachim.fasting at gmail.com**20070620123449
Unused definitions and imports left in, as I assume they'll be used for
something later on.
[MetaModule.hs: add LayoutHooks.
joachim.fasting at gmail.com**20070620115457]
[Combo.hs: use case instead of non-standard pattern matching.
joachim.fasting at gmail.com**20070620112805
Also uses fmap/maybe instead of do/case, which makes the code look a  
cleaner (imo).
Please note that I've only been able to test this briefly, but it  
seems to be
working like it's supposed to.
[Combo.hs: tweak usage instructions.
joachim.fasting at gmail.com**20070620112555
tabbed needs an additional argument.
[README: change reference to 'examples/'.
joachim.fasting at gmail.com**20070620093753]
[Use Data.Ord.comparing in DynamicLog
Shachaf Ben-Kiki <shachaf at gmail.com>**20070620011016
This patch replaces (compare `on`) with Data.ord.comparing, so on  
doesn't have
to be defined.
[Fix type signatures.
joachim.fasting at gmail.com**20070619220323
Think this fixes the rest of the errors caused by the Layout change.
[MagicFocus.magicFocus: fix type signature.
joachim.fasting at gmail.com**20070619214839
Layout change caused because of missing type argument.
[LayoutHooks.hs: add module header.
joachim.fasting at gmail.com**20070619204504]
[Factor out pprWindowSet (and Xinerama version) from dynamicLog.
Shachaf Ben-Kiki <shachaf at gmail.com>**20070619183657
This patch lets you pretty-print a WindowSet to a string, rather than  
printing it out to stdout directly.
[clean up TwoPane to work on Stacks as it ought.
David Roundy <droundy at darcs.net>**20070619150928]
[run-xmonad.sh: don't hard-code path to mkfifo.
joachim.fasting at gmail.com**20070619124212
mkfifo isn't located in /sbin on all distributions (Gentoo puts it  
in /bin).
By temporarily appending /sbin to PATH both setups are supported.
'which' and friends are not viable options since /sbin usually isn't in
user's PATH by default.
[Anneal.hs: add module header.
joachim.fasting at gmail.com**20070619002849]
[run-xmonad.sh: use $HOME when setting PATH.
joachim.fasting at gmail.com**20070618234703]
[Circle.hs: only compute sqrt 2 once.
joachim.fasting at gmail.com**20070618232051]
[Magnifier.hs: add usage instructions.
joachim.fasting at gmail.com**20070618212215]
[MagicFocus.hs: add module header and usage instructions.
joachim.fasting at gmail.com**20070618205421]
[MagicFocus.magicFocus: add type signature.
joachim.fasting at gmail.com**20070618205222]
[Accordion.hs: add module header and usage instructions.
joachim.fasting at gmail.com**20070618193626]
[LayoutHints.hs: add usage thingie for Haddock.
joachim.fasting at gmail.com**20070618143234]
[LayoutHints.hs: add module header.
joachim.fasting at gmail.com**20070618143059]
[Dzen.hs: add module header.
joachim.fasting at gmail.com**20070618142915]
[MetaModule.hs: correct module header.
joachim.fasting at gmail.com**20070618191905]
[Remove all references to exec
Spencer Janssen <sjanssen at cse.unl.edu>**20070618201652]
[Add Accordion to MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070618190526]
[Add an "accordion" layout which puts non-focused windows in ribbons  
at the top and bottom of the screen.
glasser at mit.edu**20070618153943]
[RotView.rotView: use Data.Ord.comparing.
joachim.fasting at gmail.com**20070618144502
Looks a bit cleaner than '\x y -> compare (tag x) (tag y)'
[shrink window names to fit tabs.
David Roundy <droundy at darcs.net>**20070617152340]
[Tabbed.hs: fixed centerText issues and some binding shadowing warnings
Andrea Rossato <andrea.rossato at unibz.it>**20070617104219
This patch fixes the centerText issue due to the inappropriate use of
textExtends and textWidth. Those functions need a FontStruct id to
operate, and this cannot be retrieved with queryFont (see comments in
So we now get the FontStruct with loadQueryFont, we set the default
Xorg fonts and we calculate things for (vertical and horizontal)
It also removes some binding shadows compiler warnings
[fix leak in Combo.
David Roundy <droundy at darcs.net>**20070616191052
We leaked decorations, since UnDoLayout wasn't passed to the actual  
that had decorations attached.  :(
Spencer Janssen <sjanssen at cse.unl.edu>**20070617000924]
[Comment only
Spencer Janssen <sjanssen at cse.unl.edu>**20070617000805]
[Import typo
Spencer Janssen <sjanssen at cse.unl.edu>**20070614211337]
[Magnifier layout hack
Peter De Wachter <pdewacht at gmail.com>**20070614203219
This layout hack increases the size of the window that has focus (the  
window excepted). This causes it to overlap with nearby windows, so  
not for
tiling purists :)
Screenshot: http://caladan.rave.org/magnifier.png
[Use Haskell '98 data declaration rather than GADT-style
Spencer Janssen <sjanssen at cse.unl.edu>**20070614205211]
[WorkspaceDir.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144443]
[Warp.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144426]
[TwoPane.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144409]
[Submap.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144348]
[Square.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144317]
[Spiral.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144300]
[SimpleDate.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144241]
[RotView.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144225]
[NoBorders.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144200]
[NamedWindows.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144135]
[Mosaic.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144118]
[metaModule.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144102]
[HintedTile.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614144019]
[GreedyView.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143953]
[FindEmptyWorkspace.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143909]
[DynamicLog.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143839]
[DwmPromote.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143813]
[Dmenu.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143753]
[Decoration.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143731]
[Combo.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143700]
[Circle.hs: info and documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614143550]
[BackCompat.hs info e documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070614064850]
[Tabbed.hs: Get correct color values instead of assuming a 24-bit  
Jason Creighton <jcreigh at gmail.com>**20070613235049
Using, eg, 0xBBBBBB directly makes assumptions about the server's  
colormap and
only works on 24-bit displays.
This patch fetches the colors on every doLayout call, which is ugly,  
but works.
It would be nice if we could do all the required initColors only once.
[added info to Commands.hs
Andrea Rossato <andrea.rossato at unibz.it>**20070613190908
Haddock stuff.
[add bsd-style license for xmonad contrib
Don Stewart <dons at cse.unsw.edu.au>**20070614025454]
[Update license information
Spencer Janssen <sjanssen at cse.unl.edu>**20070613152829]
[template for module information e documentation
Andrea Rossato <andrea.rossato at unibz.it>**20070613131029]
[Remove some debugging statements I forgot about earlier
Stefan O'Rear <stefanor at cox.net>**20070613041112]
[Update MagicFocus to the new StackSet
Spencer Janssen <sjanssen at cse.unl.edu>**20070613035323]
[Magic Focus
Peter De Wachter <pdewacht at gmail.com>**20070612175357
Automatically puts the focused window in the master position. It's  
I wrote this for the Circle layout, but it's actually usable with other
layouts as well.
[add -fglasgow-exts to some modules that use it.
David Roundy <droundy at darcs.net>**20070612170349]
[changes to work with Stacks that can't be empty.
David Roundy <droundy at darcs.net>**20070612151209]
[add Combo and Square to MetaModule.
David Roundy <droundy at darcs.net>**20070612133753]
[new module NoBorders to let a given layout have windows without  
David Roundy <droundy at darcs.net>**20070612133727
This is designed for layouts like full and tabbed, where the red square
around the screen actually conveys no information (except for weird  
that use the shape extension or something, so that more than one  
window is
actually visible).  Save some real estate at no cost.
[make combo sort of work with new doLayout.
David Roundy <droundy at darcs.net>**20070612133027
For some reason (not entirely clear to me) this doesn't work properly  
yet with the tabbed layout.  :( But at least it'll compile.  The  
trouble is
that we have no way of tracking which tab ought to be visible without
adding a *lot* of infrastructure.  I'd rather have that  
infrastructure in
xmonad proper than reimplement all the focus-handling in combo, so  
for now
I'll just delay upgrading my xmonad at work...
[make square work with new doLayout.
David Roundy <droundy at darcs.net>**20070612133009]
[add "Square" layout.
David Roundy <droundy at darcs.net>**20070612021048
This is probably only ever useful in combination with Combo.
It sticks one window in a square region, and makes the rest
of the windows live with what's left (in a full-screen sense).
[add new combo layout combiner.
David Roundy <droundy at darcs.net>**20070611224922]
[In Decoration.hs, track rename of ModifyWindows
Stefan O'Rear <stefanor at cox.net>**20070612060713]
[Refactor Decoration into a general layout-level hooks interface, and  
a decoration support module on top of that
Stefan O'Rear <stefanor at cox.net>**20070612060210]
[the Stack can be Empty
Andrea Rossato <andrea.rossato at unibz.it>**20070612055144]
[Documentation fix
Spencer Janssen <sjanssen at cse.unl.edu>**20070612035655]
[Comment only
Spencer Janssen <sjanssen at cse.unl.edu>**20070612031305]
[Fix LayoutHints in the presence of nonzero border widths
Stefan O'Rear <stefanor at cox.net>**20070611005407]
[add keybinding to make aspect ratio flexible.
David Roundy <droundy at darcs.net>**20070611165915]
[Note the modules I maintain
Spencer Janssen <sjanssen at cse.unl.edu>**20070611184830]
[Add MetaModule
Spencer Janssen <sjanssen at cse.unl.edu>**20070611184601]
[Updates to work with recent API changes
Spencer Janssen <sjanssen at cse.unl.edu>**20070611183439]
[Rename safeIO to catchIO
Spencer Janssen <sjanssen at cse.unl.edu>**20070611162028]
[add WorkspaceDir, which sets the current directory in a workspace.
David Roundy <droundy at darcs.net>**20070611154041
Actually, it sets the current directory in a layout, since there's no  
way I
know of to attach a behavior to a workspace.  This means that any  
(or other programs) pulled up in that workspace (with that layout) will
execute in that working directory.  Sort of handy, I think.
Don Stewart <dons at cse.unsw.edu.au>**20070611053450]
[added dynamicLogXinerama, a workspace logger that's nicer for Xinerama
Jason Creighton <jcreigh at gmail.com>**20070611051810]
[redraw decorations on PropertyNotify
Jason Creighton <jcreigh at gmail.com>**20070611021408
newDecoration now takes a Window parameter, which is the window the  
is "for". If there is a PropertyNotify for that window, the  
decoration is
[use safe peek instead of unsafe focus
Jason Creighton <jcreigh at gmail.com>**20070611015437
Fixes crashing bug with Xinerama where you have a tabbed layout on  
one screen
and attempt to switch to an empty workspace on the other.
[make Tabbed respect the y position of the layout rect (statusbar  
Jason Creighton <jcreigh at gmail.com>**20070610231510]
[tune layout of Tabbed just a bit.
David Roundy <droundy at darcs.net>**20070610203513]
[make Decoration set the input mask appropriately.
David Roundy <droundy at darcs.net>**20070610203451]
[Updates for Layout API change
Spencer Janssen <sjanssen at cse.unl.edu>**20070610203840]
[color focussed tab differently.
David Roundy <droundy at darcs.net>**20070610195743]
[update Mosaic for latest changes.
David Roundy <droundy at darcs.net>**20070610145816]
[maximize rather than minimize the rating.
David Roundy <droundy at darcs.net>**20070601183240]
[fix error in select.
David Roundy <droundy at darcs.net>**20070601183147]
[improve changeMosaic.
David Roundy <droundy at darcs.net>**20070601175042]
[cut obsolete description of mosaic.
David Roundy <droundy at darcs.net>**20070609131456]
[start switching over to a Monte Carlo algorithm for Mosaic
David Roundy <droundy at darcs.net>**20070601170505]
[new layout algorithm for Mosaic.
David Roundy <droundy at darcs.net>**20070527191153]
[display names of windows on tabs.
David Roundy <droundy at darcs.net>**20070610163729]
[make Decoration draw the window initially.
David Roundy <droundy at darcs.net>**20070610163651
We still don't respond to expose events.  :(
[Fix name of xmonad-clock in compilation instructions.
glasser at mit.edu**20070610155204]
[add Decoration module to be used to easily define decorations.
David Roundy <droundy at darcs.net>**20070610153939]
[add sketch of tabbed layout.
David Roundy <droundy at darcs.net>**20070610153926]
[make LayoutHints work with new modifyLayout (in X).
David Roundy <droundy at darcs.net>**20070610145740]
[tag visibles with <N>
Don Stewart <dons at cse.unsw.edu.au>**20070610111931]
[tweak pkill
Don Stewart <dons at cse.unsw.edu.au>**20070610093027]
dave at nullcube.com**20070610091056
Add documentation on how to use GreedyView as your default workspace  
[use all 3 load values
Don Stewart <dons at cse.unsw.edu.au>**20070610090959]
[Modified xmonad-clock.c to display battery information from ACPI  
(will work only on linux though). Also restored three load averages  
instead of only one.
buisse at cs.chalmers.se**20070610090228]
[example xinitrc
Don Stewart <dons at cse.unsw.edu.au>**20070610085715]
[update run-xmonad.sh
Don Stewart <dons at cse.unsw.edu.au>**20070610063915]
[no need for ./scripts/xmonad-status.c, update run-xmonad.sh
Don Stewart <dons at cse.unsw.edu.au>**20070610062806]
[add DynamicLog.hs
Don Stewart <dons at cse.unsw.edu.au>**20070610062757]
[make LayoutHints robust with regard to future addition of Layout  
David Roundy <droundy at darcs.net>**20070609173725]
[remove out of date ./scripts/xmonad-status.hs
Don Stewart <dons at cse.unsw.edu.au>**20070610005107]
[add new LayoutHints module that makes layouts respect size hints.
David Roundy <droundy at darcs.net>**20070604213716]
[improve xmonad-status.c
Don Stewart <dons at cse.unsw.edu.au>**20070609140258]
[Add C script for parsing new logging encoding, and displaying  
workspace info
Don Stewart <dons at cse.unsw.edu.au>**20070609131856]
[missing unsetenv
Don Stewart <dons at cse.unsw.edu.au>**20070609090127]
[add tiny clock program (C) i'm using in the status bar
Don Stewart <dons at cse.unsw.edu.au>**20070609080435]
[remove obsolete 'examples' dir
Don Stewart <dons at cse.unsw.edu.au>**20070609061450]
[latest version of xmonad-status.hs
Don Stewart <dons at cse.unsw.edu.au>**20070609060913]
[remove dead version
Don Stewart <dons at cse.unsw.edu.au>**20070609060857]
[Circle layout
Peter De Wachter <pdewacht at gmail.com>**20070606064153
Windows are arranged in a circle around the master window. Rather  
nice to use
with a mouse, if you got many windows open.
Screenshot: http://caladan.rave.org/circle.png
[Submap: For creating keyboard submappings
Jason Creighton <jcreigh at gmail.com>**20070606061941]
[nicer format for dynamic workspaces
Don Stewart <dons at cse.unsw.edu.au>**20070606045705]
[add script which only draws current workspace, and those with clients
Don Stewart <dons at cse.unsw.edu.au>**20070606044544]
[In docs, change name of program from mux to xmonad-status.
glasser at mit.edu**20070605140045]
[Add xmonad-status.hs
Don Stewart <dons at cse.unsw.edu.au>**20070605132108
An external status bar client for xmonad.
See screenshots:
[gapless tiled layout obeying size hints
Peter De Wachter <pdewacht at gmail.com>**20070605071716]
[Contrib package for 6.4 users
daniel at wagner-home.com**20070604225534]
[XMonadContrib.ReadMap: a Read instance of Map for GHC 6.4 users
daniel at wagner-home.com**20070602064318]
[keybindings to warp pointer to window center
daniel at wagner-home.com**20070602062328]
[XMonadContrib.Commands: for workspace and screen commands, leave out  
W/S tag
glasser at mit.edu**20070601161351]
[New contrib module: run internal xmonad commands via dmenu
glasser at mit.edu**20070601043849]
[Note that my xinerama patch is now in dzen.
glasser at mit.edu**20070601041112]
[Rescreen is in main xmonad now
Spencer Janssen <sjanssen at cse.unl.edu>**20070528050656]
[replace "name" in NamedWindow with a Show instance.
David Roundy <droundy at darcs.net>**20070526185114]
[[Spiral] blend in the scale factor so it doesn't have any effect on  
the smallest windows
joe.thornber at gmail.com**20070525032732]
[[Spiral] last rect takes all available space
joe.thornber at gmail.com**20070524120239]
[[Spiral] Introduce a simpler Rect data type to remove a lot of the  
joe.thornber at gmail.com**20070524100423]
[[Spiral] divideRects now takes a list of directions to split in
joe.thornber at gmail.com**20070524090211]
[[Spiral] misc tidying
joe.thornber at gmail.com**20070524085537]
[[Spiral] remove old spiral code
joe.thornber at gmail.com**20070524084805]
[[Spiral] add fibonacci spiral
joe.thornber at gmail.com**20070524084423]
[Allow clients of NamedWindows to get at the name.
glasser at mit.edu**20070523184251]
[dzen module (with xinerama support, which requires glasser's  
Xinerama patch to dzen)
glasser at mit.edu**20070523184315]
[Extract NamedWindow support from Mosaic into its own module
glasser at mit.edu**20070523155855]
[remove SwapFocus (which is no longer possible)
David Roundy <droundy at darcs.net>**20070523153841
This module depended on the focus stack.
[Fix Spiral's module name
Spencer Janssen <sjanssen at cse.unl.edu>**20070522170909]
[[SPIRAL] add spiral tiling layout
joe.thornber at gmail.com**20070522062537]
[Make RotView compile.
Miikka Koskinen <arcatan at kapsi.fi>**20070522075338
As I'm not a Xinerama user, I'm not sure if rotView should consider only
hidden workspaces or also visible but not focused workspaces. I  
thought hidden
workspaces only would be more logical.
[bug fix in DwmPromote. whoops.
Miikka Koskinen <arcatan at kapsi.fi>**20070522062118]
[make FindEmptyWorkspace compile
Miikka Koskinen <arcatan at kapsi.fi>**20070521123239]
[make DwmPromote compile
Miikka Koskinen <arcatan at kapsi.fi>**20070521123140]
[updated Dmenu.hs to work with zipper StackSet
Jason Creighton <jcreigh at gmail.com>**20070521233947]
[Add GreedyView
Spencer Janssen <sjanssen at cse.unl.edu>**20070521220048]
[Rescreen: collects new screen information
Spencer Janssen <sjanssen at cse.unl.edu>**20070521164808]
[Fixes for windowset -> workspace rename
Spencer Janssen <sjanssen at cse.unl.edu>**20070521042118]
[TwoPane: hide windows that aren't in view
Spencer Janssen <sjanssen at cse.unl.edu>**20070518224240]
[make Mosaic even less picky by default.
David Roundy <droundy at darcs.net>**20070516175554]
[add clear window message in Mosaic.
David Roundy <droundy at darcs.net>**20070516175518]
[Comment only
Spencer Janssen <sjanssen at cse.unl.edu>**20070517211003]
[Add instructions for TwoPane
Spencer Janssen <sjanssen at cse.unl.edu>**20070517210206]
[Add TwoPane
Spencer Janssen <sjanssen at cse.unl.edu>**20070517195618]
[throttle the exponential expense when many windows are present.
David Roundy <droundy at darcs.net>**20070516022123]
[make mosaic configure windows by name rather than by Window.
David Roundy <droundy at darcs.net>**20070512215644
Note that this is still pretty flawed.  Often window names change,  
and the
layout then stagnates a bit.  Gimp, for example, opens most its windows
with the same name before renaming them, so you have to hit mod- 
return or
something to force a doLayout.  Also, gimp still overrides xmonad  
the size of its main window.  :(
Miikka Koskinen <arcatan at kapsi.fi>**20070513184338
With this module you can find empty workspaces, view them and tag  
windows to
[make DwmPromote compile
Miikka Koskinen <arcatan at kapsi.fi>**20070513184254]
[make DwmPromote compile again
Miikka Koskinen <arcatan at kapsi.fi>**20070510154158]
[make DwmPromote compile
Miikka Koskinen <arcatan at kapsi.fi>**20070503105236]
[add SwapFocus.
David Roundy <droundy at darcs.net>**20070512191315]
[make rotView only consider non-visible workspaces (Xinerama)
Jason Creighton <jcreigh at gmail.com>**20070510012059]
[fix commend in RotView.
David Roundy <droundy at darcs.net>**20070505185654]
[switch to Message type for layout messages
Don Stewart <dons at cse.unsw.edu.au>**20070505014332]
[Fix instructions in Mosaic.
Chris Mears <chris at cmears.id.au>**20070503222345]
[add Mosaic layout.
David Roundy <droundy at darcs.net>**20070503151024]
[-Wall police
Spencer Janssen <sjanssen at cse.unl.edu>**20070503211700]
[Make RotView build, and add a brief description.
Chris Mears <chris at cmears.id.au>**20070503104234]
[comment: Gave URL to xinerama-enabled dmenu patch
Jason Creighton <jcreigh at gmail.com>**20070503053133]
[Put dmenu in X too
Spencer Janssen <sjanssen at cse.unl.edu>**20070503053727]
[Add dmenu (thanks jcreigh)
Spencer Janssen <sjanssen at cse.unl.edu>**20070503052225]
[add RotView module.
David Roundy <droundy at darcs.net>**20070421233838]
[XMonadContrib.DwmPromote: dwm-like promote
Miikka Koskinen <arcatan at kapsi.fi>**20070501082031
I like the way dwm's equivalent to xmonad's promote works, so I
implemented dwmpromote.
[add simple date example
Don Stewart <dons at cse.unsw.edu.au>**20070429064013]
[more details
Don Stewart <dons at cse.unsw.edu.au>**20070429061426]
[add readme
Don Stewart <dons at cse.unsw.edu.au>**20070429061329]
[Initial import of xmonad contributions
Don Stewart <dons at cse.unsw.edu.au>**20070429061150]
Patch bundle hash:

brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH

More information about the Xmonad mailing list