Saturday, September 22, 2007

KWin improvements

I first wanted to blog about KWin changes after returning from aKademy but then I never got to doing it. After that I've thought something like "once I'll complete this feature, I'll blog" a few times but then another interesting thing came up...
But finally, here's a summary of cool stuff that has happened in recent months:

One of the most interesting things is compositing settings autodetection. KWin now tries to detect your video driver and it's version and if it's good enough then compositing will be enabled by default. ATM it'll be enabled for NVidia drivers >= 96.39 and for Intel >= 20061017. If you know which settings work for another card/driver then please report it to kwin mailing list or post a comment here.

When you enable compositing yourself or change some of its settings, you'll get a confirmation dialog which will revert back to previous, hopefully working settings if you won't respond in 10 seconds (it's similar to the one you get when changing resolution. In fact there's plan to use exactly the same dialog). ATM it's a bit unreliable in that KWin sometimes crashes when reloading it's settings but hopefully it'll be fixed soon.

Speaking of KWin crashes, we're planning to make KWin restart itself in such cases (just like Plasma or KRunner) and eventually turn off compositing so that you'd always have a usable window manager, even when compositing has some problems.

Then there's the not-so-new-anymore compositing config module where you can turn on compositing and effects. Since a few days ago it also includes the entire list of effects so there's no separate "Window effects" config module for that anymore.

One of the biggest usability complaints - effect shortcuts aren't listed anywhere - is also starting to get solved. I added shortcuts to PresentWindows config module. I'm still not sure if all effects should have a config module just to show the shortcuts or if it would be better to just list the shortcut in effect's description (e.g. "Shows all desktops side by side when Ctrl+F8 is pressed"... or just "Shows all desktops side by side (Ctrl+F8)"). We've still got a little time to figure it out.

There are a few new effects as well. Invert and Sharpen effects were added during aKademy and Looking Glass - a fancier-looking magnifier - a little after it.

Old effects have received some polishing. PresentWindows and BoxSwitch both show window captions and icons. Shadows are nice and round (and unfortunately a bit slow). Some animations are faster, making KWin feel snappier.

I'm not posting any videos this time but if all goes well, you should see one in beta3's announcement.

26 comments:

Bernhard said...

you've all done great work so far! i just wonder if anybody knows if it'll have a good performance with the opensource radeon drivers (xorg). Another thing is that I'd love to see something similar to the cube plugin from compiz fusion in kwin... it's the most useful thing of the whole 3D Desktop thing IMO.

Bernhard

Anonymous said...

It's one of the not-so usefull features I think. My productivity doesn't go up. Although it is nice eye-candy to show off to your vista friends :)

Anonymous said...

I feel the eye-candy is very important to a lot of people / first time users. To me it is certainly important my DE looks and acts nice. So keep up the good work, bring on the goodies! Thanks!

Unknown said...

I also find the cube to be one of the most important parts of Compiz.

To my mind the vital fact about the cube is that it actually makes spatial sense. Once you start thinking in terms of the cube you find that you have a far easier time keeping track of where your windows are and how to get to them.You can actually visualize and point to them in a 3D space. No other abstraction I've seen enables this in a consistent fashion. When at the furthest right desktop now, is the furthest left desktop to your far left or just to your right? This inconsistent abstraction leaves the spatial abilities of a human mind completely confused and makes for less efficient managing of windows.

Combining the cube's far better abstraction of virtual desktops with animations for switching desktop, and moving windows between desktops, makes the chosen abstraction obvious to the user making for a minimal amount of confusion. I think Compiz handles this quite well for a first implementation.

The pure eye-candy, to my mind, is of little use beyond the wow factor. I have all the meaningless animations turned off. I would not want to do without the cube though. It is simply a model that far better suits how my mind work than the way that virtual desktops are usually laid out.

Anonymous said...

IMHO,the "configure desktop effects" window looks somewhat complex.
On the other hand, I like the restart after crash feature.

Anonymous said...

I prefer a taurus over a cube. That way you can have a 2D grid of desktops that loops back in both dimensions (left-right and up-down).

That's essentially what the panel-layout represents, but without all the complex mapping and distortion to make it a taurus.

Anonymous said...

Is this going to be 3d (AIGLX/XGL) compositing, or 2d via EXA like kompmgr and xcompmgr? I really hope there is support for the latter. For me, with my ATI x300, I can't do AIGLX or XGL, and when it does work, it's really slow. But 2d compositing is pretty snappy. Due to the fact that 3d support is always gonna be hit or miss on gfx cards under linux, it stands to reason that 2d compositing should be at the very least supported, if not preferred.

wmhilton said...

Rivo, surely the shortcut keys for different effects are changable right? Could you just make a standard "Configure Shortcuts" dialog (like is in practically standard KDE applications) for Kwin Effects?

