NAME
lbxproxy - Low BandWidth X proxy
SYNOPSIS
lbxproxy [:<display>] [option]
DESCRIPTION
Applications that would like to take advantage
of the Low Bandwidth extension to X (LBX) must make their
connections to an lbxproxy. These applications need to know nothing
about LBX, they simply connect to the lbxproxy as if were a regular
server. The lbxproxy accepts client connections, multiplexes them
over a single connection to the X server, and performs various
optimizations on the X protocol to make it faster over low
bandwidth and/or high latency connections.
With regard to authentication/authorization, lbxproxy simply
passes along to the server the credentials presented by the client.
Since X clients will connect to lbxproxy, it is important that the
user's .Xauthority file contain entries with valid keys associated
with the network ID of the proxy. lbxproxy does not get involved
with how these entries are added to the .Xauthority file. The user
is responsible for setting it up.
The lbxproxy program has various options, all of which are
optional.
If :<display> is specified, the proxy will use the
given display port when listening for connections. The display port
is an offset from port 6000, identical to the way in which regular
X display connections are specified. If no port is specified on the
command line option, lbxproxy will default to port 63. If the port
number that the proxy tries to listen on is in use, the proxy will
attempt to use another port number. If the proxy is not using the
Proxy Manager and the default port number cannot be used, the port
number that is used will be written to stderr.
The other command line options that can be specified are:
- -help
- Prints a brief help message about the command line options.
- -display dpy
- Specifies the address of the X server supporting the LBX
extension. If this option is not specified, the display is obtained
by the DISPLAY environment variable.
- -motion count
- A limited number of pointer motion events are allowed to be in
flight between the server and the proxy at any given time. The
maximum number of motion events that can be in flight is set with
this option; the default is 8.
- -maxservers number
- The default behavior of lbxproxy is to manage a single server.
However, lbxproxy can manage more than one server. The default
maximum number of servers is 20. The number of servers can be
overridden by setting the environment variable LBXPROXY_MAXSERVERS
to the desired number. The order of precedence from highest to
lowest: command line, environment variable, default number.
- -[terminate|reset]
- The default behavior of lbxproxy is to continue running as
usual when it's last client exits. The -terminate option
will cause lbxproxy to exit when the last client exits. The
-reset option will cause lbxproxy to reset itself when the
last client exits. Resetting causes lbxproxy to clean up it's state
and reconnect to the server.
- -reconnect
- The default behavior of lbxproxy is to exit when its connection
to the server is broken. The -reconnect option will cause
lbxproxy to just reset instead (see -reset above) and
attempt to reconnect to the server.
- -I
- Causes all remaining arguments to be ignored.
- -nolbx
- Disables all LBX optimizations.
- -nocomp
- Disables stream compression.
- -nodelta
- Disables delta request substitutions.
- -notags
- Disables usage of tags.
- -nogfx
- Disables reencoding of graphics requests (not including image
related requests).
- -noimage
- Disables image compression.
- -nosquish
- Disables squishing of X events.
- -nointernsc
- Disables short circuiting of InternAtom requests.
- -noatomsfile
- Disables reading of the atoms control file. See the section on
"Atom Control" for more details.
- -atomsfile file
- Overrides the default AtomControl file. See the section on
"Atom Control" for more details.
- -nowinattr
- Disables GetWindowAttributes/GetGeometry grouping into one
round trip.
- -nograbcmap
- Disables colormap grabbing.
- -norgbfile
- Disables color name to RGB resolution in proxy.
- -rgbfile path
- Specifies an alternate RGB database for color name to RGB
resolution.
- -tagcachesize
- Set the size of the proxy's tag cache (in bytes).
- -zlevel level
- Set the Zlib compression level (used for stream
compression).
default is 6
1 = worst compression, fastest
9 = best compression, slowest
- -compstats
- Report stream compression statistics every time the proxy
resets or receives a SIGHUP signal.
- -nozeropad
- Don't zero out unused pad bytes in X requests, replies, and
events.
- -cheaterrors
- Allows cheating on X protocol for the sake of improved
performance. The X protocol guarantees that any replies, events or
errors generated by a previous request will be sent before those of
a later request. This puts substantial restrictions on when
lbxproxy can short circuit a request. The -cheaterrors option
allows lbxproxy to violate X protocol rules with respect to errors.
Use at your own risk.
- -cheatevents
- The -cheatevents option allows lbxproxy to violate X protocol
rules with respect to events as well as errors. Use at your own
risk.
ATOM CONTROL
At startup, lbxproxy "pre-interns" a configurable list of atoms.
This allows lbxproxy to intern a group of atoms in a single round
trip and immediately store the results in its cache.
While running, lbxproxy uses heuristics to decide when to delay
sending window property data to the server. The heuristics depend
on the size of the data, the name of the property, and whether a
window manager is running through the same lbxproxy.
Atom control is specified in the "AtomControl" file, set up
during installation of lbxproxy, with command line overrides.
The file is a simple text file. There are three forms of lines:
comments, length control, and name control. Lines starting with a
'!' are treated as comments. A line of the form
z length
specifies the minimum length in bytes before property data will
be delayed. A line of the form
options atomname
controls the given atom, where options is any combination
of the following characters: 'i' means the atom should be
pre-interned; and 'w' means data for properties with this name
should be delayed only if a window manager is also running through
the same lbxproxy.
BUGS
When the authorization protocol XDM-AUTHORIZATION-1 is used:
A client must be on the same host as lbxproxy for the client to
be authorized to connect to the server.
If a client is not on the same host as lbxproxy, the client will
not be authorized to connect to the server.