On Nov 20, 2007 10:01 AM, David Roundy <
droundy@darcs.net> wrote:
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