[xmonad] Wallpaper Appearing Briefly on Client Creation/Destruction in Tiled Layouts

Norbert Zeh nzeh at cs.dal.ca
Wed Oct 5 22:21:29 CEST 2011

Bastien Dejean [2011.10.05 2055 +0200]:
> Norbert Zeh a écrit :
> > I would suspect that this is simply in the nature
> > of X: to eliminate any flicker with window creation/destruction would
> > require a transaction model that asks the X server to redraw the entire
> > screen only once all windows have been repositioned, treating the
> > manipulation of multiple top-level windows as a single transaction.  As
> > far as I understand it, that's simply not part of the X protocol.
> Is that situation improved with XCB?

I'm no expert on this at all, and I know nearly nothing about XCB.  So I
cannot really answer this question.

Having said this (and having started a long explanation of why I think
that the situation with XCB should not be any different than with the
standard Xlib), I just realized that the reasoning in my original
message is flawed.  My reasoning was that visually manipulating multiple
top-level windows is hard if not impossible to do in a flicker-free
manner simply because the X server is not designed to treat the
manipulation of multiple such windows as one atomic change.  I do think
that this is true (even though I'd be happy to learn that I'm wrong).
If I am right, the interface used to interact with the server (Xlib or
XCB) should not make any difference.  However, if you consider how DEs
with more focus on eye candy handle desktop switches with or without
fancy effects, there is usually no flicker involved, but the basic
operation is the same: sets of windows are mapped/unmapped and/or change
their positions.  So there must be a way to work around this limitation
of the X server, if it even is a limitation that does not only exist in
my head.  I have no idea how hard this would be to implement.



()  ascii ribbon campaign  -  against html e-mail
/\  www.asciiribbon.org    -  against proprietary attachments

More information about the xmonad mailing list