On Fri, Feb 1, 2008 at 1:48 AM, Andrea Rossato <mailing_list@istitutocolli.org> wrote:
On Fri, Feb 01, 2008 at 12:22:32AM -0600, Spencer Janssen wrote:
> As far as I know, there has only been one other proposal that solves the
> Xinerama issues with PerWorkspace -- adding a WorkspaceId argument to doLayout.
> I think we've all agreed that isn't so nice.  My message proposal is actually
> very similar -- except that only layouts that care about workspace location
> need to handle these messages, whereas an extra argument to doLayout must be
> mentioned in every single layout instance.
>
> Have you proposed another implementation that solves the Xinerama issue, and I
> missed it?

Yes you did. You actually did miss quite a lot of the stuff I've been
sending recently. You are not the only one, though.

Hey, there's no need for that.  You have been sending rather a lot of stuff lately, you know, you can't blame people for not quite being able to keep up. =)
 

As I say I did not propose to change doLayout, but just to change, in
runLayout, doLayout with a doLayoutInWorkspace which takes the
workspace and calls "doLayout (layout w)". The same for
(emptyLayoutInWorkspace w = emptyLayout (layout w) and handleMessage.

Did you read this message and the attached patch?
http://www.haskell.org/pipermail/xmonad/2008-January/004493.html

If a layout may be knowing the workspace it is running on, we could
implement a general purpose combinator (my LayoutCombinator class and
a general purpose CombinedLayout, implemented on top of the layout
class.

Andrea, I would like to point out that having methods like doLayoutInWorkspace and so on have nothing to do with the viability of your LayoutCombinator class.  These methods have only to do with implementing PerWorkspace in particular. In fact, I rather liked your LayoutCombinator class and would like a chance to try implementing PerWorkspace using it together with sjanssen's approach of special messages sent by a startup hook.  I would like to ask if you can just re-push your LayoutCombinator class and CombinedLayout combinator, without making any changes to PerWorkspace?  That way it will not break anything and we can play around with implementing things in terms of it.
 

As I mention here:
http://code.google.com/p/xmonad/issues/detail?id=129
(I answered to your challenge, but you did not to mine!), with my
proposal, PerWorkspace implementation would be:

instance LayoutCombinator PerWorkspace a where
   chooser (PerWorkspace wsIds) = do
       t <- getCurrentTag
       return $ if t `elem` wsIds then DoFirst else DoSecond

Again, you seem to be confusing the issue of the type of 'description' with the problem of getting PerWorkspace to work with xinerama.  The above code still would not work with xinerama, which is my main goal.  It also still does not work with messages that may be sent to a non-focused workspace.

That implementation IS ACTUALLY working and has been in xmc repository
for a couple of days. Than I had to remove it since I asked for core
support and I was told I would not get it.

No, it wasn't; there is still the issue of messages sent to non-focused workspaces, which probably wouldn't cause any problems most of the time (so it appeared to work) but could cause subtle bugs.  I sent an explanation of this to the list earlier.
 
Cheers,
-Brent