[comp.windows.x] Multiplexing output to another display?

jxf@orion.cis.ksu.edu (Jerry Frain) (01/11/91)

I need a program which can multiplex the display of an application
running on my machine to a different display (on another machine).

Probably this tool will have to interpose itself between the application
and the X server on my machine, intercept calls to the server, and echo
them to the X server on the other display.

The purpose of this program will be to demonstrate projects (masters or PhD)
to multiple sites simultaneously, while maintaining the verbal portion of
the demonstration via telephone conference call.

Any idea if such an animal exists?  I'd also like to know how one would
go about writing this program, if anyone has any food for thought.  For
if such a beast does not exist, it will be created (assuming it is possible).

Thanks much in advance,

  --Jerry

--
Jerry Frain -- Systems Programmer               Kansas State University
                                        Department of Computing & Info Sciences
Internet : jxf@cis.ksu.edu                         Manhattan, Kansas
UUCP     : ...!rutgers!ksuvax1!jxf

neideck@kaputt.enet.dec.com (Burkhard Neidecker-Lutz) (01/11/91)

What you describe is our shX. Availability see below:



		 The CEC Karlsruhe proudly announces
			       *******
			       * shX *
			       *******
(read: shared X), a tool for window sharing in X.

	    Written by: Michael Altenhofen
			Digital Equipment GmbH
			CEC Karlsruhe
			Vincenz-Priessnitz-Str. 1
			D-7500 Karlsruhe 1
			Germany

	   e-mail: shX@nestvx.enet.dec.com


With the term *shared* we don't mean a shareable library, but we mean
a *modified Xlib* that allows *window sharing* in X across multiple
workstations.

I've implemented shX in the context of computerbased learning/training
to provide online help from remote tutors.  The tutor will get a
replica of the course on the display (see, that's my problem) and will
then demonstrate the solution by manipulating the replica (see, that's
the solution).

You can think of other scenarios where window sharing could be useful,
e.g. remote debugging or tele conferencing.

The development of this modified library was guided by four major
goals:

*Transparency*
     No modifications should be necessary to add this new
     functionality to an existing application.  The application should
     not be aware of being shared.

*Dynamics*
     Adding and removing displays to an application should be possible at any
     time.

*WYSIWIS (What You See Is What I See)*
     The output of a shared application should be identical on all
     displays.

*Tolerance*
     The modified library should compensate tolerable hardware differences
     (which manifest themselves in Visuals); e.g. it should be possible to
     replicate an application in a heterogeneous display environment.

ShX currently works on SUN3, Sparc, Vax (U*x) and DECstations.

********************  HOT TO GET SOURCES  ********************

Sources are available by anonymous ftp on
	expo.lcs.mit.edu	   /contrib/shX.tar.Z
	crl.dec.com		   /pub/X11/contrib/shX.tar.Z
	gatekeeper.dec.com	   /pub/X11/contrib/shX.tar.Z

The sources include the modified Xlib, a command line control
interface (helper), and the bridge, an application that allows
you to share existing applications without rebuilding them.

Send comments, bug reports, fixes and enhancements to
		       shX@nestvx.enet.dec.com

Have fun!
Michael Altenhofen

evans@decvax.DEC.COM (Marc Evans) (01/14/91)

In article <1991Jan10.213444.14654@maverick.ksu.ksu.edu>, jxf@orion.cis.ksu.edu (Jerry Frain) writes:
|> I need a program which can multiplex the display of an application
|> running on my machine to a different display (on another machine).

The XTrap package (including a server/library extension and sample client programs)
is well suited for this task. In fact, the sample programs can be used to do
exactly what you describe.

The XTrap kit is available via anonomous ftp from both gatekeeper.dec.com and
expo.lcs.mit.edu in:

	gatekeeper.dec.com	pub/X11/contrib/XTrap_v31.tar.Z
	expo.lcs.mit.edu		contrib/XTrap_v31.tar.Z

To replicate the actions of one workstation on another, use:

	$ XTrapOut -e | (DISPLAY=othermachine:0 XTrapIn -e)

To output to multiple workstations, you will need to add a script in the middle
which reads in information and then passes it along to a list of machines (ksh
or perl is well suited for this).

- Marc
-- 
===========================================================================
Marc Evans - WB1GRH - evans@decvax.DEC.COM  | Synergytics     (603)635-8876
      Unix and X Software Contractor        | 21 Hinds Ln, Pelham, NH 03076
===========================================================================

jsb@cs.brown.edu (John Bazik) (01/19/91)

In article <1991Jan10.213444.14654@maverick.ksu.ksu.edu>, jxf@orion.cis.ksu.edu (Jerry Frain) writes:
> I need a program which can multiplex the display of an application
> running on my machine to a different display (on another machine).

XMX (an X Protocol Multiplexor) does just this.  It is a pseudo-server that
provides for the simultaneous display of X clients on any number of machines.
XMX is a standalone utility, and does not require any modification to
applications or X servers.

XMX is available for anonymous ftp:

		host:	wilma.cs.brown.edu (128.148.31.66)
		file:	pub/xmx.tar.Z

John Bazik
jsb@cs.brown.edu