blob: 5f1508c03a5eae348439bb0e7289d410e7a36c1b [file] [log] [blame]
Pierre Ossmanf256a1a2014-09-17 14:09:58 +02001.TH X0VNCSERVER 1 "" "TigerVNC" "TigerVNC Manual"
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +00002.SH NAME
Peter Åstrand4eacc022009-02-27 10:12:14 +00003x0vncserver \- TigerVNC Server for X displays
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +00004.SH SYNOPSIS
5.B x0vncserver
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +00006.RI [ options ]
Constantin Kaplinsky2039d7b2008-06-04 10:43:10 +00007.br
8.B x0vncserver -version
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +00009.SH DESCRIPTION
10.B x0vncserver
Peter Åstrand4eacc022009-02-27 10:12:14 +000011is a TigerVNC Server which makes any X display remotely accessible via VNC,
12TigerVNC or compatible viewers. Unlike \fBXvnc\fP(1), it does not create a
Constantin Kaplinsky59740082008-01-08 10:42:22 +000013virtual display. Instead, it just shares an existing X server (typically,
14that one connected to the physical screen).
Pierre Ossmande0f8322014-09-17 15:43:14 +020015
16XDamage will be used if the existing X server supports it. Otherwise
17.B x0vncserver
18will fall back to polling the screen for changes.
Pierre Ossman23f67c32014-09-17 16:28:56 +020019
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000020.SH OPTIONS
21.B x0vncserver
22interprets the command line as a list of parameters with optional values.
23Running \fBx0vncserver -h\fP will show a list of all valid parameters with
Constantin Kaplinsky59740082008-01-08 10:42:22 +000024short descriptions. All parameters are optional, but normally you would have
Constantin Kaplinskycef45772008-01-07 14:52:51 +000025to use the \fBPasswordFile\fP parameter (see its description below).
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000026.PP
27There are several forms of specifying parameters in the command line (here we
28use `\fISomeParameter\fP' as an example parameter name):
Pierre Ossman23f67c32014-09-17 16:28:56 +020029
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000030.TP
31.B -\fISomeParameter\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +000032Enable the parameter, turn the feature on. This form can be used with
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000033parameters that simply enable or disable some feature.
Pierre Ossman23f67c32014-09-17 16:28:56 +020034.
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000035.TP
36.B -\fISomeParameter\fP=0
37Disable the parameter, turn the feature off.
Pierre Ossman23f67c32014-09-17 16:28:56 +020038.
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000039.TP
40.B -\fISomeParameter\fP=\fIvalue\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +000041Assign the specified \fIvalue\fP to the parameter. The leading dash can be
42omitted, or it can be doubled if desired (like in GNU-style long options).
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +000043.PP
44Parameter names are case-insensitive, their order in the command line can be
45arbitrary.
Pierre Ossman23f67c32014-09-17 16:28:56 +020046
Constantin Kaplinskycef45772008-01-07 14:52:51 +000047.SH PARAMETERS
Pierre Ossman23f67c32014-09-17 16:28:56 +020048
Constantin Kaplinskycef45772008-01-07 14:52:51 +000049.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +010050.B \-display \fIdisplay\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +000051The X display name. If not specified, it defaults to the value of the
52DISPLAY environment variable.
Pierre Ossman23f67c32014-09-17 16:28:56 +020053.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +000054.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +010055.B \-rfbport \fIport\fP
56Specifies the TCP port on which x0vncserver listens for connections from
57viewers (the protocol used in VNC is called RFB - "remote framebuffer").
58The default port is 5900.
Pierre Ossman23f67c32014-09-17 16:28:56 +020059.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +000060.TP
Pierre Ossmancf661bf2018-02-05 11:01:22 +010061.B \-UseIPv4
62Use IPv4 for incoming and outgoing connections. Default is on.
63.
64.TP
65.B \-UseIPv6
66Use IPv6 for incoming and outgoing connections. Default is on.
67.
68.TP
Pierre Ossman39594b82018-05-04 15:40:22 +020069.B \-rfbunixpath \fIpath\fP
70Specifies the path of a Unix domain socket on which x0vncserver listens for
71connections from viewers, instead of listening on a TCP port.
72.
73.TP
74.B \-rfbunixmode \fImode\fP
75Specifies the mode of the Unix domain socket. The default is 0600.
76.
77.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +010078.B \-Log \fIlogname\fP:\fIdest\fP:\fIlevel\fP
79Configures the debug log settings. \fIdest\fP can currently be \fBstderr\fP,
80\fBstdout\fP or \fBsyslog\fP, and \fIlevel\fP is between 0 and 100, 100 meaning
81most verbose output. \fIlogname\fP is usually \fB*\fP meaning all, but you can
82target a specific source file if you know the name of its "LogWriter". Default
83is \fB*:stderr:30\fP.
Pierre Ossman23f67c32014-09-17 16:28:56 +020084.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +000085.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +010086.B \-HostsFile \fIfilename\fP
Constantin Kaplinskyb8363be2008-01-08 13:48:19 +000087This parameter allows to specify a file name with IP access control rules.
88The file should include one rule per line, and the rule format is one of the
Pierre Ossman14e214f2015-08-10 11:31:14 +020089following: +\fIaddress\fP/\fIprefix\fP (accept connections from the
90specified address group), -\fIaddress\fP/\fIprefix\fP (reject connections)
91or ?\fIaddress\fP/\fIprefix\fP (query the local user). The first rule
Constantin Kaplinskyb8363be2008-01-08 13:48:19 +000092matching the IP address determines the action to be performed. Rules that
93include only an action sign (+, - or ?) will match any IP address.
Pierre Ossman14e214f2015-08-10 11:31:14 +020094\fIPrefix\fP is optional and is specified as a number of bits (e.g. /24).
95Default is to accept connections from any IP address.
Pierre Ossman23f67c32014-09-17 16:28:56 +020096.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +000097.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +010098.B \-SecurityTypes \fIsec-types\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +000099Specify which security scheme to use for incoming connections. Valid values
Pierre Ossmande0f8322014-09-17 15:43:14 +0200100are a comma separated list of \fBNone\fP, \fBVncAuth\fP, \fBPlain\fP,
101\fBTLSNone\fP, \fBTLSVnc\fP, \fBTLSPlain\fP, \fBX509None\fP, \fBX509Vnc\fP
102and \fBX509Plain\fP. Default is \fBVncAuth,TLSVnc\fP.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200103.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000104.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100105.B \-rfbauth \fIpasswd-file\fP, \-PasswordFile \fIpasswd-file\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000106Password file for VNC authentication. There is no default, you should
107specify the password file explicitly. Password file should be created with
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100108the \fBvncpasswd\fP(1) utility. The file is accessed each time a connection
109comes in, so it can be changed on the fly.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200110.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000111.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100112.B \-Password \fIpassword\fP
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000113Obfuscated binary encoding of the password which clients must supply to
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000114access the server. Using this parameter is insecure, use \fBPasswordFile\fP
115parameter instead.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200116.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000117.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100118.B \-PlainUsers \fIuser-list\fP
Pierre Ossmande0f8322014-09-17 15:43:14 +0200119A comma separated list of user names that are allowed to authenticate via
120any of the "Plain" security types (Plain, TLSPlain, etc.). Specify \fB*\fP
121to allow any user to authenticate using this security type. Default is to
122deny all users.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200123.
Pierre Ossmande0f8322014-09-17 15:43:14 +0200124.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100125.B \-pam_service \fIname\fP, \-PAMService \fIname\fP
Pierre Ossmande0f8322014-09-17 15:43:14 +0200126PAM service name to use when authentication users using any of the "Plain"
127security types. Default is \fBvnc\fP.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200128.
Pierre Ossmande0f8322014-09-17 15:43:14 +0200129.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100130.B \-X509Cert \fIpath\fP
Pierre Ossmande0f8322014-09-17 15:43:14 +0200131Path to a X509 certificate in PEM format to be used for all X509 based
132security types (X509None, X509Vnc, etc.).
Pierre Ossman23f67c32014-09-17 16:28:56 +0200133.
Pierre Ossmande0f8322014-09-17 15:43:14 +0200134.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100135.B \-X509Key \fIpath\fP
Pierre Ossman3d2a84b2014-09-17 16:45:35 +0200136Private key counter part to the certificate given in \fBX509Cert\fP. Must
Pierre Ossmande0f8322014-09-17 15:43:14 +0200137also be in PEM format.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200138.
Pierre Ossmande0f8322014-09-17 15:43:14 +0200139.TP
Pierre Ossmancf661bf2018-02-05 11:01:22 +0100140.B \-GnuTLSPriority \fIpriority\fP
141GnuTLS priority string that controls the TLS session’s handshake algorithms.
142See the GnuTLS manual for possible values. Default is \fBNORMAL\fP.
143.
144.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100145.B \-BlacklistThreshold \fIcount\fP
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000146The number of unauthenticated connection attempts allowed from any individual
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000147host before that host is black-listed. Default is 5.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200148.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000149.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100150.B \-BlacklistTimeout \fIseconds\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000151The initial timeout applied when a host is first black-listed. The host
152cannot re-attempt a connection until the timeout expires. Default is 10.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200153.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000154.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100155.B \-QueryConnect
156Prompts the user of the desktop to explicitly accept or reject incoming
157connections. Default is off.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200158.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000159.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100160.B \-QueryConnectTimeout \fIseconds\fP
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000161Number of seconds to show the Accept Connection dialog before rejecting the
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100162connection. Default is \fB10\fP.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200163.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000164.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100165.B \-AlwaysShared
166Always treat incoming connections as shared, regardless of the client-specified
167setting. Default is off.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200168.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000169.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100170.B \-NeverShared
171Never treat incoming connections as shared, regardless of the client-specified
172setting. Default is off.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200173.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000174.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100175.B \-DisconnectClients
176Disconnect existing clients if an incoming connection is non-shared. Default is
177on. If \fBDisconnectClients\fP is false, then a new non-shared connection will
178be refused while there is a client active. When combined with
179\fBNeverShared\fP this means only one client is allowed at a time.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200180.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000181.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100182.B \-AcceptKeyEvents
183Accept key press and release events from clients. Default is on.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200184.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000185.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100186.B \-AcceptPointerEvents
187Accept pointer press and release events from clients. Default is on.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200188.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000189.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100190.B \-RemapKeys \fImapping
191Sets up a keyboard mapping.
192.I mapping
193is a comma-separated string of character mappings, each of the form
194.IR char -> char ,
195or
196.IR char <> char ,
197where
198.I char
199is a hexadecimal keysym. For example, to exchange the " and @ symbols you would specify the following:
200
201.RS 10
202RemapKeys=0x22<>0x40
203.RE
Pierre Ossman23f67c32014-09-17 16:28:56 +0200204.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000205.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100206.B \-RawKeyboard
Peter Korsgaard8fe50902017-07-13 00:35:57 +0200207Send keyboard events straight through and avoid mapping them to the current
208keyboard layout. This effectively makes the keyboard behave according to the
209layout configured on the server instead of the layout configured on the
210client. Default is off.
211.
212.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100213.B \-Protocol3.3
214Always use protocol version 3.3 for backwards compatibility with badly-behaved
215clients. Default is off.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200216.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000217.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100218.B \-Geometry \fIgeometry\fP
Constantin Kaplinskyb8363be2008-01-08 13:48:19 +0000219This option specifies the screen area that will be shown to VNC clients. The
220format is
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000221.B \fIwidth\fPx\fIheight\fP+\fIxoffset\fP+\fIyoffset\fP
Constantin Kaplinskyf32f8852008-12-23 07:44:39 +0000222, where `+' signs can be replaced with `\-' signs to specify offsets from the
Constantin Kaplinskyb8363be2008-01-08 13:48:19 +0000223right and/or from the bottom of the screen. Offsets are optional, +0+0 is
224assumed by default (top left corner). If the argument is empty, full screen
225is shown to VNC clients (this is the default).
Pierre Ossman23f67c32014-09-17 16:28:56 +0200226.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000227.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100228.B \-MaxProcessorUsage \fIpercent\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000229Maximum percentage of CPU time to be consumed when polling the
230screen. Default is 35.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200231.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000232.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100233.B \-PollingCycle \fImilliseconds\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000234Milliseconds per one polling cycle. Actual interval may be dynamically
235adjusted to satisfy \fBMaxProcessorUsage\fP setting. Default is 30.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200236.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000237.TP
Pierre Ossmancf661bf2018-02-05 11:01:22 +0100238.B \-FrameRate \fIfps\fP
239The maximum number of updates per second sent to each client. If the screen
240updates any faster then those changes will be aggregated and sent in a single
241update to the client. Note that this only controls the maximum rate and a
242client may get a lower rate when resources are limited. Default is \fB60\fP.
243.
244.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100245.B \-CompareFB \fImode\fP
Pierre Ossmande0f8322014-09-17 15:43:14 +0200246Perform pixel comparison on framebuffer to reduce unnecessary updates. Can
247be either \fB0\fP (off), \fB1\fP (always) or \fB2\fP (auto). Default is
248\fB2\fP.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200249.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000250.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100251.B \-UseSHM
Constantin Kaplinskyb8363be2008-01-08 13:48:19 +0000252Use MIT-SHM extension if available. Using that extension accelerates reading
253the screen. Default is on.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200254.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000255.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100256.B \-ZlibLevel \fIlevel\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000257Zlib compression level for ZRLE encoding (it does not affect Tight encoding).
258Acceptable values are between 0 and 9. Default is to use the standard
259compression level provided by the \fBzlib\fP(3) compression library.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200260.
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000261.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100262.B \-ImprovedHextile
Constantin Kaplinsky8d61d0d2008-01-07 16:10:37 +0000263Use improved compression algorithm for Hextile encoding which achieves better
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000264compression ratios by the cost of using slightly more CPU time. Default is
265on.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200266.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000267.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100268.B \-IdleTimeout \fIseconds\fP
269The number of seconds after which an idle VNC connection will be dropped.
270Default is 0, which means that idle connections will never be dropped.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200271.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000272.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100273.B \-MaxDisconnectionTime \fIseconds\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000274Terminate when no client has been connected for \fIN\fP seconds. Default is
2750.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200276.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000277.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100278.B \-MaxConnectionTime \fIseconds\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000279Terminate when a client has been connected for \fIN\fP seconds. Default is
2800.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200281.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000282.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100283.B \-MaxIdleTime \fIseconds\fP
Constantin Kaplinsky59740082008-01-08 10:42:22 +0000284Terminate after \fIN\fP seconds of user inactivity. Default is 0.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200285.
Constantin Kaplinskycef45772008-01-07 14:52:51 +0000286.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100287.B \-ClientWaitTimeMillis \fItime\fP
288Time in milliseconds to wait for a viewer which is blocking the server. This is
289necessary because the server is single-threaded and sometimes blocks until the
290viewer has finished sending or receiving a message - note that this does not
291mean an update will be aborted after this time. Default is 20000 (20 seconds).
Pierre Ossman23f67c32014-09-17 16:28:56 +0200292.
Pierre Ossmande0f8322014-09-17 15:43:14 +0200293.TP
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100294.B \-AcceptCutText
Pierre Ossmande0f8322014-09-17 15:43:14 +0200295.TQ
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100296.B \-SendCutText
Pierre Ossmande0f8322014-09-17 15:43:14 +0200297.TQ
Pierre Ossman8ddfd942018-02-05 10:47:27 +0100298.B \-MaxCutText
Pierre Ossmande0f8322014-09-17 15:43:14 +0200299Currently unused.
Pierre Ossman23f67c32014-09-17 16:28:56 +0200300
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +0000301.SH SEE ALSO
Constantin Kaplinskya9ec0e82008-01-07 13:57:01 +0000302.BR Xvnc (1),
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +0000303.BR vncpasswd (1),
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +0000304.br
Pierre Ossman32b96ff2018-10-19 14:56:53 +0200305https://www.tigervnc.org/
Pierre Ossman23f67c32014-09-17 16:28:56 +0200306
Constantin Kaplinskyb30ae7f2006-05-25 05:04:46 +0000307.SH AUTHOR
Pierre Ossmane37a1442014-09-17 14:08:16 +0200308Constantin Kaplinsky and others.
309
310VNC was originally developed by the RealVNC team while at Olivetti
311Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
312implemented by Constantin Kaplinsky. Many other people have since
313participated in development, testing and support. This manual is part
314of the TigerVNC software suite.