idea for float layer and extensible layout

I had an idea. What if we implement the float layer via (an extended) extensible layout scheme? It seems pretty straightforward to write a higher order layout that partitions windows between two Layouts, in which case with a little bit of care we ought to be able to just write a layout that handles floating windows only, and then composit that together with any other layout. I doubt this would be the way to *start* implementing a floating layer, but it seems like doing this as a refactor afterwards would both maintain the cleanliness of the code, and ensure the extensible layout interface is sufficiently powerful and flexible to handle just about any window-managing interface. One feature we'd obviously need would be the ability to specify the stacking order of the windows independently of the focus--which would argue in favor of jcreigh's idea that we ought to pass the focussed window to doLayout. But, of course, there's a whole lot more than that which would need doing as well--most notably, the ability for the layout to draw window decorations and respond to mouse events. But these would also need doing by a tabbed interface, which is of much more interest to me than a floating layer. This idea would also have the benefit of keeping xmonad small, since the floating layer could (and would) be implemented outside of the core, as a module imported into Config.hs. -- David Roundy http://www.darcs.net
participants (1)
-
David Roundy