Anonymous said...

Good work, especially on the bulletproofing.

One feature which would be sorta cool is an invert which keeps things their original color, just flips their brightness.

Anonymous said...

Nice, but has the ever present switching desktop when running a fullscreen app bug been fixed ? It becomes omni-present and stops responding to commands, i.e. vncviewer.

Anonymous said...

Speaking of the cube plugin from compiz fusion making the most "spatial sense", I have to say I find the `expose` plugin (from compiz fusion) to give an even better visual appearance to each desktop. Mac OSX uses a similar feature and I think it would make the most sense for KDE to have it too.

Rivo Laks said...

anonymous: There is the XRender compositing mode (which is 2d), but it's not as advanced as the OpenGL one and will certainly not be preferred.
I don't think we should prefer an inferior solution only because some companies can't write good enough drivers.
That said, most effects should work with XRender although it has some bugs atm and needs more testing.

kwilliam: shortcuts will hopefully be changeable, yes. I'm not sure how easy or possible it will be to put them into a common place though, so probably each effect will have it's own little config dialog at first.

Anonymous said...

Great work. I just wondered if it would be possible to provide an optional system tray symbol for easy access to a few effects. One of the major problems with these effects is IMHO, that there are so many shortcuts to remember. I think that effects like the magnifying glass would be used more often, if there was a quick way of accessing them without having to learn all the shortcuts.

wmhilton said...

Hey! I like fliegenderfrosch's idea. How about a system tray icon that when you click on it, it shows a menu listing the enabled effects along with their shortcut(s).

@ everyone who says, "I want a Compiz Cube!": Go install Compiz Fusion. You should be able to use any window manager you like with KDE. Kwin4 is not a clone of Compiz. Personally, I think it's effects are simpler and better thought out. Consider the titlebar searching built into PresentWindows. Now there's some usability! (Video of PresentWindows effect)

In my opinion DesktopGrid (Video of DesktopGrid effect) is far superior to "the Cube" effect for several reasons.
One, the Grid is better you can see all your virtual desktops at once. The Cube doesn't let you see more of your desktop at once, because you can only see (at most) two sides at a time.*
Two, it is easier and faster to move windows from one virtual desktop to another over a large grid than slowly dragging them around the corners of a cube.
Three, it works much better than a 3D polygon for users who have 6 or more virtual desktops. (Imagine trying to find Virtual Desktop 7 out of 12 by spinning a dodecagon!)

To those who say the spacial aspect of the cube makes Virtual Desktops "makes sense", I hope that the DesktopGrid effect works just as well, by making it easy to think of your desktop as a "zoomed in" section of your meta-desktop (or whatever a collection of virtual vesktops are called collectively).


*Yes, I'm aware Compiz Fusion has a new effect so you can see all the sides of your polygon at once, but it doesn't use screen space efficiently and makes the screens all very small.

wmhilton said...

Oh, and I know this isn't the place to put it, but YEA! The Oxygen Theme looks better every time I see a new screenshot. Tell the Oxygen team they rock!

Anonymous said...

Maybe a bit off topic, but since I have 2 displays there is one thing that bothers me:
When I close a window I have to scroll into the upper right corner and the cursor often lands on the other screen.

It would be nice to have the possibility to define a barrier - say - the upper and lower 50px, there the mouse will stay on the current screen.

NoWhereMan said...

I'm wondering what the "cancel" does in the Yes/no/cancel you have posted.

Don't forget usability ;)

Keep up the great work, though ;)

Fabio Albieri said...

I've got a question/wishlist !

How much control is given a user on the windows shadow ?

For example, I prefer to have "shadow" perfectly centered under the window, whitey colored.
The effect I aim for is a sort of white halo, marvellous to see with the trailfocus-like attention catcher effect.

Rivo Laks said...

NoWhereMan: I was told that the Cancel button helps usability. Anyway it's already removed by now (by some other also concerned about usability ;-)

f satana: you can control shadow's offset, fuzziness, radius and translucency. I'm not really sure how much configurability I want (too much isn't good either). Maybe I'll add color though.

Anonymous said...

Native KDE does not have any good window decorations. Will new KWin have the possibility to import/use emerald or compiz decorations/themes?

Anonymous said...

eye-candy is impressive for 2 seconds and irrellevant for getting tasks done. Please consider working on Grouping Windows using Tabs, this feature is the killer feature which has made me use fluxbox for years.

beryl can actually also group windows in tabs, which is a good reason to use that and not kwin when using KDE 3.5.x (KDE+beryl is the desktop I pretend I use when Windows-using friends are here..).

Mentioned by "magnus" cube feature is impressive but worthless compared to the awesomeness of windows grouped in tabs.

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.