Hi all, Here's another shot at an interface that will allow prettier passing of messages to the layout, so we can send interesting types. This patch adds one warning in Main, since I removed the type of handle, so it could be inferred from the type of keys. We could hardcode it to give an X LayoutMsg (), but that seems uglier, to me. We could also consider importing Main into Config (and renaming main), in which case handle (and Main) would be functions of keys, and the name "keys" itself wouldn't be hard-coded. It does seem prettier to make Config import all the other modules, rather than having Config itself imported by another module. I'm still not sure that this is a good plan. As long as our layout is a pure function, we won't be able to do things that ion does, such as being able to drag a tab from one location to another to move a window. That's not a big deal, but if possible it'd be nice (if it can be done cleanly) to define an API that doesn't limit the capabilities of the window manager. David Wed Apr 18 08:02:05 PDT 2007 David Roundy <droundy@darcs.net> * refactor layout interface. This change only changes functionality in that the tileFraction is now a per-layout variable. The main point is to add the flexibility to define layouts in the Config file. There's a bit of cheesiness in the type of modifyLayout, since I could figure out a pleasant choice for passing the key-binding information to the Layout, so I just used a string. Wed Apr 18 08:57:38 PDT 2007 David Roundy <droundy@darcs.net> * allow any type to be passed to the layout function. This is an attempt to allow for more general layouts, that could do things like interact with mouse clicks. The trickiness is that I want to be able to define the type of message that is passed in Config, and as a result, I had to change the kind of X and XMonad.