[compiz] [RFC] Draft for a compositing manager specification

Martin Gräßlin kde at martin-graesslin.com
Wed Aug 18 12:25:30 PDT 2010


On Sunday 15 August 2010 23:14:48 Thomas Lübking wrote:
> Am Sunday 15 August 2010 schrieb Martin Gräßlin:
> > On Sunday 15 August 2010 16:19:04 Sam Spilsbury wrote:
> > > The compositor should set the _NET_CM_SHADOW_SUPPORTED hint and
> > > clients should set the following information in the _NET_CM_SHADOW
> > > property on the window.
> > > 
> > > 0 | shadow color (32 bit depth)
> > > 1 | shadow radius
> > > 2 | shadow x offset
> > > 3 | shadow y offset
> > > 4 | Number of shadow rects ( > 1 if the window is nonrectangular )
> > > 5 | A list of rects specifying shadow extents for each rect.
> > > 
> > > In the case where there is more than one rect, the compositing manager
> > > should automatically clip shadows  which are not "border" shadows.
> 
> Do you really want to let clients control shadow color, dimensions &
> offsets? Shadows resemble a light model, but with such setup they'd
> probably end up like psychodelic ;-)
> ("I - that is /ME/ - is the most important client on the block and I - that
> is *ME* - want the biggest and most colorful shadow!" :-)
> Even if not, it would end up like Gtk+ an Qt look different - again :-(
Yeah that's a serious issue, I am afraid of the same thing and thought about 
it before posting the idea with the pixmaps. I think the API above is too 
simple and you can't really get the light model. If you have to specify the 
pixmaps you will have to think about what you want and correctly implement the 
light model. But that's probably also only wishfull thinking.

Nevertheless I think we need a way to let clients influence the shadows. The 
CM can't know the light model of the client and just assuming "We have Oxygen" 
does not work, as there is also GTK. So for undecorated clients it would make 
sense to allow influence on shadows, while for decorated clients the WM should 
have the control. I must say that I really like the way it's handled in KWin 
with giving control of shadows to the decoration. So we could specify that the 
decoration is responsible for the shadows. The drawback of this is, that if 
some $STUPID_APP thinks to be important and wants to have red shadows, it's 
going for doing stupid things like client side decorations (CSD). So thinking 
about it: we have the chance to discourage usage of CSD and explicitly allow 
the CM to ignore shadow change requests.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 316 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/compiz/attachments/20100818/062d5c3c/attachment.pgp>


More information about the compiz mailing list