Fensterdekoration hinter transparenten Fenstern

Gestern kurz vor dem harten Feature Freeze für KDE SC 4.4 hat KWin noch ein tolles neues Feature erhalten: die Fensterdekoration kann hinter transparenten Fenstern gezeichnet werden. Seht selbst:

Aktuell wird dies in Aurorae, der einzigen transparenten Deko, unterstützt, aber noch von keiner Anwendung. Da dies aber als Erweiterung des Standards vorgeschlagen ist, dürfte es in Zukunft Anwendungen geben, die dies nutzen. So hab ich mal gelesen, dass Mozilla für Firefox ein solches Feature nutzen möchte. Dies ist nun die Lösung auf der X11 Plattform.

=-=-=-=-=
Powered by Blogilo

Window decoration behind translucent windows

Yesterday evening just before the hard freeze a nice feature was added to KWin: window decoration painted behind translucent windows. Have a look:

Currently it’s supported by Aurorae, our only translucent decoration, and I think there are no applications yet which use the feature. But as it is proposed as an addition to EWMH I’m sure there will be in future. Somewhere I read that Mozilla Firefox wants to use translucent backgrounds. So that is your solution for the X11 platform.

Well this feature illustrates that we need a blur effect 😉

=-=-=-=-=
Powered by Blogilo

Working on KWin Shaders

This weekend I worked on some KWin OpenGL Shaders. That is I wanted to bring back the blur effect. It seems like many users want to have the effect and well with translucent window decorations a nice blur is kind of needed (yes we get compared to Windows 7 and that blur is really well done). The first results look very promising: it’s fast and doesn’t render artifacts to the screen. But I decided to not rush it into 4.4 as there are still some minor glitches around the decoration shadows which render the nice Oxygen glow useless. As well the blurring is not yet as nice as one produced by Krita. I will merge the branch as soon as trunk is open again and so we will have a blur effect in 4.5 again 🙂

But blurring is not the only OpenGL shader I started to work on this weekend: I started to implement a shader to replace the complete fixed functionality rendering of KWin. Our current rendering uses lots of OpenGL 1 commands as we also want to support older hardware. We have some OpenGL 2 shaders like the blur which replace parts of the fixed functionality.

In OpenGL 3 the fixed functionality is deprecated, in OpenGL ES 2.0 it’s even completely removed and replaced by the programmable pipeline. So getting the rendering completely into a shader is a prerequisite for using the new awesome stuff of OpenGL 3 like geometry shaders as well for porting KWin to OpenGL ES.

So why porting to OpenGL ES? Well I would like to see KWin running on Hardware like the N900 🙂 I think that KWin although developed for the desktop would be a nice window manager for small devices. We have some outstanding effects and a great decoration API as well as a nice SVG decoration engine when you don’t want to write your own decoration. And of course we see that some projects use Clutter based window managers for their small screen systems and it would be nice to provide an alternative, a window manager which is rock solid and has been used with compositing enabled by default for now almost a year – in some distributions already since KDE 4.1. And last but not least optimizing for small devices is useful for desktop systems as well.

So after spending some hours hacking the basic window rendering is implemented in a shader and if the shader is bound no deprecated OpenGL functions are used. Not only the basic rendering is supported, but some effects like present windows, desktop grid or even cover switch (as long as not using multiple screens) work as well. Other effects like cube, all shader effects or important benchmarking tools like fps are completely broken 😉 (Nevertheless my completely unprofessional benchmark called “top” looks very promising – kwin is not shown any more when idling or just doing a few repaints).

I don’t know when I will have something that could be shared as my development time is currently very limited and I only work on KWin at weekends. As well for the OpenGL ES part it could be a problem that I don’t have any hardware 😉 For OpenGL 3 it’s no problem as the drivers I use support it. I hope to have it in a state to push to trunk when it gets unfrozen.

=-=-=-=-=
Powered by Blogilo

Wie meldet man sich an seinem Rechner an

Man stelle sich vor zur Benutzung von Microsoft Windows 7 müsste man einen Webmail Account bei Microsoft haben und die Anmeldung am Betriebssystem erfolgt über diesen Account. Dabei wird natürlich über das Internet überprüft, ob Benutzername und Passwort passen. Ohne Internetverbindung also keine Anmeldung. Microsoft wüsste genau wer den Rechner benutzt, wann und wie lange. Um das ganze noch zu verbessern, kann man keine Anwendungen unter Windows 7 installieren – man hat ja den Internet Explorer und alle Webanwendungen der Welt.

Unvorstellbar – oder? Wie groß wäre der Aufschrei, wenn man ein MS Benutzerkonto bräuchte zur Anmeldung am Rechner? Was würde die EU Kommission dazu sagen oder die Medien? Es wäre wohl der größte Datenskandal denn es je gab. Wie komme ich also auf einen solchen Quatsch?

