Skip to main content

MaXXcompositor

XCompMng still relevant, if used for the right reasons



As of MaXX Interactice Desktop Indy v1.0, we ship a Composition Manager called XcompMgr.  XcompMgr is our tweaked version of Keith Packard's Compositor with many contributors over the years. People are saying it's a bit old and they are right! However, it's simple, easy to maintain and it works just fine for what we need it to be.

The reasoning behind using XcompMgr is mainly to leverage server-side composition and window content caching. This reduce dramatically Expose events (redraws) that forces X11 windows to redraw themselves over and over when damaged. On a complex graphic application, well your machine is wasting valuable resources redrawing itself.

The drawback in that due to the nature of X11, there is a lot of back and forth to and from the XServer... However, if you have a decent system with a good GPU card, what the heek, go for drop shadows... And it still way less eye-candy *crap happening than on *others. The performance hit is marginal on fast hardware, reducing expose events by a BIG factor and it looks smashing (if you want to).

Try these two variations of XcompMgr on a winterm window:

  • No shadow but super fast server-side composition with reduced Expose events (default)
$ XcompMgr -a
  • For nice shadows and fewer Expose events (but less efficient from a X11 protocol point of view)
$ XcompMgr -C -f

Testing out To see how it works, just move any window over let say, gmemuage or gr_osview and you will understand... try without XcompMgr first, then with the two options.

There are lots of options, I invite you to try them... XcompMgr -h for help

$ XcompMgr v1.1.5 beta MaXX Desktop Edition
usage: XcompMgr [options]
Options
 -d display
 Specifies which display should be managed.
 -r radius
 Specifies the blur radius for client-side shadows. (default 12)
 -o opacity
 Specifies the translucency for client-side shadows. (default .75)
 -l left-offset
 Specifies the left offset for client-side shadows. (default -15)
 -t top-offset
 Specifies the top offset for clinet-side shadows. (default -15)
 -I fade-in-step
 Specifies the opacity change between steps while fading in. (default 0.028)
 -O fade-out-step
 Specifies the opacity change between steps while fading out. (default 0.03)
 -D fade-delta-time
 Specifies the time between steps in a fade in milliseconds. (default 10)
 -a
 Use automatic server-side compositing. Faster, but no special effects.
 -c
 Draw client-side shadows with fuzzy edges.
 -C
 Avoid drawing shadows on dock/panel windows.
 -f
 Fade windows in/out when opening/closing.
 -F
 Fade windows during opacity changes.
 -n
 Normal client-side compositing with transparency support
 -s
 Draw server-side shadows with sharp edges.
 -S
 Enable synchronous operation (for debugging).