[xmonad] Tabbed.addTabs broken?

Andrea Rossato andrea.rossato at unibz.it
Mon Feb 11 11:01:40 EST 2008

I'm writing here instead of asking over IRC because it's a bit long
and I don't want to generate confusion (I'm quite too good at

There are 2 patches I don't understand.

This one breaks Tabbed.addTabs:

Tue Feb  5 21:23:43 CET 2008  David Roundy <droundy at darcs.net>
  * make tabbed work nicely with LayoutCombinators and WindowNavigation.
  The problem is that WindowNavigation assumes all windows are navigable, and
  it was getting confused by decorations.  With a bit of work, we can
  decorate windows *after* combining layouts just fine.

since Tabbed now assumes that the windows to be decorated are only
those with the same rectangle:
wrs' = filter ((==r) . snd) wrs

Which is fine only with Simplest. If you use it with some other layout
(which does not give the same rectangle to all windows) then this will
always hold:
if length wrs' <= 1 then Nothing

It also assumes the decoration to have the same y coordinate of the
window to be decorated - the window must be shrunk. That is to say, if
we were to remove the first constraint, we would end up with a
SimpleDecoration layout modifier. :)

But, as far as I understand, this is needed for WindowNavigation (I do
not understand well its code, and I didn't have time to study it).

Which brings me to this patch:

Tue Feb  5 21:35:56 CET 2008  David Roundy <droundy at darcs.net>
  * make WindowNavigation ignore decorations.

where you check the stack to see if a window is a decoration.

There is also another way to check if a window is a decoration, by
checking its attributes (isDecoration :: Window -> X Bool does this).

I'm writing because I wonder if we can remove that constrain from
Tabbed and solve the WindowNavigation problem in another way.

If yes, I can do it (I'll study WindowNavigation). Please David, can
you give me some directions?


ps: this is the reason why I rewrote the instance in
DecorationMadness, with a note that those layouts could be
incompatible with WindowNavigation: now that the mouse UI is almost
finished, I'd like to get this (hopefully last big) issue solved too.

More information about the xmonad mailing list