Pseudo-transparency is a term used for X Window System clients that simulate the appearance of translucency or transparency by manipulating the same pixmap that has been drawn on the root window, or by instructing the X Server that the Background Pixmap should be inherited from the window's parent.
Purpose
Traditionally, the X Window System has lagged behind other windowing system implementations in adding purely eye candy features, such as window translucency. This has encouraged client developers to develop hacks (cunning workarounds) to overcome this limitation.
This pseudo-transparency, so called as only the background pixmap of the root window is visible (a similar concept to desktop wallpaper) rather than any obscured windows, allows users to make windows look less imposing (such as Terminal emulators, which usually comprise of large chunks of text), and to integrate the appearance of windows with their desktop themes. Additionally, it looks really neat.
Implementation
There are 3 common methods for achieving pseudo-transparency, each with their own benefits and weaknesses.
The ParentalRelative method uses the XSetWindowBackgroundPixmap() Xlib function to inherit the windows background from the parent window. This is generally the fastest method, but is also very limited as the X Server permits very few operations on the BackgroundPixmap (such as XOR).
- _XROOTPMAP_ID and ESETROOT_PMAP_ID properties
These properties are used to inform the window where it can find the Pixmap used on the root window, this method uses the most memory, but has the advantage of allowing clients to perform any operation it wishes on the pixmap, such as tinting, shading, etc.
XCopyArea is the most visually pleasing method, but with the significant disadvantage that it is only usable with modal windows where the X Server has been grabbed, such as menus. This method simply uses the XCopyArea() Xlib function to take a screenshot and then uses it as the Background Pixmap.
Future
Pseudo-transparency is only a hack used by developers until the X Servers support transparency, or so-called "True Transparency". X.Org, XDirectFB and others are all developing True Transparency support.