[compiz] Re: Plugin Interface for Decoations

David Reveman davidr at novell.com
Thu May 3 14:00:56 PDT 2007


On Wed, 2007-05-02 at 21:55 -0400, Shawn Starr wrote:
> Hello 
> 
> On May 2, 2007 03:50:50 pm David Reveman wrote:
> > On Mon, 2007-04-30 at 17:24 +0200, Patrick Niklaus wrote:
> > > I realized some major problems with this approach. To give you a
> > > better idea of what I'm actually talking about, take a look at this
> > > schema:
> > > http://media.beryl-project.org/Decoration-Schema.png
> > >
> > > As you can see KWD, GWD and Emerald would run in the same
> > > applications, as plugins.
> > > This might cause problems because the main loops of Qt and Gtk are
> > > conflicting here, which was actually one of the reasons why the
> > > decorator was not a own plugin in compiz.
> > >
> > > Another problem is the settings backend. To integrate into the desktop
> > > each plugin uses its own backend. For example the emerald plugin uses
> > > ini/gkey files + libemeraldengine but GWD gconf + metacity functions.
> > > So basically we would end up with a complete window decorator, ported
> > > to a plugin, which is not really what I had in mind.
> > >
> > > An alternative would be, remaining the current structure of having
> > > several decorator running as an own application and expand emerald to
> > > an highly-customizeable and extentable decorator, which relies on
> > > plugin architecture. The main goal of that decorator would be to
> > > provide an independently theme and other rather experimental things
> > > like animations.
> > >
> > > This architecture is shown in this schema:
> > > http://media.beryl-project.org/Decoration-Schema2.png
> > >
> <snip>
> >
> > You're welcome to improve emerald, rewrite it or write a completely new
> > decorator, I'm definitely not going to stand in the way of that.
> > However, I suggest that you avoid duplicating work when not necessary
> > and avoid creating alternatives to existing solutions.
> >
> > libdecoration contains code that is used by all decorators. If you find
> > some code that makes sense for more than one decorator, it likely makes
> > sense to put that code in libdecoration.
> >
> > What's missing in current decorators? The following is what I think is
> > missing and how it's most properly fixed.
> 
> One thing that the old original Emerald window decorator did was support 
> button effects, some of these effects like the glow effect. I don't know if 
> Emerald-2 or compiz deal with specific button effects themselves?

Kwin plugins and a possible future metacity theme engine could do
whatever button effects they like.

- David



More information about the compiz mailing list