[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