[Xmonad] more minor code comments on StackSet.hs

mgsloan mgsloan at gmail.com
Fri Aug 10 16:25:08 EDT 2007

On 8/7/07, David Roundy <droundy at darcs.net> wrote:
> On Tue, Aug 07, 2007 at 04:57:30PM -0700, Michael Vanier wrote:
> > Other comments:
> >
> > -- I find the way that Screen wraps a workspace somewhat icky, though I
> > can't think of a better alternative.  It feels like it compromises the
> > symmetry of the StackSet data structure.  Maybe I'm just being too picky
> > here.
> Agreed, it's very ugly.  More symmetric options don't seem to be very
> popular, thought.  It seems to me that the "right" way to do things is to use
> hierarchical Stacks of one sort or another, and handle the arranging of
> workspaces on screens in a manner symmetrical to the handling of windows on
> workspaces (and in a Layout like Combo, or when there are float windows
> forming a sub-workspace, the handling of sub-workspaces within
> workspaces).
> It seems best to me to have a single data structure which is used to
> describe "a set of things, one of which has focus."  Currently, we've got
> two: StackSet describes a set of Screens, one of which has focus, and Stack
> describes a set of Windows, one of which has focus.  StackSet also
> describes a set of Workspaces, one of which has focus implicitly, via the
> mapping between Screens and Workspaces.

Yes, I've recently been thinking about this as well.  I'd love to see
it done - it would be quite elegant.  Rather than representing the
actual screens, the members of the screen level stackset would be
workspaces, much like the way windows are members of workspaces.  The
main problem with this is that there can be more workspaces than there
are screens, so the code switching between screens would have to wrap
before the actual end of the stackset.

Things like this should probably be figured out soon, so that it
doesn't break as many contrib modules. Maybe the release after the
next?  (I think there's one coming soon).

--Michael Sloan

More information about the Xmonad mailing list