[xmonad] The future of PerWorkspace

Andrea Rossato mailing_list at istitutocolli.org
Fri Feb 1 10:04:46 EST 2008


On Fri, Feb 01, 2008 at 07:59:54AM -0500, Brent Yorgey wrote:
> On Fri, Feb 1, 2008 at 1:48 AM, Andrea Rossato <
> mailing_list at istitutocolli.org> wrote:
> That implementation IS ACTUALLY working and has been in xmc repository

> 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.

I think you may understand that by "working" I mean conceptually
sounded and actually implementable.

That specific implementation was not working in the way it should
because, I've been arguing, it exposed the lack of composability and
the lack of expressiveness of the LayoutClass, due to the methods'
types that were chosen.

I would like to stress the relationship between a method's type and
the expressiveness of a class. 

As I pointed out in my "adventures in types", David provided us with a
great tool when he hacked the modifier class. Still that class was not
expressive enough to implement AvoidStruts (from ManageDocks), because
modifyLayout was not provided. And so, at that time, you should
implement AvoidStruct as a layout combinator. I believe my
implementation is cleaner, because now you can *change* the layout
class and all you need to do it's just to port the modifier class.

The very same applies the Named. And did you see how many locs there
are in Named now?

Why do I care about PerWorkspace so much that I'm buzzing everyone
about it? Because when I saw it I thought - and still think - that it
was a great hack, that showed my how much you can do with the type
system.

Do you remember when David told you to just push the list in the type?
I'm just applying that principle on a regular basis, now. Thanks to
you and David... shouldn't we agree?
;)

Cheers,
Andrea


More information about the xmonad mailing list