Bug 108194 - Translucent & fuzzy (etched glass) window borders (similar to GNOME Avalon)
Summary: Translucent & fuzzy (etched glass) window borders (similar to GNOME Avalon)
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Unclassified
Component: compositing (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist with 4 votes (vote)
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-06-27 03:09 UTC by Vlad C.
Modified: 2009-06-28 20:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad C. 2005-06-27 03:09:39 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

It would be really nice if window borders could be translucent and fuzzy, mimicking etched glass.
(see proof of concept: 
http://www.gnome-look.org/content/show.php?content=23232&vote=good&tan=364541
http://gnome-look.org/content/preview.php?preview=1&id=23232&file1=23232-1.png&file2=23232-2.png&file3=&name=Avalon+%28concept%29&PHPSESSID=db8730d76eb1acf2595c4ca213c0e9bd
)

It will look great with the default Plastik theme, where instead of changing the color of the minimize/change-size/close buttons on MouseOver, the area around the buttons will change translucency by becoming more opaque. 

This could probably be done using Kompmgr in KDE 4 ;)
Comment 1 Thomas Lübking 2005-06-27 04:30:08 UTC
this is no "proof of concept", but a mockup...
anyhow, i'm planning to allow the whole deco to be translucent, while the content stays opaque (let's see if we can have different levels of opacity)
the distorsion however will need an GL XServer or (extensions to, full HW implementation of, better) XRender, as smoothing (distorsion, gauss blurr) is horrible slow on SW (for realtime purposes)
Comment 2 Vlad C. 2005-06-28 04:32:23 UTC
You're right, it's only a mockup. Sorry for the misrepresentation.

Everything you said sounds right on track! I guess another challenge (if we are to mimic the Plastik theme) is to not only change the opacity of the region surrounding the buttons, but to do it smoothly/gradually.
Comment 3 Ryan Nickell 2005-07-15 15:20:58 UTC
There is a start to this as far as the window decoration portion over at kdelook.org.
Crystal:
http://kdelook.org/content/show.php?content=13969
Crystal GL:
http://kdelook.org/content/show.php?content=18983

To get the style to match would be the hard part, but I just wanted to point out that someone had done some work on this for us to expand upon.
Comment 4 Thomas Lübking 2005-07-15 20:29:02 UTC
this deco uses fake translucency (i.e. the wallpaper) and the key problem is that X doesn not operate on GL textures, so you'd need to:
- transform the X pixmap into a GL texture (slow)
- perform the GL action on that texture (fast, depending on your HW)
- retransform the updateted texture into a X pixmap (slow again)
and that is somehow to slow at all for realtime usage

as we don't get full XRender HW support from the GPU vendors and maybe some extensions to XRender an openGL X backend may be the only usable solution to this, but a lot of X key developers seem to do not really like that idea (and a lot of ppl don't like the CSS XServers as well...)

and before anyone states: "but M$ can do that, do you say linux is not as good as M$ ;)"
1. this is not linux but X (scnr ;)
2. unfortunately the X team cannot just say: "This is directX - support or die!"

however i'm currently passing the control over the window translucency to the decos, current cvs supports translucent decos and opaque windows and as mentioned in later releases the deco may ask for gradients or other functions on this
fully and *stable* ARGB support (i think Qt4 has?) together with an improved COMPOSITE extension will bring even more translucency to your desktop
Comment 5 Vlad C. 2005-07-20 23:38:32 UTC
I've read your discussion on how to create blurring without relying on the computationally-intensive Gaussian formula:
http://baghira.sourceforge.net/blurring.shtml

This is just an idea, but would randomizing the pixel shifts within a given range make the blur more realistic? Something like this:
1.The original (opaque) 
2.Shifted rand(1,3)px up, rand(1,3)px left (50% opaque) 
3.Shifted rand(1,3)px down, rand(1,3)px right (50% opaque)
Comment 6 Thomas Lübking 2005-07-21 04:19:39 UTC
i assume you mean per pixel? (otherwise the answer is strictly no, adjusting the displacement value to the resolution could be usefull)

yes, may be - but XRender simply doesn't give that currently (if you call XRenderComposite for every pixel, however you'll very soon get a problem -function calling hast some costs as well ;)

but thanks for promoting my short article (full of typos, though ;)
Comment 7 Martin Flöser 2009-06-28 20:24:30 UTC
Long time no comment to this feature request... it's actually available :-) With KDE 4.3 you can have translucent window decorations. There are theme engines available which support translucency.
Comment 8 Christoph Feck 2009-06-28 20:32:37 UTC
I am not sure the author of this wish is satisfied with transparency only, given that blur has been removed from 4.3

I think this wish should keep open. Or is there a wish to add blur to KWin?
Comment 9 Martin Flöser 2009-06-28 20:37:55 UTC
(In reply to comment #8)
> I think this wish should keep open. Or is there a wish to add blur to KWin?
That blur has been removed has actually nothing to do with decorations. I consider removing of blur as a regression and of course we want to have a nice and good working blur effect in 4.4.