Compositing fun, Alt-key, Trident driver

Keith Packard keithp@keithp.com
Sun, 04 Jan 2004 13:03:19 -0800


Around 13 o'clock on Jan 4, Joel Dice wrote:

> The main change I made to xcompmgr is to specify the alpha value in the
> CM_TRANSLUCENCY window property (instead of just on or off).  I'm also
> considering adding another property (call it CM_SHADOW) to specify what
> kind of shadow the window should have, if any.  If anyone else is
> interested in these changes, please let me know.

With the help of Lars Knoll, I put together a proposed change to the EWMH 
specification that uses a _NET_WM_WINDOW_OPACITY property to hold a 32 bit 
opacity value.

	http://mail.gnome.org/archives/wm-spec-list/2003-December/msg00035.html

I've prototyped this in xcompmgr, metacity and fdclock, but haven't
committed those changes to CVS -- all but the metacity changes are just
hacks.  I've made a horrible mess of the xcompmgr insides at this point I
should spend some time cleaning up my code and getting the useful bits back
into the public repository.

The window manager is involved because it must either deal with the 
opacity value itself when acting as a compositing manager or forward the 
value from the application window up to the frame.

The other changes in xcompmgr involve eliminating the shadow alpha map and 
compositing directly from the alpha value of the window to the desktop.  
This generates 'sharp' shadows, which aren't as nice looking, but have the 
advantage of following the window contents or shape accurately.  I got 
stuck because I wanted to add convolution to the X server so that I could 
get the accurate shadows modified with a gaussian blur so they would look 
nice again.  Sigh.  Too many fun hacks to implement, not enough time.

-keith