packages icon

			  *** Xtoolwait 1.3 ***

		Richard Huveneers <richard@hekkihek.hacom.nl>

This utility notably decreases the startup time of your X sessions, provided
that you start a number of X clients automatically during the X session
startup.
Most people, for instance, start X clients like xterm, xclock, xconsole and
xosview from their .xinitrc, .openwin-init, .xtoolplaces or .xsession file.

These X clients are started simultaneously (in the background) which puts a
high load on the X server and the OS:

* The X server is not multi-threaded, so all X clients are competing to get
  access to the X server and to use its resources, which causes a lot of
  overhead (= delay).

* The performance of other (non X related) tasks served by the system degrades
  badly due to the high load.
  If the system has not enough RAM to hold all the X clients, it is swapping
  heavily, resulting again in a lot of delay.

On the Sun platform there is a utility called 'toolwait' which solves these
problems: it starts one X client in the background, waits until it has mapped
a window and then exits.

Xtoolwait is a free implementation of exactly the same idea.

HISTORY

	Of course I first looked around if somebody else already wrote a
	similar utility. I first stumbled upon this simple, but useless, shell
	script:

	#!/bin/sh
	${1+"$@"}&

	Then I found 'toolwait-0.9' written by Brandon S. Allbery. His program
	relies on the XView libraries to receive events from the X server. For
	some reason this method fails to detect about 50% of the X events,
	resulting in an equal amount of time-outs.

	So I decided to write Xtoolwait. The result is this small, clean
	utility which only uses standard Xlib calls and works 100% for me.

	After releasing Xtoolwait 0.1, someone told me about xrunclient, which
	is included in the MIT X11 distribution. Since both utilities share
	the same goal, I would probably not have bothered to write Xtoolwait
	if I had known of xrunclient before.
	So, why should you use Xtoolwait instead of xrunclient? Simply because
	Xtoolwait does the job much better, as is readily shown by timing the
	startup of X clients like xterm.

SUPPORTED PLATFORMS

	This list is far from complete. I expect Xtoolwait to run under _any_
	operating system, X11 release and window manager.
	If you are using Xtoolwait under an unlisted operating system, X11
	release	or window manager, please let me know.

	Xtoolwait is known to work on these platforms:

	Operating system:	Linux 1.x, 2.x
				Ultrix 4.4
				DEC OSF/1 3.0
				Solaris 2.4
				SunOS 4.1.x
				SGI IRIX 5.2

	X11 release:		X11R5
				X11R6
				X11R6.1

	Window manager:		olvwm 4
				olwm (version?)
				tvtwm R5.7
				twm R6
				fvwm 1.23b
				fvwm2
				kwm v0.11

INSTALLATION

	Installing Xtoolwait is very easy:

	xmkmf
	make
	make install
	make install.man

USAGE

	This is the relevant part of my own .xinitrc file, showing the
	proper use of xtoolwait:

	#
	# Startup the window manager first
	#
	olvwm & wmpid=$!
	#
	# Restore desktop settings
	# Do _not_ put xtoolwait in the background
	#
	xtoolwait -mappings 2 contool -Wp 30 30 -Ws 575 246 -WP 3 533 -Wi
	xtoolwait xeyes -geom 77x60+640+107
	xtoolwait ansi_xterm -geom 80x24+22+11
	xtoolwait clock -Wp 90 90 -Ws 150 150 -WP 733 110 -Wi
	#
	# Wait for the window manager
	#
	wait $wmpid

	Note that the window manager must be started first. Xtoolwait depends
	on it to detect window mappings. The first instance of Xtoolwait will
	wait until both the window manager and the X client have finished
	their initialization.

	Note also that the first Xtoolwait uses the -mappings option to
	detect the virtual desktop window, which is mapped by virtual window
	managers. Omit this option if you use a non-virtual window manager.

	Do not put Xtoolwait in the background with an '&'. When Xtoolwait
	detects a window mapping it will put the X client in the background
	and exit.

	Xtoolwait has a few options. Examine the manual page (man xtoolwait)
	after the installation.

COPYRIGHT

	Copyright (C) 1995-1999  Richard Huveneers <richard@hekkihek.hacom.nl>
	Xtoolwait is released under the GNU General Public License.
	The full copyright notice is stated at the start of the source code.

SUPPORT

	Support for Xtoolwait has been integrated in the official distribution
	of Xtoolplaces. Using the -w option of Xtoolplaces, saved desktop
	configurations will automatically be restored using Xtoolwait.

	Xtoolplaces is written by Adam Stein <adam@iset.scan.mc.xerox.com>
	and is available at
	http://www.csh.rit.edu/~adam/Progs/programs.html

	New releases of Xtoolwait will be available at
	http://www.hacom.nl/~richard/software/xtoolwait.html

Enjoy,

Richard Huveneers
<richard@hekkihek.hacom.nl>