
* On Saturday, March 27 2010, Konstantin Sobolev wrote:
Update. First version works incorrectly with multiple workspaces due to the fact that XMonad creates separate Layout copy for every workspace, so we get a number of independent LayoutModifer (custom data) instances instead of just one. (By the way, why is it necessary?)
For writing actual layouts, keeping layout state per workspace makes more sense (think about what would happen with dual monitors, different layouts per workspace...). It's much easier to go to global state from workspace-local state than the other way around.
It took me some time to find a workaround; it assumes that different workspaces have different tags. Here it goes, version 2:
This assumption is probably true, but I'm not sure how it would compare to keeping track based on the index in the output of W.workspaces... Perhaps it would be better to implement this as a handleEventHook.
Here are some suggestions to shorten the code:
-- Adam