[xmonad] darcs patch: new contrib module, Layout.PerWorkspace

Brent Yorgey byorgey at gmail.com
Tue Nov 20 11:11:57 EST 2007


On Nov 20, 2007 10:01 AM, David Roundy <droundy at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/xmonad/attachments/20071120/6210ee9c/attachment.htm


More information about the xmonad mailing list