[Xmonad] darcs patch: make workspace tag not need to be a Num.

Jason Creighton jcreigh at gmail.com
Thu Jun 14 00:40:14 EDT 2007

On Wed, Jun 13, 2007 at 06:12:00PM -0700, Stefan O'Rear wrote:
> On Wed, Jun 13, 2007 at 06:08:01PM -0700, David Roundy wrote:
> > On Wed, Jun 13, 2007 at 06:02:53PM -0700, Stefan O'Rear wrote:
> > > > > It definitely has nothing to do with Xinerama.  Probably it has a lot to
> > > > > do with the fact that we used to hide windows by moving them offscreen;
> > > > > this needs to be re-evaluated.  As such I'm CC-ing the deciders.
> > > > 
> > > > Ah, then an easy solution would seem to be to move windows offscreen by a
> > > > fixed distance (chosen perhaps to be larger than any reasonable viewable
> > > > area, or perhaps chosen at runtime to be larger than the actual screen
> > > > area).
> > > > 
> > > > But why is it that we can't just unmap the windows? (possibly displaying my
> > > > ignorance...)
> > > 
> > > Indeed. :)  I used past tense, because unmapping is what we do now.
> > 
> > Ah, yes, I see that you did use the past tense... so presumably we no
> > longer would need to store and restore those positions?
> Right.

Hmm. Consider: Suppose you have some windows on screen 1, and you hide that
workspace. Later, you make that workspace visible on a different scren. Now to
position the floating windows correctly, you have to check if they are on a
different screen, and if they are, translate their coordinates to the current
screen. Remember that screens can be different sizes.

Moving between workspaces would be fairly easy: You could just move them there
in the StackSet, and then it would get moved on the screen on "refresh".

You would need to always be able to figure out which screen a window was on:
What would you do if the upper-left corner of the window got moved off the
screen? Just not allow it? You could end up with some weird states if you
weren't careful. (Not that the current code is any better: You can "lose"
windows by dragging them across screens because xmonad still thinks they're on
the same workspace, so they get drawn under the tiled windows of the other

It seems workable, but I have doubts as to whether it's actually better.

Jason Creighton

More information about the Xmonad mailing list