Xinerama support for vtwm

Eeri Kask Eeri.Kask at inf.tu-dresden.de
Sun May 18 06:37:49 PDT 2008


Hello vtwm users,

   www1.inf.tu-dresden.de/~ek1/vtwm-20080210-tweaked-diffs.tar

includes a patchset containig the backport of the Xinerama support 
recently developed for twm.  It is to be applied against the 20080210 
trunk version of the vtwm source code; execute

   svn export http://cadaver.deadbeast.net/svn/vtwm/trunk

to download this.  Not entering the local 'trunk/' subdirectory, running

   www1.inf.tu-dresden.de/~ek1/VTWM-Tweaked.sh

should download the above patchset and compile the tweaked vtwm with 
Xinerama enabled.  (Having been asked to supply compile 
scripts/instructions, so here I am happily doing this.) :-)

  *****

How this Xinerama support looks like and how it was created is somewhat 
tedious/unnecessary to describe here, though this dummy screenshot

   www1.inf.tu-dresden.de/~ek1/TheGimp-Xinerama.png

shows some of the development/testing environment.

In short, the left half is a circular Xnest/Xdmx Xinerama mockup 
(spanning 9 tiles), 'fdclock' running in the background and vtwm 
managing the vertically-zoomed ghostscript window (depicting the 
implemented full-zoom algorithm enlarging the pink sample window into 
green). The right half is twm-managed X11 physical screen used to take 
the screenshot by gimp.

(As xcompmgr seemingly does not run on Xinerama, the vtwm "screen" looks 
somewhat flat.)


The most important implementation aspect to be noted here probably is, 
the zoom functions (fullzoom included) only zoom across Xinerama tiles 
which the client window already intersects, and do not perform a kind of 
"global maximise", spanning the client across Xinerama tiles resulting 
in a maximum possible area covered.

Second, the vtwm/twm window manager elements (iconmanagers, icon 
regions, virtual-display window, doors, etc) falling onto "dead areas" 
by .vtwmrc configuration are brought back onto visible area with the 
least possible effort.  This means, under certain unlucky conditions 
these elements may appear one ontop of some other, if the geometric 
computations so result.  (I did not put any effort into tracking screen 
coverage in this respect as being unnecessary complexity, which can be 
in fact easily avoided by .vtwmrc configuration.)


Having tested this code for some time already, though I am not using 
Xinerama very extensively myself, so I have to rely largely on any 
problem reports, ideas, etc. one may encounter.


Have fun,

     Eeri Kask




More information about the xorg mailing list