[dot] The Road to KDE 4: KWin Composite Brings Bling to KDE

Dot Stories stories at kdenews.org
Wed May 30 18:15:23 CEST 2007


URL: http://dot.kde.org/1180541665/

From: Troy Unrau <troy at kde.org>
Dept: two-competing-3D-window-managers-once-again
Date: Wednesday 30/May/2007, @09:14

The Road to KDE 4: KWin Composite Brings Bling to KDE
=====================================================

   KWin, KDE's window manager, has been around since KDE 2.0 (replacing
KWM in KDE 1.x) and has grown to be a mature and stable window manager
over the years. For KDE 4, however, there were a few people rumbling
about visual effects, and perhaps KWin was feeling a little envious of
its younger cousins Compiz and Beryl. While these new effects have
created a lot of buzz around Linux and UNIX, long-term KDE users have
wished they can enjoy the effects of Compiz/Beryl while still having the
tried and tested window manager that is KWin. As a result, for KDE 4,
KWin has received a huge graphical upgrade, with composite and GL
support. Read on for more details.

     KWin has implemented effects in a way that allows a number of
different rendering methods to be used, depending on your specific
combination of hardware and drivers. These features have brought KWin
rapidly into the era of dazzling eyecandy, along with some pleasant
surprises on the usability front. This effort has been spearheaded by
Lubos Lunak (a man known for his efficient code) and his team, with
special mention to Rivo Laks and Philip Falkner for their contributions.

     Effects are disabled by default at the moment, although that may
change before KDE 4 ships, and distributions may decide to alter this
setting anyway. When enabled, the effects are designed to degrade
gragefully. If GL is not available, KWin disables GL effects but still
allows Composite effects where possible via XRender. If XRender is not
available, it falls back to plain X, running in the same fashion as the
present KDE 3 version. To get the full array of effects, you need to
have a video card (and driver) that supports AIGLX, XGL or use the
proprietary Nvidia driver.

     Once the effects are enabled, it's simply a matter of choosing
which effects you'd like to activate. So far, Rivo Laks has been working
on the effects plugin selection interface (see the screenshot below).
The new plugin selection widget shown is making its way into various
parts of KDE - it does automatic dependency checking, so once the
dependency tree is known, it will intelligently enable or disable
dependent plugins. This widget is also showing up in other parts of KDE
4.

(as you can see in the image, this dialog is quite new - less than a
week old - and is missing all the icons...)

     Lubos has been periodically blogging about the effects that KWin is
now capable of, and has recorded a number of videos showing them off.
Since video capture on my system is rather chunky, I will present his
recordings instead. So, without further ado, I present some of the more
popular of his flash videos, hosted by YouTube. If you are interested in
more, please visit his YouTube User Page
 [http://www.youtube.com/profile?user=Seli158]
 The Present Windows Effect - a very useful effect that falls into both
eye-candy and usability categories...

 The Desktop Grid Effect - those familar with the Cube effect may note
that this is not quite as flashy, but probably more useful. Doesn't mean
there cannot be a Cube effect for KWin though.

 This one shows the above two effects, as well as the Alt-Tab
thumbnails, but it shows that the effects work great, even when the
windows contain active videos.

 Zoom Effect and Magnifier Effect: some accessibility related features
that everyone may find useful, depending on your specific needs.

 Effects like this one make people go "Wow". The first part of this
video features the Fall Apart Effect, which basically has a window blow
up. It's amazing how well this effect can be demonstrated in a low
quality flash video...

     Aside from Lubos, many of the new effects and underlying core
components were programmed by Rivo Laks and Philip Falkner. They are
responsible for many of the effects you see in the videos, including the
Present Windows Effect, and the improved Alt-Tab dialog. There have been
a number of contributions from others as well, and they are always
looking for new and interesting ideas. In addition, KWin for KDE 4
builds on the already existing KWin version which has had dozens of
people contribute to it over the years.

     The window decoration shown above is called 'kwin3_crystal' and is
still set as the default in SVN. It is simply a port of the existing KDE
3 Crystal window decorations, however, a new KWin window decoration is
still in the works for KDE 4 - it hasn't been made the default yet, so I
haven't been featuring it. When it does eventually become the default,
you'll be sure to hear about it here (and likely in Danny's KDE
Commit-Digest [http://commit-digest.org/] as well...).
     KWin for KDE 3.x implemented a very simple composite manager,
allowing simple effects such as window transparencies, fading menus,
shadows, and so forth. The code was not too complex, but the
infrastructure was not in place to seriously extend the effects to GL
powered goodness. When the KDE 4 development series opened, it was seen
as an excellent time to rewrite some of KWin's internal structures in
order to support such effects. There were initial considerations of
implementing support for the existing Compiz and/or Beryl system of
effects via plugins, but there were technological hurdles that prevented
this. I won't go into the technical details as to why this decision was
made, however, it is important to note that KDE 4 will still work with
Compiz/Beryl should the users choose to use that software instead of
KWin.

     Additionally, while KDE 4 will be supporting a number of platforms
with libraries and applications, KWin is one of the applications that
will not be making the switch as it is inextricably tied to X. This
should be considered to be a Good Thing(tm), as it ensures that KDE will
always be the best looking when used with Linux/UNIX, and hopefully it
(and related KDE Workspace technologies, like Plasma) will remain a
unique benefit of using a more open operating system.

     KWin promises to ensure that KDE get the graphical boost it needs
to keep the eye-candy folks happy, while providing new and usable
features for the desktop environment that would not have otherwise been
possible. Yet, it maintains the rock-solid foundation that a long
history as an integral part of KDE has provided. It will still work
(with reduced levels of effects) on any system that KDE 3 ran on, so
no-one is left out in the cold. It is already the default for KDE 4 in
SVN, and will be showing up in future beta releases.

     On a personal note, I've found that KWin on my system was dropping
down into XRender mode due to some X settings I need to fix, but it has
been perfectly stable for me over the last two weeks. In fact, every
week when I'm rebuilding KDE 4 to write these articles, I am more amazed
at how quickly it is becoming stable and useful. If you are interested
in testing it out for yourself, check to see if your distribution has
packages available. I am aware of the existence of at least one live CD
(where you don't have to risk messing with your system) that is
available at the KDE Four Live
[http://home.kde.org/~binner/kde4-live-dvd/] website. They update the
Live CD every few weeks, and currently has the KDE 4.0 Alpha 1 packages.
Additionally, if you are brave enough to test the Composite features,
and are having problems, have a quick look at the Composite HowTo.
[http://websvn.kde.org/*checkout*/trunk/KDE/kdebase/workspace/kwin/COMPOSITE_HOWTO].
If you have problems, please report bugs using the the KDE Bug Tracker
[http://bugs.kde.org/] by selecting the KWin program, and the
"composite" component.

     Until next time.



More information about the dot-stories mailing list