X-Transparency

Scott Brumbaugh <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <[email protected]>
Hi,

I saw that window translucency is on the X 5.0 TODO list so I thought
I would post this message for anyone who is interested in this
particular topic.

A few months ago I used XDirectFB to develop an experimental X
protocol extension called X-Transparency.  This extension allows any
xclient to control the opacity of its or any other x client's top
level x window.  The extension is general and requires that an Xserver
provide callbacks to the protocol to control a top-level window's
transparency.  With XDirectFB these callbacks are simple wrappers
around the corresponding DirectFB api calls.

The X-Transparency API is pretty simple, you use 

    XSetOpacity( dpy, win, value );

to change a windows opacity, and

    XGetOpacity( dpy, win, &value );

to get it.  The extension is available in the directfb cvs under
XDirectFB/xc-transparency-extension.diff

More recently, I have patched the Sawfish window manager to use this
extension.  With this patched Sawfish, a user can continuously vary
window transparency by ctrl-mouse dragging on the title bar of any x
window.  I picked Sawfish for this prototype because it was relatively
easy to write librep wrappers around the XGet/XSetOpacity calls.
After that it was also easy to write lisp functions to change window
transparency and bind these to mouse events.

Here is a pointer to the original X-Transparency extension patch which
is obsoleted by the current xdirectfb cvs:

http://directfb.org/mailinglists/directfb-dev/2002/12-2002/msg00136.html

Here is a pointer to the latest Sawfish patch, this patch is not in cvs:

http://directfb.org/mailinglists/directfb-dev/2003/03-2003/msg00133.html


Scott Brumbaugh
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.