[compiz] Aurorae for Compiz

Martin Gräßlin kde at martin-graesslin.com
Sun May 16 08:16:36 PDT 2010


Hi Compiz Devs,

as you might know I started about a year ago to implement a new theme engine 
for KWin called Aurorae. It is a SVG/Pixmap based engine. The theme format is 
SVG as soon as the SVG get's resized a pixmap is created and put into KDE's 
pixmap cache. This makes painting very fast while resizing kind of slow (not 
an issue with KWin as resizing is already slow ;-)), but at least for me it 
does not seem to be a problem anymore with KDE trunk.

For the next KDE SC release I reworked Aurorae and changed from 
KCommonDecoration to KDecoration and switched from widgets to Qt's 
GraphicsView framework. In the process of this switch I was able to remove all 
kdebase-workspace dependency (I still use enums from KDecorationDefines, but 
they could easily be replaced/copied) and there exists a "designer" 
application which is able to show the themes without requiring a kwin 
dependency. Of course a dependency to kdelibs is required.

For 4.6 I want to get Aurorae "feature complete" and remove the source from 
the kwin source directory and make it a shared library which provides binary 
compatibility. And that get's me to what I was doing this weekend: native 
Aurorae support for Compiz.

Of course Compiz already supports Aurorae through KWD, but that has the 
requirement to have kdebase-workspace installed and in fact Aurorae from KDE 
trunk is broken with KWD at the moment :-)

So attached you find the source code for "aurorae-window-decorator". It's 
currently just a proof-of-concept version and requires still some work, but I 
think I first need some directons from you.

The issue I currently see is mostly related to the kwin specific padding 
(shadows) and translucency. I based the code on KWD and went for the 
reparenting approach, removing the pixmap related code. Now the background is 
not translucent and all the hacks I know of, do not render it correctly. I see 
that KWD is using KWin's PaintRedirector, so do I need to do the same or do 
you have any other ideas how to get translucency working correctly for 
reparenting decorations?

The next issue is that the padding becomes part of the decoration and by that 
is clickable. Any ideas how we can fix this issue? In KWin we had added 
support for it in core. Looking at KWD it seems that you remove the padding, 
which is not realy nice as it renders the decorations using padding kind of 
broken :-(

The next thing I would like to get input on is the configuration. I do not 
have any idea how compiz configuration is working. E.g. how should I add a 
theme selection dialog? Aurorae themes can be downloaded form kde-look.org, so 
a GHNS dialog would be something nice. In KDE trunk everything is available as 
a new KCM, so a possible approach would be to fork the KCM and remove all 
KDecoration related code.

Concerning configuration I also do not know how the decoration should react on 
things like wheel events, double click, moving, etc. So those things are 
currently not yet implemented or hardcoded.

Looking forwards to your comments and hopefully we will get Aurorae into 
Compiz, so that you have a theme engine again ;-)

Regards
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aurorae.tar.gz
Type: application/x-compressed-tar
Size: 26371 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/compiz/attachments/20100516/f1089fb6/attachment-0001.bin>
-------------- 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/20100516/f1089fb6/attachment-0001.pgp>


More information about the compiz mailing list