[xmonad] Delays in focus update...

Norbert Zeh nzeh at cs.dal.ca
Tue Feb 7 21:57:55 CET 2012

Norbert Zeh [2012.02.07 1646 -0400]:
> Allen S. Rout [2012.02.07 1512 -0500]:
> > On 02/06/2012 05:31 PM, Norbert Zeh wrote:
> > 
> > >I did a very superficial test of the source of the problem, and in my case it
> > >seems to be the decoration module that adds tabs above all my windows.  Without
> > >decoration, I can open 30+ terminals and focus switch feels almost snappy and
> > >certainly does not trigger the endless loop.  The moment I turn any form of
> > >decoration on, focus switching, at least with many windows, starts to feel
> > >sluggish.  Are you using window decorations?
> > 
> > I don't think so;  I've attached my current xmonad.hs, Just In Case
> > I'm too dumb to know that I'm decorating them.   Visually, I've just
> > got the little red borders, of width 1.
> Indeed, your config doesn't look like your using anything decoration-related.
> The part that confuses me in this case about the poor performance you are
> observing is that, once I remove decoration from my windows, I didn't notice any
> substantial delays in focus update.  Admittedly, I tested only with at most 10
> windows per screen, I think.  When (and if) I get a chance, I will try without
> decoration and tons of windows once more, and I may give your configuration a
> spin.

Testing your config may take a little longer, but I thought it's easy and quick
to test my own setup without decoration.  I'll test on 4 monitors with 30
windows per screen once I get home.  For now, on my laptop, I quickly fired up
30 windows on the one screen it has.  What I observed was that focus switches
felt really snappy.  The one caveat I observed was that the delay from dealing
with a larger stack, while not really noticeable as such, was apparently enough
to trigger the race condition in pointer updates using UpdatePointer, so that
again I ended up in an endless loop of focus switches between two or three

Given that, even on my laptop and with as few as 10 windows (well, 10 windows is
not really "few", but there are situations where I do actually tile 10+ windows
in a grid layout, at any point in time maximizing the one I'm working on), I see
a distinct an serious slow-down in focus switching once I turn on decoration,
the biggest culprit to me certainly seems to be the decoration module...so I
will continue my quest to rewrite the decoration code.  Let's see how much
progress I'll make tonight.


More information about the xmonad mailing list