
On Nov 20, 2007 10:01 AM, David Roundy
On Mon, Nov 19, 2007 at 09:54:06PM -0500, Brent Yorgey wrote:
As seen on xmonad@! A module which allows you to configure layouts per-workspace. Testing, comments, criticisms, edits, etc. welcome.
This is buggy when multiple screens are in use, because of the following code:
-- figure out which layout to use based on the current workspace. doLayout (PerWorkspace wsId Nothing l1 l2) r s = do t <- getCurrentTag doLayout (PerWorkspace wsId (Just $ wsId == t) l1 l2) r s
There's no guarantee that the *current* screen is the one that's having doLayout called. :(
We also have trouble with:
handleMessage (PerWorkspace wsId Nothing l1 l2) m = do t <- getCurrentTag handleMessage (PerWorkspace wsId (Just $ wsId == t) l1 l2) m
because the message might have been sent using broadcastMessage rather than sendMessage, so we again might not be the main workspace.
David, thanks for the bug reports. I don't have multiple screens so I didn't even think about that problem... oops! Unfortunately, I don't have a lot of time right now, so for the moment I think I will just change the code to ignore messages received before doLayout gets called, and add a note to say that it doesn't (yet) work in conjunction with multiple screens. If someone wants to try fixing it in a more general way, be my guest. -Brent