
wagnerdm@seas.upenn.edu [2011.10.06 1017 -0400]:
Quoting Troels Henriksen
: wagnerdm@seas.upenn.edu writes:
That strategy doesn't work when the layout of all the windows changes, since a window cannot be mapped at two places (and, potentially, sizes!) at once.
You could dump the contents of the workspace region to a pixmap, render that pixmap to a new (unmanaged) window covering the entire workspace, perform window movement/mapping behind it and unmap the covering window at the end. This would work, but it's ugly and complex. I doubt a simple and robust solution to this aesthetic issue can be conceived.
Cute. The generalization of this idea leads directly to a simple, robust solution: never unmap clients, and using OpenGL compositing to hide them instead. ;-)
Compositing is pretty much what I was thinking about when I was mentioning other DEs. I was thinking about a scenario where I'm switching to a different desktop using fancy effects (e.g., a slide motion). In that case, the switch is not a simple matter of mapping one set of windows and then unmapping the previous set of windows. I agree with Troels, though, that a simple and robust solution may be impossible, and I certainly value these two attributes of xmonad more highly than a bit of flicker upon layout changes. Cheers, Norbert