News from the Wobblyland

Current kwin_composite branch can finally do some simple effects. The obligatory screenshot:

[image:2493 size=original]

(I'm good at impressive screenshots, am I not?) This screenshot shows the animation for a newly appearing KWrite window. This time no manual hacking in of the effect, this is what is in SVN. The window is smaller because ScaleInEffect makes the new window appear as scaling up to its size and it is transparent because FadeInEffect makes the new window appear as fading in. And just in case anybody wonders why the animation is not moving in the picture, then that's of course because it is just a picture. I admit it is somewhat dull that way, but I haven't figured out how to do better (well, I didn't trying that hard, anyway). There is the source if you want to see it for real.

In other news, I've added comments and design description to the code, restructured the TODO file and added also a commented howto plugin, so if somebody would like to see it in action with some other card than nvidia, or, after seeing it in action, thinks that it's not really that impressive or interesting, then you know what to do.

Technically, right now kwin_composite should about match Kompmgr's possibilities, of course with the added bonus of being able to develop much further (as soon as somebody does that development, indeed). Which means that COMPOSITE_TODO has now entries listing all the Kompmgr effects, saying that they should be rather easy to add, using either effects or changes directly somewhere in the compositing code. With the exception of shadows, as I still need to decide on how to do them.

Speaking of shadows, it is rather interesting how some people call these things "3D desktop". Sorry, it is not 3D, it is very flat and mostly very faked. If you have Compiz/Beryl running somewhere, just for example see how e.g. the shadows make the desktop feel a bit like 3D, but as soon as you rotate the desktop using the cube and look at it a bit from the side, it's suddenly flat. And shadows have also other interesting effects, for example if you configure them to be very large, very visible and very offset to the right, then configure the minimize effect to take very long and rotate the window during minimizing, then it is very visible that it is just a fake. See it? It is of course correct that the shadow rotates together with the window, but real shadows shouldn't really rotate also around the window. Anyway, not that I really think I could do better with KWin. The funny thing is that this doesn't really seem to be possible to solve in some nice way.


It's interesting to see that the futzy arguably useless eye-candy can be conformed in something greatly improving the daily work experience.

By Cristian Tibirna at Tue, 10/31/2006 - 01:34

Is there anything in principle that prevents using real 3D? Wouldn't it even be simpler just to position things in 3D space, e.g. really having the top window above the other windows, than to figure out and tweak fake 3D so that it looks real.

I mean, in real 3D you don't have to think about what should happen to the shadow when a window is rotating, that follows from the geometry and lighting, so it is actually easier to get right. But perhaps this is not an option for KWin at least.

By martin at Tue, 10/31/2006 - 10:03

On the other hand, do you want your konqueror window to have different brightness in the top left corner then the bottom right corner because the distance to the light source is different?

By Thomas Zander at Tue, 10/31/2006 - 11:26

I'm pretty sure you can have ambient light [1] only but still have the shadow effects. And if you move the light source into infinity, diffuse will work, too. A specular component is not needed indeed.
[1] http://en.wikipedia.org/wiki/Phong_reflection_model

By Dominik at Tue, 10/31/2006 - 16:00

I don't think the point is to have real 3D. Just like your icons are not real photographs of the things.

By Lubos Lunak at Wed, 11/01/2006 - 10:02

yup, I agree. as long as it looks good you can use any hack. at least, eye-candy is what the users want :)

By Dominik at Sat, 11/04/2006 - 13:20

Will this Vista effect be default or non-detault? I'm all in for the last option. That doesn't give the impression we have a lack of imagination and people who really like the Vista-effect can use it in KDE too. :)

If I may ask, my personal favorite for OpenGL based window handling would be:
- draw subtle shadows next to the windows. It makes it easier to destinguish the top level window from the others.
- slightly gray out the background windows. Not to transparent (makes it really messy), but make it less obtrusive. I believe MacOS even removes the colors from the icons.
- perhaps make the windows appear more behind (smaller), depending on their z-stack position.

Comparing MacOS and Vista: both have a powerful engine to do amazing effects. MacOS uses in subtle things: transparent docker, exposé, rollups of window-modal dialogs, sideover rss view in Safari, and shadows of windows. Vista uses it to show off what they can do: every window is animated as if you're using a pinball machine. :P

By vdboor at Tue, 10/31/2006 - 12:34

Could you list out the steps that a person goes through in order to try out the kwin_composite branch and the new effects? For installing kdelibs and kdebase you can refer people to the KDE trunk compilation tutorial, but some specific guidance for how to compile and install the kwin_composite branch would be greatly appreciated.

By vladc at Wed, 11/01/2006 - 02:10

I've added some instructions to the HACKING file.

By Lubos Lunak at Wed, 11/01/2006 - 10:23

Thanks for the info!

By vladc at Wed, 11/01/2006 - 23:05