Ja dieser Quatsch nennt sich Google Chrome OS, wie es gestern vorgestellt wurde. Ohne Google Account kann man sich nicht einloggen. Ohne Internet kann man sich nicht einloggen. Anwendungen wozu? Es gibt doch den Chrome Browser. Alles was man macht geht direkt an Google. Ich hatte ja schonmal über Google Chrome OS gebloggt, aber das was jetzt vorgestellt wurde, ist ja noch schlimmer als was ich damals aus den geringen Infos rausgeholt hatte. Man muss sich das mal vorstellen: man besitzt die Hardware und ein dritter bestimmt ob ich sie nutzen darf. Toll das es OpenSource ist, das hilft da auch nicht mehr.

Es kommt selten vor, dass ich einem Open Source Projekt Misserfolg wünsche (ja selbst GNOME wünsche ich Erfolg 😉 ), aber Google Chrome OS stellt einen Angriff auf unser Recht auf informationelle Selbstbestimmung dar, wie es selbst Schäuble nicht schaffte. Gut OK, jeder kann sich selbst überlegen ob er Chrome OS nutzen will oder nicht. Jeder hat es selbst in der Hand. Was ist aber wenn es viele Leute nutzen und unser Staat dann sagt: Die Infos will ich auch. Wird das Verfassungsgericht noch nein sagen, wenn wir die informationelle Selbstbestimmung freiwillig aufgegeben haben? Ich bin da sehr skeptisch

=-=-=-=-=
Powered by Blogilo

Neuer KWin Spaß

Heute war irgendwie der große “wir bereiten KWin auf KDE 4.4 vor” Tag. Es wurde der Window Tabbing Branch gemerged. D.h. KWin unterstützt nun Tabs für Fenster, man kann beliebige Fenster zu einer Gruppe zusammenfügen. Wer also wie in Chromium für jede Webseite einen eigene Browserinstanz haben will ohne viele Fenster, hat nun eine Lösung. (Natürlich hat KWin keine Ahnung, dass die Tabs z.B. ein Browser sind und bietet daher auch keine Unterstützung für Neu Laden, etc.)

Tabbing ist standardmäßig aktiviert, man muss nur die Fensterdekoration mittels mittlerer Maustaste Drag&Drop auf eine andere Deko ziehen. Mit Oxygen sieht das auch richtig toll aus. Andere Dekos unterstützen es noch nicht, ich hoffe die Zeit zu finden Unterstützung in Aurorae zu implementieren. Mehr Infos zu Tabbing findet man hier.

Ich hätte mich dieses Wochenende auch mit Tabbing beschäftigen können, stattdessen hab ich Present Windows und Desktop Grid verheiratet. D.h. wenn man Desktop Grid aktiviert, werden die Fenster mittels Present Windows angeordnet und das ganze sieht dann so aus:

Von KWin

Desktop Grid nutzt dabei Internas von Present Windows, leider ist es (noch) nicht möglich den Filter oder die Mauskürzel zu verwenden. Dazu müssten die Effekte schon verschmolzen zu werden, oder nach dem neuen Channel Topic:

One effect to rule them all. One effect to find them,
one effect to bring them all and in the darkness bind them
in the Land of KWin where the Wobbliness lies.

=-=-=-=-=
Powered by Blogilo

Desktop Grid with Present Windows

One effect to rule them all. One effect to find them,
one effect to bring them all and in the darkness bind them
in the Land of KWin where the Wobbliness lies.

I wanted to present a video of it, but recordmydesktop does not want to record my desktop. So here is only a screenshot of new KWin fun:

Von KWin

Desktop Grid uses Present Windows (if activated) to lay out the windows as you might know from the previews of GNOME Shell or Mac OS Spaces. In the not existing video you can see that dragging the windows from one desktop to the other is nice and smooth. As soon as the dragging starts the windows on the starting desktop will be rearranged and the window, which is being moved is, bound to the cursor. When dropping the window onto another desktop the windows start to rearrange immediately.

The Present Windows effect has a proxy which allows other effects to call some of the methods from Present Windows. So Desktop Grid uses the proxy to get the layout for a group of windows. The proxies are also used in other effects, e.g. Sliding Popups disables the Fade animation and CoverSwitch uses a proxy to get the thumbnail bar from BoxSwitch.

Other goodies from Present Windows like filtering or mouse actions are not used. Therefore the effects have to be merged to become the one effect to rule them all. (Yes The Lord of the Rings is currently again the book on my bedside table.)

=-=-=-=-=
Powered by Blogilo