The All-Singing, All-Dancing XCompMGR
tomeu at tomeuvizoso.net
Mon May 3 09:44:02 EDT 2010
On Mon, May 3, 2010 at 15:34, Jon Nettleton <jon.nettleton at gmail.com> wrote:
>>> We could reuse the work done in Sugar 0.86 when we moved to metacity
>>> from matchbox. Or just use metacity which is also a compositing
>>> windowm manager.
>> Or mutter which is the replacement to metacity for gnome 3 so should
>> be a reasonably easy swap from metacity and is used by gnome-shell and
> Unfortunately we cannot switch to mutter as that only uses Clutter as
> the compositing backend. I know this because I am the person that
> patched the XRender compositing engine out of the source :-( This
> means that mutter requires a 3-d accelerated graphics card. This may
> be possible for the VX855 XO 1.5's but I don't think the XO1's would
> be able to handle this requirement. The ARM based chips might be able
> to with Clutter using the OpenGL ES backend but I am pretty sure
> nobody has tested this yet.
> Metacity is definitely an option, but any enhancements done to it
> would need to be maintained in an OLPC/Sugar specific branch.
> Choosing this option would definitely need some time invested into
> running down some memory leaks and optimizing the engine. Compositing
> in metacity was always an afterthought and never 100% got the love it
> needed to be used full time. All this is fixable, just won't be done
> by the GNOME guys.
Ah, forgot to mention that if we are thinking seriously about using
composition, the best place to do composition management may be the
Sugar Shell, as it knows quit a bit about the window management but
also some Sugar-specific stuff. It could be as simple as redirecting
every top level window, but we could do tricks such as only keeping
redirected the root window and the last 2 activities that had the
focus, if we want to reduce memory usage.
I had at some point code to do this but it was some years ago and
would take a bit finding it. I remember I was calling some of these
calls through ctypes: http://linux.die.net/man/3/xcomposite Maybe just
XCompositeRedirectSubwindows and XCompositeUnredirectSubwindows.
More information about the Devel