In between the massive changes to the site (see my twitter) and setting up new developer relationships, I was inspired to work with Compiz Fusion – or what most now just call Compiz. I’ve always wanted to do some plugins, but the problem is jumping into their largely undocumented API. That’s changing a bit now, since there seems to be a better effort and they’ve got a nice start with the Compiz Wiki. Doesn’t it always seem you can just throw MediaWiki (or in this case MoinMoin) at something and it appears to fix itself.
In the past we’ve all pimped out Compiz to the point where we’re basically expecting a Spinner Rims plug-in, but I want to change that a bit. Firstly I think that many effects use too much blending with Opacity, which can be sluggish on older or low-performance hardware. Plus I think the Dodge focus effect, Show Desktop, and other effects that simply “move” windows look really clean.
A nice developer on the Compiz Forums helped me out in my post about modifying the animations plugins, which led me to this git repository:
git clone git://git.compiz.org/users/smspillaz/simple-animations
From there you can follow the thread on how I simply modified his Fly In effect to be capable of using the Minimize and other events. It doesn’t do exactly what I want, but the point is that the code is already integrated with Compiz, which is easily half the battle. I’m now in the process of doing a couple of neat things:
- As I decrypt the inner workings of their plugin API I would like to document
- The best way I can think of to document is to wrap it in Java and provide bindings. This kills two birds with one stone: Java bindings and it’s a lot nicer to use javadoc over something like doxygen. (see our doc/ archive)
The result so far was this:
Flash video haters can download an Ogg Video (1.5Mb)
Let me know what you think. I’m also looking for some help with building 32-bit packages. If you want my code it’s available here:
bzr branch http://santiance.com/bzr/compiz-fusion-plugins-simple
And just for kicks anyone with 64-bit can have this package that seem to be working rather nicely for me.
Update:
Anyone interested in compiz 0.9 docs (C++) see: http://santiance.com/doc/compiz/html/annotated.html