summaryrefslogtreecommitdiffstats
path: root/x11vnc/x11vnc.1
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/x11vnc.1')
-rw-r--r--x11vnc/x11vnc.16962
1 files changed, 0 insertions, 6962 deletions
diff --git a/x11vnc/x11vnc.1 b/x11vnc/x11vnc.1
deleted file mode 100644
index d4dd0a2..0000000
--- a/x11vnc/x11vnc.1
+++ /dev/null
@@ -1,6962 +0,0 @@
-.\" This file was automatically generated from x11vnc -help output.
-.TH X11VNC "1" "December 2010" "x11vnc " "User Commands"
-.SH NAME
-x11vnc - allow VNC connections to real X11 displays
- version: 0.9.13, lastmod: 2010-12-27
-.SH SYNOPSIS
-.B x11vnc
-[OPTION]...
-.SH DESCRIPTION
-.PP
-Typical usage is:
-.IP
-Run this command in a shell on the remote machine "far-host"
-with X session you wish to view:
-.IP
-x11vnc -display :0
-.IP
-Then run this in another window on the machine you are sitting at:
-.IP
-vncviewer far-host:0
-.PP
-Once x11vnc establishes connections with the X11 server and starts listening
-as a VNC server it will print out a string: PORT=XXXX where XXXX is typically
-5900 (the default VNC server port). One would next run something like
-this on the local machine: "vncviewer hostname:N" where "hostname" is
-the name of the machine running x11vnc and N is XXXX - 5900, i.e. usually
-"vncviewer hostname:0".
-.PP
-By default x11vnc will not allow the screen to be shared and it will exit
-as soon as the client disconnects. See \fB-shared\fR and \fB-forever\fR below to override
-these protections. See the FAQ for details how to tunnel the VNC connection
-through an encrypted channel such as
-.IR ssh (1).
-In brief:
-.IP
-ssh \fB-t\fR \fB-L\fR 5900:localhost:5900 far-host 'x11vnc \fB-localhost\fR \fB-display\fR :0'
-.PP
-% vncviewer -encodings 'copyrect tight zrle hextile' localhost:0
-.PP
-Also, use of a VNC password (-rfbauth or \fB-passwdfile)\fR is strongly recommended.
-.PP
-For additional info see: http://www.karlrunge.com/x11vnc/
-and http://www.karlrunge.com/x11vnc/faq.html
-.PP
-Config file support: if the file $HOME/.x11vncrc exists then each line in
-it is treated as a single command line option. Disable with \fB-norc.\fR For
-each option name, the leading character "-" is not required. E.g. a line
-that is either "forever" or "\fB-forever\fR" may be used and are equivalent.
-Likewise "wait 100" or "\fB-wait\fR \fI100\fR" are acceptable and equivalent lines.
-The "#" character comments out to the end of the line in the usual way
-(backslash it for a literal). Leading and trailing whitespace is trimmed off.
-Lines may be continued with a "\\" as the last character of a line (it
-becomes a space character).
-.PP
-.SH OPTIONS
-
-.PP
-\fB-display\fR \fIdisp\fR
-.IP
-X11 server display to connect to, usually :0. The X
-server process must be running on same machine and
-support MIT-SHM. Equivalent to setting the DISPLAY
-environment variable to \fIdisp\fR.
-.IP
-See the description below of the "\fB-display\fR \fIWAIT:...\fR"
-extensions, where alias "\fB-find\fR" will find the user's
-display automatically, and "\fB-create\fR" will create a
-Xvfb session if no session is found.
-.PP
-\fB-auth\fR \fIfile\fR
-.IP
-Set the X authority file to be \fIfile\fR, equivalent to
-setting the XAUTHORITY environment variable to \fIfile\fR
-before startup. Same as \fB-xauth\fR file. See
-.IR Xsecurity (7)
-,
-.IR xauth (1)
-man pages for more info.
-.IP
-Use '-auth guess' to have x11vnc use its \fB-findauth\fR
-mechanism (described below) to try to guess the
-XAUTHORITY filename and use it.
-.IP
-XDM/GDM/KDM: if you are running x11vnc as root and want
-to find the XAUTHORITY before anyone has logged into an
-X session yet, use: x11vnc \fB-env\fR FD_XDM=1 \fB-auth\fR guess ...
-(This will also find the XAUTHORITY if a user is already
-logged into the X session.) When running as root,
-FD_XDM=1 will be tried if the initial \fB-auth\fR guess fails.
-.PP
-\fB-N\fR
-.IP
-If the X display is :N, try to set the VNC display to
-also be :N This just sets the \fB-rfbport\fR option to 5900+N
-The program will exit immediately if that port is not
-available. The \fB-N\fR option only works with normal \fB-display\fR
-usage, e.g. :0 or :8, \fB-N\fR is ignored in the \fB-display\fR
-WAIT:..., \fB-create,\fR \fB-find,\fR \fB-svc,\fR \fB-redirect,\fR etc modes.
-.PP
-\fB-autoport\fR \fIn\fR
-.IP
-Automatically probe for a free VNC port starting at n.
-The default is to start probing at 5900. Use this to
-stay away from other VNC servers near 5900.
-.PP
-\fB-rfbport\fR \fIstr\fR
-.IP
-The VNC port to listen on (a LibVNCServer option), e.g.
-5900, 5901, etc. If specified as "\fB-rfbport\fR \fIPROMPT\fR"
-then the x11vnc \fB-gui\fR is used to prompt the user to
-enter the port number.
-.PP
-\fB-6\fR
-.IP
-IPv6 listening support. In addition to IPv4, the
-IPv6 address is listened on for incoming connections.
-The same port number as IPv4 is used.
-.IP
-NOTE: This x11vnc binary was compiled to have the
-"-6" IPv6 listening mode ENABLED by default (CPPFLAGS
-\fB-DX11VNC_LISTEN6=1).\fR So to disable IPv6 listening mode
-you MUST supply the "\fB-no6\fR" option (see below.)
-.IP
-The "-6" mode works for both normal connections and
-\fB-ssl\fR encrypted ones. Nearly everything is supported
-for the IPv6 case, but there are a few exceptions.
-See \fB-stunnel\fR for its IPv6 support.
-.IP
-Currently, for absolutely everything to work correctly
-the machine may need to have some IPv4 support, at the
-least for the loopback interface. However, for nearly
-all usage modes no IPv4 support is required. See \fB-nopiv4.\fR
-.IP
-If you have trouble compiling or running in IPv6 mode,
-set \fB-DX11VNC_IPV6=0\fR in CPPFLAGS when configuring to
-disable IPv6 support.
-.PP
-\fB-no6\fR
-.IP
-Disable IPv6 listening support (only useful if the
-"-6" mode is compiled in to be the default; see the
-X11VNC_LISTEN6 description above under "-6".)
-.PP
-\fB-noipv6\fR
-.IP
-Do not try to use IPv6 for any listening or connecting
-sockets. This includes both the listening service
-port(s) and outgoing connections from \fB-connect,\fR
-\fB-connect_or_exit,\fR or \fB-proxy.\fR Use this if you are having
-problems due to IPv6.
-.PP
-\fB-noipv4\fR
-.IP
-Do not try to use IPv4 for any listening or connecting
-sockets. This is mainly for exploring the behavior of
-x11vnc on an IPv6-only system, but may have other uses.
-.PP
-\fB-reopen\fR
-.IP
-If the X server connection is disconnected, try to
-reopen the X display (up to one time.) This is of use
-for display managers like GDM (KillInitClients option)
-that kill x11vnc just after the user logs into the
-X session. Note: the reopened state may be unstable.
-Set X11VNC_REOPEN_DISPLAY=n to reopen n times and
-set X11VNC_REOPEN_SLEEP_MAX to the number of seconds,
-default 10, to keep trying to reopen the display (once
-per second.)
-.IP
-Update: as of 0.9.9, x11vnc tries to automatically avoid
-being killed by the display manager by delaying creating
-windows or using XFIXES. So you shouldn't need to use
-KillInitClients=false as long as you log in quickly
-enough (within 45 seconds of connecting.) You can
-disable this by setting X11VNC_AVOID_WINDOWS=never.
-You can also set it to the number of seconds to delay.
-.PP
-\fB-reflect\fR \fIhost:N\fR
-.IP
-Instead of connecting to and polling an X display,
-connect to the remote VNC server host:N and be a
-reflector/repeater for it. This is useful for trying
-to manage the case of many simultaneous VNC viewers
-(e.g. classroom broadcasting) where, e.g. you put
-a repeater on each network switch, etc, to improve
-performance by distributing the load and network
-traffic. Implies \fB-shared\fR (use \fB-noshared\fR as a later
-option to disable). See the discussion below under
-\fB-rawfb\fR vnc:host:N for more details.
-.PP
-\fB-id\fR \fIwindowid\fR
-.IP
-Show the X window corresponding to \fIwindowid\fR not
-the entire display. New windows like popup menus,
-transient toplevels, etc, may not be seen or may be
-clipped. Disabling SaveUnders or BackingStore in the
-X server may help show them. x11vnc may crash if the
-window is initially partially obscured, changes size,
-is iconified, etc. Some steps are taken to avoid this
-and the \fB-xrandr\fR mechanism is used to track resizes. Use
-.IR xwininfo (1)
-to get the window id, or use "\fB-id\fR \fIpick\fR"
-to have x11vnc run
-.IR xwininfo (1)
-for you and extract
-the id. The \fB-id\fR option is useful for exporting very
-simple applications (e.g. the current view on a webcam).
-.PP
-\fB-sid\fR \fIwindowid\fR
-.IP
-As \fB-id,\fR but instead of using the window directly it
-shifts a root view to it: this shows SaveUnders menus,
-etc, although they will be clipped if they extend beyond
-the window.
-.PP
-\fB-appshare\fR
-.IP
-Simple application sharing based on the \fB-id/-sid\fR
-mechanism. Every new toplevel window that the
-application creates induces a new viewer window via
-a reverse connection. The \fB-id/-sid\fR and \fB-connect\fR
-options are required. Run 'x11vnc \fB-appshare\fR \fB-help'\fR
-for more info.
-.PP
-\fB-clip\fR \fIWxH+X+Y\fR
-.IP
-Only show the sub-region of the full display that
-corresponds to the rectangle geometry with size WxH and
-offset +X+Y. The VNC display has size WxH (i.e. smaller
-than the full display). This also works for \fB-id/-sid\fR
-mode where the offset is relative to the upper left
-corner of the selected window. An example use of this
-option would be to split a large (e.g. Xinerama) display
-into two parts to be accessed via separate viewers by
-running a separate x11vnc on each part.
-.IP
-Use '-clip xinerama0' to clip to the first xinerama
-sub-screen (if xinerama is active). xinerama1 for the
-2nd sub-screen, etc. This way you don't need to figure
-out the WxH+X+Y of the desired xinerama sub-screen.
-screens are sorted in increasing distance from the
-(0,0) origin (I.e. not the Xserver's order).
-.PP
-\fB-flashcmap\fR
-.IP
-In 8bpp indexed color, let the installed colormap flash
-as the pointer moves from window to window (slow).
-Also try the \fB-8to24\fR option to avoid flash altogether.
-.PP
-\fB-shiftcmap\fR \fIn\fR
-.IP
-Rare problem, but some 8bpp displays use less than 256
-colorcells (e.g. 16-color grayscale, perhaps the other
-bits are used for double buffering) *and* also need to
-shift the pixels values away from 0, .., ncells. \fIn\fR
-indicates the shift to be applied to the pixel values.
-To see the pixel values set DEBUG_CMAP=1 to print out
-a colormap histogram. Example: \fB-shiftcmap\fR 240
-.PP
-\fB-notruecolor\fR
-.IP
-For 8bpp displays, force indexed color (i.e. a colormap)
-even if it looks like 8bpp TrueColor (rare problem).
-.PP
-\fB-advertise_truecolor\fR
-.IP
-If the X11 display is indexed color, lie to clients
-when they first connect by telling them it is truecolor.
-To workaround RealVNC: inPF has colourMap but not 8bpp
-Use '-advertise_truecolor reset' to reset client fb too.
-.PP
-\fB-visual\fR \fIn\fR
-.IP
-This option probably does not do what you think.
-It simply *forces* the visual used for the framebuffer;
-this may be a bad thing... (e.g. messes up colors or
-cause a crash). It is useful for testing and for some
-workarounds. n may be a decimal number, or 0x hex.
-Run
-.IR xdpyinfo (1)
-for the values. One may also use
-"TrueColor", etc. see <X11/X.h> for a list. If the
-string ends in ":m" then for better or for worse
-the visual depth is forced to be m. You may want to
-use \fB-noshm\fR when using this option (so XGetImage may
-automatically translate the pixel data).
-.PP
-\fB-overlay\fR
-.IP
-Handle multiple depth visuals on one screen, e.g. 8+24
-and 24+8 overlay visuals (the 32 bits per pixel are
-packed with 8 for PseudoColor and 24 for TrueColor).
-.IP
-Currently \fB-overlay\fR only works on Solaris via
-.IR XReadScreen (3X11)
-and IRIX using
-.IR XReadDisplay (3).
-On Solaris there is a problem with image "bleeding"
-around transient popup menus (but not for the menu
-itself): a workaround is to disable SaveUnders
-by passing the "\fB-su\fR" argument to Xsun (in
-/etc/dt/config/Xservers).
-.IP
-Use \fB-overlay\fR as a workaround for situations like these:
-Some legacy applications require the default visual to
-be 8bpp (8+24), or they will use 8bpp PseudoColor even
-when the default visual is depth 24 TrueColor (24+8).
-In these cases colors in some windows will be incorrect
-in x11vnc unless \fB-overlay\fR is used. Another use of
-\fB-overlay\fR is to enable showing the exact mouse cursor
-shape (details below).
-.IP
-Under \fB-overlay,\fR performance will be somewhat slower
-due to the extra image transformations required.
-For optimal performance do not use \fB-overlay,\fR but rather
-configure the X server so that the default visual is
-depth 24 TrueColor and try to have all apps use that
-visual (e.g. some apps have \fB-use24\fR or \fB-visual\fR options).
-.PP
-\fB-overlay_nocursor\fR
-.IP
-Sets \fB-overlay,\fR but does not try to draw the exact mouse
-cursor shape using the overlay mechanism.
-.PP
-\fB-8to24\fR \fI[opts]\fR
-.IP
-Try this option if \fB-overlay\fR is not supported on your
-OS, and you have a legacy 8bpp app that you want to
-view on a multi-depth display with default depth 24
-(and is 32 bpp) OR have a default depth 8 display with
-depth 24 overlay windows for some apps. This option
-may not work on all X servers and hardware (tested
-on XFree86/Xorg mga driver and Xsun). The "opts"
-string is not required and is described below.
-.IP
-This mode enables a hack where x11vnc monitors windows
-within 3 levels from the root window. If it finds
-any that are 8bpp it extracts the indexed color
-pixel values using XGetImage() and then applies a
-transformation using the colormap(s) to create TrueColor
-RGB values that it in turn inserts into bits 1-24 of
-the framebuffer. This creates a depth 24 "view"
-of the display that is then exported via VNC.
-.IP
-Conversely, for default depth 8 displays, the depth
-24 regions are read by XGetImage() and everything is
-transformed and inserted into a depth 24 TrueColor
-framebuffer.
-.IP
-Note that even if there are *no* depth 24 visuals or
-windows (i.e. pure 8bpp), this mode is potentially
-an improvement over \fB-flashcmap\fR because it avoids the
-flashing and shows each window in the correct color.
-.IP
-This method works OK, but may still have bugs and it
-does hog resources. If there are multiple 8bpp windows
-using different colormaps, one may have to iconify all
-but one for the colors to be correct.
-.IP
-There may be painting errors for clipping and switching
-between windows of depths 8 and 24. Heuristics are
-applied to try to minimize the painting errors. One can
-also press 3 Alt_L's in a row to refresh the screen
-if the error does not repair itself. Also the option
-\fB-fixscreen\fR 8=3.0 or \fB-fixscreen\fR V=3.0 may be used to
-periodically refresh the screen at the cost of bandwidth
-(every 3 sec for this example).
-.IP
-The [opts] string can contain the following settings.
-Multiple settings are separated by commas.
-.IP
-For for some X servers with default depth 24 a
-speedup may be achieved via the option "nogetimage".
-This enables a scheme were XGetImage() is not used
-to retrieve the 8bpp data. Instead, it assumes that
-the 8bpp data is in bits 25-32 of the 32bit X pixels.
-There is no requirement that the X server should put
-the data there for our poll requests, but some do and
-so the extra steps to retrieve it can be skipped.
-Tested with mga driver with XFree86/Xorg. For the
-default depth 8 case this option is ignored.
-.IP
-To adjust how often XGetImage() is used to poll the
-non-default visual regions for changes, use the option
-"poll=t" where "t" is a floating point time.
-(default: 0.05)
-.IP
-Setting the option "level2" will limit the search
-for non-default visual windows to two levels from the
-root window. Do this on slow machines where you know
-the window manager only imposes one extra window between
-the app window and the root window.
-.IP
-Also for very slow machines use "cachewin=t"
-where t is a floating point amount of time to cache
-XGetWindowAttributes results. E.g. cachewin=5.0.
-This may lead to the windows being unnoticed for this
-amount of time when deiconifying, painting errors, etc.
-.IP
-While testing on a very old SS20 these options gave
-tolerable response: \fB-8to24\fR poll=0.2,cachewin=5.0. For
-this machine \fB-overlay\fR is supported and gives better
-response.
-.IP
-Debugging for this mode can be enabled by setting
-"dbg=1", "dbg=2", or "dbg=3".
-.PP
-\fB-24to32\fR
-.IP
-Very rare problem: if the framebuffer (X display
-or \fB-rawfb)\fR is 24bpp instead of the usual 32bpp, then
-dynamically transform the pixels to 32bpp. This will be
-slower, but can be used to work around problems where
-VNC viewers cannot handle 24bpp (e.g. "main: setPF:
-not 8, 16 or 32 bpp?"). See the FAQ for more info.
-.IP
-In the case of \fB-rawfb\fR mode, the pixels are directly
-modified by inserting a 0 byte to pad them out to 32bpp.
-For X displays, a kludge is done that is equivalent to
-"\fB-noshm\fR \fI\fB-visual\fR TrueColor:32\fR". (If better performance
-is needed for the latter, feel free to ask).
-.PP
-\fB-scale\fR \fIfraction\fR
-.IP
-Scale the framebuffer by factor \fIfraction\fR. Values
-less than 1 shrink the fb, larger ones expand it. Note:
-the image may not be sharp and response may be slower.
-If \fIfraction\fR contains a decimal point "." it
-is taken as a floating point number, alternatively
-the notation "m/n" may be used to denote fractions
-exactly, e.g. \fB-scale\fR 2/3
-.IP
-To scale asymmetrically in the horizontal and vertical
-directions, specify a WxH geometry to stretch to:
-e.g. '-scale 1024x768', or also '-scale 0.9x0.75'
-.IP
-Scaling Options: can be added after \fIfraction\fR via
-":", to supply multiple ":" options use commas.
-If you just want a quick, rough scaling without
-blending, append ":nb" to \fIfraction\fR (e.g. \fB-scale\fR
-1/3:nb). No blending is the default for 8bpp indexed
-color, to force blending for this case use ":fb".
-.IP
-To disable \fB-scrollcopyrect\fR and \fB-wirecopyrect\fR under
-\fB-scale\fR use ":nocr". If you need to to enable them use
-":cr" or specify them explicitly on the command line.
-If a slow link is detected, ":nocr" may be applied
-automatically. Default: :cr
-.IP
-More esoteric options: for compatibility with vncviewers
-the scaled width is adjusted to be a multiple of 4:
-to disable this use ":n4". ":in" use interpolation
-scheme even when shrinking, ":pad" pad scaled width
-and height to be multiples of scaling denominator
-(e.g. 3 for 2/3).
-.PP
-\fB-geometry\fR \fIWxH\fR
-.IP
-Same as \fB-scale\fR WxH
-.PP
-\fB-scale_cursor\fR \fIfrac\fR
-.IP
-By default if \fB-scale\fR is supplied the cursor shape is
-scaled by the same factor. Depending on your usage,
-you may want to scale the cursor independently of the
-screen or not at all. If you specify \fB-scale_cursor\fR
-the cursor will be scaled by that factor. When using
-\fB-scale\fR mode to keep the cursor at its "natural" size
-use "\fB-scale_cursor\fR \fI1\fR". Most of the ":" scaling
-options apply here as well.
-.PP
-\fB-viewonly\fR
-.IP
-All VNC clients can only watch (default off).
-.PP
-\fB-shared\fR
-.IP
-VNC display is shared, i.e. more than one viewer can
-connect at the same time (default off).
-.PP
-\fB-once\fR
-.IP
-Exit after the first successfully connected viewer
-disconnects, opposite of \fB-forever.\fR This is the Default.
-.PP
-\fB-forever\fR
-.IP
-Keep listening for more connections rather than exiting
-as soon as the first client(s) disconnect. Same as \fB-many\fR
-.IP
-To get the standard non-shared VNC behavior where when
-a new VNC client connects the existing VNC client is
-dropped use: \fB-nevershared\fR \fB-forever\fR This method can
-also be used to guard against hung TCP connections that
-do not go away.
-.PP
-\fB-loop\fR
-.IP
-Create an outer loop restarting the x11vnc process
-whenever it terminates. \fB-bg\fR and \fB-inetd\fR are ignored
-in this mode (however see \fB-loopbg\fR below).
-.IP
-Useful for continuing even if the X server terminates
-and restarts (at that moment the process will need
-permission to reconnect to the new X server of course).
-.IP
-Use, e.g., \fB-loop100\fR to sleep 100 millisecs between
-restarts, etc. Default is 2000ms (i.e. 2 secs) Use,
-e.g. \fB-loop300,5\fR to sleep 300 ms and only loop 5 times.
-.IP
-If \fB-loopbg\fR (plus any numbers) is specified instead,
-the "\fB-bg\fR" option is implied and the mode approximates
-.IR inetd (8)
-usage to some degree. In this case when
-it goes into the background any listening sockets
-(i.e. ports 5900, 5800) are closed, so the next one
-in the loop can use them. This mode will only be of
-use if a VNC client (the only client for that process)
-is already connected before the process goes into the
-background, for example, usage of \fB-display\fR WAIT:..,
-\fB-svc,\fR and \fB-connect\fR can make use of this "poor man's"
-inetd mode. The default wait time is 500ms in this
-mode. This usage could use useful: \fB-svc\fR \fB-bg\fR \fB-loopbg\fR
-.PP
-\fB-timeout\fR \fIn\fR
-.IP
-Exit unless a client connects within the first n seconds
-after startup.
-.IP
-If there have been no connection attempts after n
-seconds x11vnc exits immediately. If a client is
-trying to connect but has not progressed to the normal
-operating state, x11vnc gives it a few more seconds
-to finish and exits if it does not make it to the
-normal state.
-.IP
-For reverse connections via \fB-connect\fR or \fB-connect_or_exit\fR
-a timeout of n seconds will be set for all reverse
-connects. If the connect timeout alarm goes off,
-x11vnc will exit immediately.
-.PP
-\fB-sleepin\fR \fIn\fR
-.IP
-At startup sleep n seconds before proceeding (e.g. to
-allow redirs and listening clients to start up)
-.IP
-If a range is given: '-sleepin min-max', a random value
-between min and max is slept. E.g. '-sleepin 0-20' and
-\'-sleepin 10-30'. Floats are allowed too.
-.PP
-\fB-inetd\fR
-.IP
-Launched by
-.IR inetd (8):
-stdio instead of listening socket.
-Note: if you are not redirecting stderr to a log file
-(via shell 2> or \fB-o\fR option) you MUST also specify the \fB-q\fR
-option, otherwise the stderr goes to the viewer which
-will cause it to abort. Specifying both \fB-inetd\fR and \fB-q\fR
-and no \fB-o\fR will automatically close the stderr.
-.PP
-\fB-tightfilexfer\fR
-.IP
-Enable the TightVNC file transfer extension. Note that
-that when the \fB-viewonly\fR option is supplied all file
-transfers are disabled. Also clients that log in
-viewonly cannot transfer files. However, if the remote
-control mechanism is used to change the global or
-per-client viewonly state the filetransfer permissions
-will NOT change.
-.IP
-IMPORTANT: please understand if \fB-tightfilexfer\fR is
-specified and you run x11vnc as root for, say, inetd
-or display manager (gdm, kdm, ...) access and you do
-not have it switch users via the \fB-users\fR option, then
-VNC Viewers that connect are able to do filetransfer
-reads and writes as *root*.
-.IP
-Also, tightfilexfer is disabled in \fB-unixpw\fR mode.
-.PP
-\fB-ultrafilexfer\fR
-.IP
-Note: to enable UltraVNC filetransfer and to get it to
-work you probably need to supply these LibVNCServer
-options: "\fB-rfbversion\fR \fI3.6 \fB-permitfiletransfer\fR"\fR
-"\fB-ultrafilexfer\fR" is an alias for this combination.
-.IP
-IMPORTANT: please understand if \fB-ultrafilexfer\fR is
-specified and you run x11vnc as root for, say, inetd
-or display manager (gdm, kdm, ...) access and you do
-not have it switch users via the \fB-users\fR option, then
-VNC Viewers that connect are able to do filetransfer
-reads and writes as *root*.
-.IP
-Note that sadly you cannot do both \fB-tightfilexfer\fR and
-\fB-ultrafilexfer\fR at the same time because the latter
-requires setting the version to 3.6 and tightvnc will
-not do filetransfer when it sees that version number.
-.PP
-\fB-http\fR
-.IP
-Instead of using \fB-httpdir\fR (see below) to specify
-where the Java vncviewer applet is, have x11vnc try
-to *guess* where the directory is by looking relative
-to the program location and in standard locations
-(/usr/local/share/x11vnc/classes, etc). Under \fB-ssl\fR or
-\fB-stunnel\fR the ssl classes subdirectory is sought.
-.PP
-\fB-http_ssl\fR
-.IP
-As \fB-http,\fR but force lookup for ssl classes subdir.
-.IP
-Note that for HTTPS, single-port Java applet delivery
-you can set X11VNC_HTTPS_DOWNLOAD_WAIT_TIME to the
-max number of seconds to wait for the applet download
-to finish. The default is 15.
-.PP
-\fB-avahi\fR
-.IP
-Use the Avahi/mDNS ZeroConf protocol to advertise
-this VNC server to the local network. (Related terms:
-Rendezvous, Bonjour). Depending on your setup, you
-may need to start avahi-daemon and open udp port 5353
-in your firewall.
-.IP
-You can set X11VNC_AVAHI_NAME, X11VNC_AVAHI_HOST,
-and/or X11VNC_AVAHI_PORT environment variables
-to override the default values. For example:
-\fB-env\fR X11VNC_AVAHI_NAME=wally
-.IP
-If the avahi API cannot be found at build time, a helper
-program like avahi-
-.IR publish (1)
-or dns-
-.IR sd (1)
-will be tried
-.PP
-\fB-mdns\fR
-.IP
-Same as \fB-avahi.\fR
-.PP
-\fB-zeroconf\fR
-.IP
-Same as \fB-avahi.\fR
-.PP
-\fB-connect\fR \fIstring\fR
-.IP
-For use with "vncviewer -listen" reverse connections.
-If \fIstring\fR has the form "host" or "host:port"
-the connection is made once at startup.
-.IP
-Use commas for a list of host's and host:port's.
-E.g. \fB-connect\fR host1,host2 or host1:0,host2:5678.
-Note that to reverse connect to multiple hosts at the
-same time you will likely need to also supply: \fB-shared\fR
-.IP
-Note that unlike most vnc servers, x11vnc will require a
-password for reverse as well as for forward connections.
-(provided password auth has been enabled, \fB-rfbauth,\fR etc)
-If you do not want to require a password for reverse
-connections set X11VNC_REVERSE_CONNECTION_NO_AUTH=1 in
-your environment before starting x11vnc.
-.IP
-If \fIstring\fR contains "/" it is instead interpreted
-as a file to periodically check for new hosts.
-The first line is read and then the file is truncated.
-Be careful about the location of this file if x11vnc
-is running as root (e.g. via
-.IR gdm (1)
-, etc).
-.IP
-Repeater mode: Some services provide an intermediate
-"vnc repeater": http://www.uvnc.com/addons/repeater.html
-(and also http://koti.mbnet.fi/jtko/ for linux port)
-that acts as a proxy/gateway. Modes like these require
-an initial string to be sent for the reverse connection
-before the VNC protocol is started. Here are the ways
-to do this:
-.IP
-\fB-connect\fR pre=some_string+host:port
-\fB-connect\fR pre128=some_string+host:port
-\fB-connect\fR repeater=ID:1234+host:port
-\fB-connect\fR repeater=23.45.67.89::5501+host:port
-.IP
-SSVNC notation is also supported:
-.IP
-\fB-connect\fR repeater://host:port+ID:1234
-.IP
-As with normal \fB-connect\fR usage, if the repeater port is
-not supplied 5500 is assumed.
-.IP
-The basic idea is between the special tag, e.g. "pre="
-and "+" is the pre-string to be sent. Note that in
-this case host:port is the repeater server, NOT the
-vnc viewer. Somehow the pre-string tells the repeater
-server how to find the vnc viewer and connect you to it.
-.IP
-In the case pre=some_string+host:port, "some_string"
-is simply sent. In the case preNNN=some_string+host:port
-"some_string" is sent in a null padded buffer of
-length NNN. repeater= is the same as pre250=, this is
-the ultravnc repeater buffer size.
-.IP
-Strings like "\\n" and "\\r", etc. are expanded to
-newline and carriage return. "\\c" is expanded to
-"," since the connect string is comma separated.
-.IP
-See also the \fB-proxy\fR option below for additional ways
-to plumb reverse connections.
-.IP
-Reverse SSL: using \fB-connect\fR in \fB-ssl\fR mode makes x11vnc
-act as an SSL client (initiates SSL connection) rather
-than an SSL server. The idea is x11vnc might be
-connecting to stunnel on the viewer side with the
-viewer in listening mode. If you do not want this
-behavior, use \fB-env\fR X11VNC_DISABLE_SSL_CLIENT_MODE=1.
-With this the viewer side can act as the SSL client
-as it normally does for forward connections.
-.IP
-Reverse SSL Repeater mode: This will work, but note
-that if the VNC Client does any sort of a 'Fetch Cert'
-action before connecting, then the Repeater will
-likely drop the connection and both sides will need
-to restart. Consider the use of \fB-connect_or_exit\fR
-and \fB-loop300,2\fR to have x11vnc reconnect once to the
-repeater after the fetch. You will probably also want
-to supply \fB-sslonly\fR to avoid x11vnc thinking the delay
-in response means the connection is VeNCrypt. The env
-var X11VNC_DISABLE_SSL_CLIENT_MODE=1 discussed above
-may also be useful (i.e. the viewer can do a forward
-connection as it normally does.)
-.IP
-IPv6: as of x11vnc 0.9.10 the \fB-connect\fR option should
-connect to IPv6 hosts properly. If there are problems
-you can disable IPv6 by setting \fB-DX11VNC_IPV6=0\fR
-in CPPFLAGS when configuring. If there problems
-connecting to IPv6 hosts consider a relay like the
-included inet6to4 script or the \fB-proxy\fR option.
-.PP
-\fB-connect_or_exit\fR \fIstr\fR
-.IP
-As with \fB-connect,\fR except if none of the reverse
-connections succeed, then x11vnc shuts down immediately
-.IP
-An easier to type alias for this option is '-coe'
-.IP
-By the way, if you do not want x11vnc to listen on
-ANY interface use \fB-rfbport\fR 0 which is handy for the
-\fB-connect_or_exit\fR mode.
-.PP
-\fB-proxy\fR \fIstring\fR
-.IP
-Use proxy in string (e.g. host:port) as a proxy for
-making reverse connections (-connect or \fB-connect_or_exit\fR
-options).
-.IP
-Web proxies are supported, but note by default most of
-them only support destination connections to ports 443
-or 563, so this might not be very useful (the viewer
-would need to listen on that port or the router would
-have to do a port redirection).
-.IP
-A web proxy may be specified by either "host:port"
-or "http://host:port" (the port is required even if
-it is the common choices 80 or 8080)
-.IP
-SOCKS4, SOCKS4a, and SOCKS5 are also supported.
-SOCKS proxies normally do not have restrictions on the
-destination port number.
-.IP
-Use a format like this: socks://host:port or
-socks5://host:port. Note that ssh \fB-D\fR does not support
-SOCKS4a, so use socks5://. For socks:// SOCKS4 is used
-on a numerical IP and "localhost", otherwise SOCKS4a
-is used (and so the proxy tries to do the DNS lookup).
-.IP
-An experimental mode is "\fB-proxy\fR \fIhttp://host:port/...\fR"
-Note the "/" after the port that distinguishes it from
-a normal web proxy. The port must be supplied even if
-it is the default 80. For this mode a GET is done to
-the supplied URL with the string host=H&port=P appended.
-H and P will be the \fB-connect\fR reverse connect host
-and port. Use the string "__END__" to disable the
-appending. The basic idea here is that maybe some cgi
-script provides the actual viewer hookup and tunnelling.
-How to actually achieve this within cgi, php, etc. is
-not clear... A custom web server or apache module
-would be straight-forward.
-.IP
-Another experimental mode is "\fB-proxy\fR \fIssh://user@host\fR"
-in which case a SSH tunnel is used for the proxying.
-"user@" is not needed unless your unix username is
-different on "host". For a non-standard SSH port
-use ssh://user@host:port. If proxies are chained (see
-next paragraph) then the ssh one must be the first one.
-If ssh-agent is not active, then the ssh password needs
-to be entered in the terminal where x11vnc is running.
-Examples:
-.IP
-\fB-connect\fR localhost:0 \fB-proxy\fR ssh://me@friends-pc:2222
-.IP
-\fB-connect\fR snoopy:0 \fB-proxy\fR ssh://ssh.company.com
-.IP
-Multiple proxies may be chained together in case one
-needs to ricochet off of a number of hosts to finally
-reach the VNC viewer. Up to 3 may be chained, separate
-them by commas in the order they are to be connected to.
-E.g.: http://host1:port1,socks5://host2:port2 or three
-like: first,second,third
-.IP
-IPv6: as of x11vnc 0.9.10 the \fB-proxy\fR option should
-connect to IPv6 hosts properly. If there are problems
-you can disable IPv6 by setting \fB-DX11VNC_IPV6=0\fR
-in CPPFLAGS when configuring. If there problems
-connecting to IPv6 hosts consider a relay like the
-included inet6to4 script.
-.PP
-\fB-vncconnect,\fR \fB-novncconnect\fR
-.IP
-Monitor the VNC_CONNECT X property set by the standard
-VNC program
-.IR vncconnect (1).
-When the property is
-set to "host" or "host:port" establish a reverse
-connection. Using
-.IR xprop (1)
-instead of vncconnect may
-work (see the FAQ). The \fB-remote\fR control mechanism uses
-X11VNC_REMOTE channel, and this option disables/enables
-it as well. Default: \fB-vncconnect\fR
-.IP
-To use different names for these X11 properties (e.g. to
-have separate communication channels for multiple
-x11vnc's on the same display) set the VNC_CONNECT or
-X11VNC_REMOTE env. vars. to the string you want, for
-example: \fB-env\fR X11VNC_REMOTE=X11VNC_REMOTE_12345
-Both sides of the channel must use the same unique name.
-The same can be done for the internal X11VNC_TICKER
-property (heartbeat and timestamp) if desired.
-.PP
-\fB-allow\fR \fIhost1[,host2..]\fR
-.IP
-Only allow client connections from hosts matching
-the comma separated list of hostnames or IP addresses.
-Can also be a numerical IP prefix, e.g. "192.168.100."
-to match a simple subnet, for more control build
-LibVNCServer with libwrap support (See the FAQ). If the
-list contains a "/" it instead is a interpreted
-as a file containing addresses or prefixes that is
-re-read each time a new client connects. Lines can be
-commented out with the "#" character in the usual way.
-.IP
-\fB-allow\fR applies in \fB-ssl\fR mode, but not in \fB-stunnel\fR mode.
-.IP
-IPv6: as of x11vnc 0.9.10 a host can be specified
-in IPv6 numerical format, e.g. 2001:4860:b009::93.
-.PP
-\fB-localhost\fR
-.IP
-Basically the same as "\fB-allow\fR \fI127.0.0.1\fR".
-.IP
-Note: if you want to restrict which network interface
-x11vnc listens on, see the \fB-listen\fR option below.
-E.g. "\fB-listen\fR \fIlocalhost\fR" or "\fB-listen\fR \fI192.168.3.21\fR".
-As a special case, the option "\fB-localhost\fR" implies
-"\fB-listen\fR \fIlocalhost\fR".
-.IP
-A rare case, but for non-localhost \fB-listen\fR usage, if
-you use the remote control mechanism (-R) to change
-the \fB-listen\fR interface you may need to manually adjust
-the \fB-allow\fR list (and vice versa) to avoid situations
-where no connections (or too many) are allowed.
-.IP
-If you do not want x11vnc to listen on ANY interface
-(evidently you are using \fB-connect\fR or \fB-connect_or_exit,\fR
-or plan to use remote control: \fB-R\fR connect:host), use
-\fB-rfbport\fR 0
-.IP
-IPv6: if IPv6 is supported, this option automatically
-implies the IPv6 loopback address '::1' as well.
-.PP
-\fB-unixsock\fR \fIstr\fR
-.IP
-Listen on the unix socket (AF_UNIX) 'str'
-for connections. This mode is for either local
-connections or a tunnel endpoint where one wants the
-file permission of the unix socket file to determine
-what can connect to it. (This currently requires an
-edit to libvnserver/rfbserver.c: comment out lines 310
-and 311, 'close(sock)' and 'return NULL' in rfbserver.c
-after the setsockopt() call.) Note that to disable all
-tcp listening ports specify '-rfbport 0' and should be
-useful with this mode. Example:
-mkdir ~/s; chmod 700 ~/s;
-x11vnc \fB-unixsock\fR ~/s/mysock \fB-rfbport\fR 0 ...
-The SSVNC unix vncviewer can connect to unix sockets.
-.PP
-\fB-listen6\fR \fIstr\fR
-.IP
-When in IPv6 listen mode "-6", listen only on the
-network interface with address \fIstr\fR. It also works
-for link scope addresses (fe80::219:dbff:fee5:3f92%eth0)
-and IPv6 hostname strings (e.g. ipv6.google.com.)
-Use LibVNCServer \fB-listen\fR option for the IPv4 interface.
-.PP
-\fB-nolookup\fR
-.IP
-Do not use gethostbyname() or gethostbyaddr() to look up
-host names or IP numbers. Use this if name resolution
-is incorrectly set up and leads to long pauses as name
-lookups time out, etc.
-.PP
-\fB-input\fR \fIstring\fR
-.IP
-Fine tuning of allowed user input. If \fIstring\fR does
-not contain a comma "," the tuning applies only to
-normal clients. Otherwise the part before "," is
-for normal clients and the part after for view-only
-clients. "K" is for Keystroke input, "M" for
-Mouse-motion input, "B" for Button-click input, "C"
-is for Clipboard input, and "F" is for File transfer
-(ultravnc only). Their presence in the string enables
-that type of input. E.g. "\fB-input\fR \fIM\fR" means normal
-users can only move the mouse and "\fB-input\fR \fIKMBCF,M\fR"
-lets normal users do anything and enables view-only
-users to move the mouse. This option is ignored when
-a global \fB-viewonly\fR is in effect (all input is discarded
-in that case).
-.PP
-\fB-grabkbd\fR
-.IP
-When VNC viewers are connected, attempt to the grab
-the keyboard so a (non-malicious) user sitting at the
-physical display is not able to enter keystrokes.
-This method uses
-.IR XGrabKeyboard (3X11)
-and so it is
-not secure and does not rule out the person at the
-physical display injecting keystrokes by flooding the
-server with them, grabbing the keyboard himself, etc.
-Some degree of cooperation from the person at the
-display is assumed. This is intended for remote
-help-desk or educational usage modes.
-.IP
-Note: on some recent (12/2010) X servers and/or
-desktops, \fB-grabkbd\fR no longer works: it prevents the
-window manager from resizing windows and similar things.
-Try \fB-ungrabboth\fR below (might not work.)
-.PP
-\fB-grabptr\fR
-.IP
-As \fB-grabkbd,\fR but for the mouse pointer using
-.IR XGrabPointer (3X11).
-Unfortunately due to the way the X
-server works, the mouse can still be moved around by the
-user at the physical display, but he will not be able to
-change window focus with it. Also some window managers
-that call
-.IR XGrabServer (3X11)
-for resizes, etc, will
-act on the local user's input. Again, some degree of
-cooperation from the person at the display is assumed.
-.PP
-\fB-ungrabboth\fR
-.IP
-Whenever there is any input (either keyboard or
-pointer), ungrab *both* the keyboard and the pointer
-while injecting the synthetic input. This is to allow
-window managers, etc. a chance to grab.
-.PP
-\fB-grabalways\fR
-.IP
-Apply both \fB-grabkbd\fR and \fB-grabptr\fR even when no VNC
-viewers are connected. If you only want one of them,
-use the \fB-R\fR remote control to turn the other back on,
-e.g. \fB-R\fR nograbptr.
-.PP
-\fB-viewpasswd\fR \fIstring\fR
-.IP
-Supply a 2nd password for view-only logins. The \fB-passwd\fR
-(full-access) password must also be supplied.
-.PP
-\fB-passwdfile\fR \fIfilename\fR
-.IP
-Specify the LibVNCServer password via the first line
-of the file \fIfilename\fR (instead of via \fB-passwd\fR on
-the command line where others might see it via
-.IR ps (1)
-).
-.IP
-See the descriptions below for how to supply multiple
-passwords, view-only passwords, to specify external
-programs for the authentication, and other features.
-.IP
-If the filename is prefixed with "rm:" it will be
-removed after being read. Perhaps this is useful in
-limiting the readability of the file. In general, the
-password file should not be readable by untrusted users
-(BTW: neither should the VNC \fB-rfbauth\fR file: it is NOT
-encrypted, only obscured with a fixed key).
-.IP
-If the filename is prefixed with "read:" it will
-periodically be checked for changes and reread. It is
-guaranteed to be reread just when a new client connects
-so that the latest passwords will be used.
-.IP
-If \fIfilename\fR is prefixed with "cmd:" then the
-string after the ":" is run as an external command:
-the output of the command will be interpreted as if it
-were read from a password file (see below). If the
-command does not exit with 0, then x11vnc terminates
-immediately. To specify more than 1000 passwords this
-way set X11VNC_MAX_PASSWDS before starting x11vnc.
-The environment variables are set as in \fB-accept.\fR
-.IP
-Note that due to the VNC protocol only the first 8
-characters of a password are used (DES key).
-.IP
-If \fIfilename\fR is prefixed with "custom:" then a
-custom password checker is supplied as an external
-command following the ":". The command will be run
-when a client authenticates. If the command exits with
-0 the client is accepted, otherwise it is rejected.
-The environment variables are set as in \fB-accept.\fR
-.IP
-The standard input to the custom command will be a
-decimal digit "len" followed by a newline. "len"
-specifies the challenge size and is usually 16 (the
-VNC spec). Then follows len bytes which is the random
-challenge string that was sent to the client. This is
-then followed by len more bytes holding the client's
-response (i.e. the challenge string encrypted via DES
-with the user password in the standard situation).
-.IP
-The "custom:" scheme can be useful to implement
-dynamic passwords or to implement methods where longer
-passwords and/or different encryption algorithms
-are used. The latter will require customizing the VNC
-client as well. One could create an MD5SUM based scheme
-for example.
-.IP
-File format for \fB-passwdfile:\fR
-.IP
-If multiple non-blank lines exist in the file they are
-all taken as valid passwords. Blank lines are ignored.
-Password lines may be "commented out" (ignored) if
-they begin with the character "#" or the line contains
-the string "__SKIP__". Lines may be annotated by use
-of the "__COMM__" string: from it to the end of the
-line is ignored. An empty password may be specified
-via the "__EMPTY__" string on a line by itself (note
-your viewer might not accept empty passwords).
-.IP
-If the string "__BEGIN_VIEWONLY__" appears on a
-line by itself, the remaining passwords are used for
-viewonly access. For compatibility, as a special case
-if the file contains only two password lines the 2nd
-one is automatically taken as the viewonly password.
-Otherwise the "__BEGIN_VIEWONLY__" token must be
-used to have viewonly passwords. (tip: make the 3rd
-and last line be "__BEGIN_VIEWONLY__" to have 2
-full-access passwords)
-.PP
-\fB-showrfbauth\fR \fIfilename\fR
-.IP
-Print to the screen the obscured VNC password kept in
-the rfbauth file \fIfilename\fR and then exit.
-.PP
-\fB-unixpw\fR \fI[list]\fR
-.IP
-Use Unix username and password authentication. x11vnc
-will use the
-.IR su (1)
-program to verify the user's
-password. [list] is an optional comma separated list
-of allowed Unix usernames. If the [list] string begins
-with the character "!" then the entire list is taken
-as an exclude list. See below for per-user options
-that can be applied.
-.IP
-A familiar "login:" and "Password:" dialog is
-presented to the user on a black screen inside the
-vncviewer. The connection is dropped if the user fails
-to supply the correct password in 3 tries or does not
-send one before a 45 second timeout. Existing clients
-are view-only during this period.
-.IP
-If the first character received is "Escape" then the
-unix username will not be displayed after "login:"
-as it is typed. This could be of use for VNC viewers
-that automatically type the username and password.
-.IP
-Since the detailed behavior of
-.IR su (1)
-can vary from
-OS to OS and for local configurations, test the mode
-before deployment to make sure it is working properly.
-x11vnc will attempt to be conservative and reject a
-login if anything abnormal occurs.
-.IP
-One case to note: FreeBSD and the other BSD's by
-default it is impossible for the user running x11vnc to
-validate his *own* password via
-.IR su (1)
-(commenting out
-the pam_self.so entry in /etc/pam.d/su eliminates this
-behavior). So the x11vnc login will always *FAIL* for
-this case (even when the correct password is supplied).
-.IP
-A possible workaround for this on *BSD would be to
-start x11vnc as root with the "\fB-users\fR \fI+nobody\fR" option
-to immediately switch to user nobody where the su'ing
-will proceed normally.
-.IP
-Another source of potential problems are PAM modules
-that prompt for extra info, e.g. password aging modules.
-These logins will fail as well even when the correct
-password is supplied.
-.IP
-**IMPORTANT**: to prevent the Unix password being sent
-in *clear text* over the network, one of two schemes
-will be enforced: 1) the \fB-ssl\fR builtin SSL mode, or 2)
-require both \fB-localhost\fR and \fB-stunnel\fR be enabled.
-.IP
-Method 1) ensures the traffic is encrypted between
-viewer and server. A PEM file will be required, see the
-discussion under \fB-ssl\fR below (under some circumstances
-a temporary one can be automatically generated).
-.IP
-Method 2) requires the viewer connection to appear
-to come from the same machine x11vnc is running on
-(e.g. from a ssh \fB-L\fR port redirection). And that the
-\fB-stunnel\fR SSL mode be used for encryption over the
-network. (see the description of \fB-stunnel\fR below).
-.IP
-Note: as a convenience, if you
-.IR ssh (1)
-in and start
-x11vnc it will check if the environment variable
-SSH_CONNECTION is set and appears reasonable. If it
-does, then the \fB-ssl\fR or \fB-stunnel\fR requirement will be
-dropped since it is assumed you are using ssh for the
-encrypted tunnelling. \fB-localhost\fR is still enforced.
-Use \fB-ssl\fR or \fB-stunnel\fR to force SSL usage even if
-SSH_CONNECTION is set.
-.IP
-To override the above restrictions you can set
-environment variables before starting x11vnc:
-.IP
-Set UNIXPW_DISABLE_SSL=1 to disable requiring either
-\fB-ssl\fR or \fB-stunnel\fR (as under SSH_CONNECTION.) Evidently
-you will be using a different method to encrypt the
-data between the vncviewer and x11vnc: perhaps
-.IR ssh (1)
-or an IPSEC VPN. \fB-localhost\fR is still enforced (however,
-see the next paragraph.)
-.IP
-Set UNIXPW_DISABLE_LOCALHOST=1 to disable the \fB-localhost\fR
-requirement in \fB-unixpw\fR modes. One should never do this
-(i.e. allow the Unix passwords to be sniffed on the
-network.) This also disables the localhost requirement
-for reverse connections (see below.)
-.IP
-Note that use of \fB-localhost\fR with
-.IR ssh (1)
-(and no \fB-unixpw)\fR
-is roughly the same as requiring a Unix user login
-(since a Unix password or the user's public key
-authentication is used by sshd on the machine where
-x11vnc runs and only local connections from that machine
-are accepted).
-.IP
-Regarding reverse connections (e.g. \fB-R\fR connect:host
-and \fB-connect\fR host), when the \fB-localhost\fR constraint is
-in effect then reverse connections can only be used
-to connect to the same machine x11vnc is running on
-(default port 5500). Please use a ssh or stunnel port
-redirection to the viewer machine to tunnel the reverse
-connection over an encrypted channel.
-.IP
-In \fB-inetd\fR mode the Method 1) will be enforced (not
-Method 2). With \fB-ssl\fR in effect reverse connections
-are disabled. If you override this via env. var, be
-sure to also use encryption from the viewer to inetd.
-Tip: you can also have your own stunnel spawn x11vnc
-in \fB-inetd\fR mode (thereby bypassing inetd). See the FAQ
-for details.
-.IP
-The user names in the comma separated [list] may have
-per-user options after a ":", e.g. "fred:opts"
-where "opts" is a "+" separated list of
-"viewonly", "fullaccess", "input=XXXX", or
-"deny", e.g. "karl,wally:viewonly,boss:input=M".
-For "input=" it is the K,M,B,C described under \fB-input.\fR
-.IP
-If an item in the list is "*" that means those
-options apply to all users. It ALSO implies all users
-are allowed to log in after supplying a valid password.
-Use "deny" to explicitly deny some users if you use
-"*" to set a global option. If [list] begins with the
-"!" character then "*" is ignored for checking if
-the user is allowed, but the option values associated
-with it do apply as normal.
-.IP
-There are also some utilities for checking passwords
-if [list] starts with the "%" character. See the
-quick_pw() function for more details. Description:
-"%-" or "%stdin" means read one line from stdin.
-"%env" means it is in $UNIXPW env var. A leading
-"%/" or "%." means read the first line from the
-filename that follows after the % character. % by
-itself means prompt for the username and password.
-Otherwise: %user:pass E.g. \fB-unixpw\fR %fred:swordfish
-For the other cases user:pass is read from the indicated
-source. If the password is correct 'Y user' is printed
-and the program exit code is 0. If the password is
-incorrect it prints 'N user' and the exit code is 1.
-If there is some other error the exit code is 2.
-This feature enables x11vnc to be a general unix user
-password checking tool; it could be used from scripts
-or other programs. These % password checks also apply
-to the \fB-unixpw_nis\fR and \fB-unixpw_cmd\fR options.
-.IP
-For the % password check, if the env. var. UNIXPW_CMD
-is set to a command then it is run as the user (assuming
-the password is correct.) The output of the command is
-not printed, the program or script must manage that by
-some other means. The exit code of x11vnc will depend
-on the exit code of the command that is run.
-.IP
-Use \fB-nounixpw\fR to disable unixpw mode if it was enabled
-earlier in the cmd line (e.g. \fB-svc\fR mode)
-.PP
-\fB-unixpw_nis\fR \fI[list]\fR
-.IP
-As \fB-unixpw\fR above, however do not use
-.IR su (1)
-but rather
-use the traditional
-.IR getpwnam (3)
-+
-.IR crypt (3)
-method to
-verify passwords. All of the above \fB-unixpw\fR options and
-constraints apply.
-.IP
-This mode requires that the encrypted passwords be
-readable. Encrypted passwords stored in /etc/shadow
-will be inaccessible unless x11vnc is run as root.
-.IP
-This is called "NIS" mode simply because in most
-NIS setups user encrypted passwords are accessible
-(e.g. "ypcat passwd") by an ordinary user and so that
-user can authenticate ANY user.
-.IP
-NIS is not required for this mode to work (only that
-.IR getpwnam (3)
-return the encrypted password is required),
-but it is unlikely it will work (as an ordinary user)
-for most modern environments unless NIS is available.
-On the other hand, when x11vnc is run as root it will
-be able to to access /etc/shadow even if NIS is not
-available (note running as root is often done when
-running x11vnc from inetd and xdm/gdm/kdm).
-.IP
-Looked at another way, if you do not want to use the
-.IR su (1)
-method provided by \fB-unixpw\fR (i.e. su_verify()), you
-can run x11vnc as root and use \fB-unixpw_nis.\fR Any users
-with passwords in /etc/shadow can then be authenticated.
-.IP
-In \fB-unixpw_nis\fR mode, under no circumstances is x11vnc's
-user password verifying function based on su called
-(i.e. the function su_verify() that runs /bin/su
-in a pseudoterminal to verify passwords.) However,
-if \fB-unixpw_nis\fR is used in conjunction with the \fB-find\fR
-and \fB-create\fR \fB-display\fR WAIT:... modes then, if x11vnc is
-running as root, /bin/su may be called externally to
-run the find or create commands.
-.PP
-\fB-unixpw_cmd\fR \fIcmd\fR
-.IP
-As \fB-unixpw\fR above, however do not use
-.IR su (1)
-but rather
-run the externally supplied command \fIcmd\fR. The first
-line of its stdin will be the username and the second
-line the received password. If the command exits
-with status 0 (success) the VNC user will be accepted.
-It will be rejected for any other return status.
-.IP
-Dynamic passwords and non-unix passwords, e.g. LDAP,
-can be implemented this way by providing your own custom
-helper program. Note that the remote viewer is given 3
-tries to enter the correct password, and so the program
-may be called in a row that many (or more) times.
-.IP
-If a list of allowed users is needed to limit who can
-log in, use \fB-unixpw\fR [list] in addition to this option.
-.IP
-In FINDDISPLAY and FINDCREATEDISPLAY modes the \fIcmd\fR
-will also be run with the RFB_UNIXPW_CMD_RUN env. var.
-non-empty and set to the corresponding display
-find/create command. The first two lines of input are
-the username and passwd as in the normal case described
-above. To support FINDDISPLAY and FINDCREATEDISPLAY,
-\fIcmd\fR should run the requested command as the user
-(and most likely refusing to run it if the password is
-not correct.) Here is an example script (note it has
-a hardwired bogus password "abc"!)
-.IP
-#!/bin/sh
-# Example x11vnc \fB-unixpw_cmd\fR script.
-# Read the first two lines of stdin (user and passwd)
-read user
-read pass
-.IP
-debug=0
-if [ $debug = 1 ]; then
-echo "user: $user" 1>&2
-echo "pass: $pass" 1>&2
-env | egrep \fB-i\fR 'rfb|vnc' 1>&2
-fi
-.IP
-# Check if the password is valid.
-# (A real example would use ldap lookup, etc!)
-if [ "X$pass" != "Xabc" ]; then
-exit 1 # incorrect password
-fi
-.IP
-if [ "X$RFB_UNIXPW_CMD_RUN" = "X" ]; then
-exit 0 # correct password
-else
-# Run the requested command (finddisplay)
-if [ $debug = 1 ]; then
-echo "run: $RFB_UNIXPW_CMD_RUN" 1>&2
-fi
-exec /bin/su - "$user" \fB-c\fR "$RFB_UNIXPW_CMD_RUN"
-fi
-.IP
-In \fB-unixpw_cmd\fR mode, under no circumstances is x11vnc's
-user password verifying function based on su called
-(i.e. the function su_verify() that runs /bin/su in a
-pseudoterminal to verify passwords.) It is up to the
-supplied unixpw_cmd to do user switching if desired
-and if it has the permissions to do so.
-.PP
-\fB-find\fR
-.IP
-Find the user's display using FINDDISPLAY. This
-is an alias for "\fB-display\fR \fIWAIT:cmd=FINDDISPLAY\fR".
-.IP
-Note: if a \fB-display\fR occurs later on the command line
-it will override the \fB-find\fR setting.
-.IP
-For this and the next few options see \fB-display\fR WAIT:...
-below for all of the details.
-.PP
-\fB-finddpy\fR
-.IP
-Run the FINDDISPLAY program, print out the found
-display (if any) and exit. Output is like: DISPLAY=:0.0
-DISPLAY=:0.0,XPID=12345 or DISPLAY=:0.0,VT=7. XPID is
-the process ID of the found X server. VT is the Linux
-virtual terminal of the X server.
-.PP
-\fB-listdpy\fR
-.IP
-Have the FINDDISPLAY program list all of your displays
-(i.e. all the X displays on the local machine that you
-have access rights to). x11vnc then exits.
-.PP
-\fB-findauth\fR \fI[disp]\fR
-.IP
-Apply the \fB-find/-finddpy\fR heuristics to try to guess
-the XAUTHORITY file for DISPLAY 'disp'. If 'disp'
-is not supplied, then the value in the \fB-display\fR on
-the cmdline is used; failing that $DISPLAY is used;
-and failing that ":0" is used. x11vnc then exits.
-.IP
-If nothing is printed out, that means no XAUTHORITY was
-found for 'disp'; i.e. failure. If "XAUTHORITY="
-is printed out, that means use the default (i.e. do
-not set XAUTHORITY). If "XAUTHORITY=/path/to/file"
-is printed out, then use that file.
-.IP
-XDM/GDM/KDM: if you are running x11vnc as root and want
-to find the XAUTHORITY before anyone has logged into an
-X session yet, use: x11vnc \fB-env\fR FD_XDM=1 \fB-findauth\fR ...
-(This will also find the XAUTHORITY if a user is already
-logged into the X session.) When running as root,
-FD_XDM=1 will be tried if the initial \fB-findauth\fR fails.
-.PP
-\fB-create\fR
-.IP
-First try to find the user's display using FINDDISPLAY,
-if that doesn't succeed create an X session via the
-FINDCREATEDISPLAY method. This is an alias for
-"\fB-display\fR \fIWAIT:cmd=FINDCREATEDISPLAY-Xvfb\fR".
-.IP
-Note: if a \fB-display\fR occurs later on the command line
-it will override the \fB-create\fR setting.
-.IP
-SSH NOTE: for both \fB-find\fR and \fB-create\fR you can (should!)
-add the "\fB-localhost\fR" option to force SSH tunnel access.
-.PP
-\fB-xdummy\fR
-.IP
-As in \fB-create,\fR except Xdummy instead of Xvfb.
-.PP
-\fB-xvnc\fR
-.IP
-As in \fB-create,\fR except Xvnc instead of Xvfb.
-.PP
-\fB-xvnc_redirect\fR
-.IP
-As in \fB-create,\fR except Xvnc.redirect instead of Xvfb.
-.PP
-\fB-xdummy_xvfb\fR
-.IP
-Sets WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb
-.PP
-\fB-create_xsrv\fR \fIstr\fR
-.IP
-Sets WAIT:cmd=FINDCREATEDISPLAY-<str> Can be on cmdline
-after anything that sets WAIT:.. and other things
-(e.g. \fB-svc,\fR \fB-xdmsvc)\fR to adjust the X server list.
-Example: \fB-svc\fR ... \fB-create_xsrv\fR Xdummy,X
-.PP
-\fB-svc\fR
-.IP
-Terminal services mode based on SSL access. Alias for
-\fB-display\fR WAIT:cmd=FINDCREATEDISPLAY-Xvfb \fB-unixpw\fR \fB-users\fR
-unixpw= \fB-ssl\fR SAVE Also "\fB-service\fR".
-.IP
-Note: if a \fB-display,\fR \fB-unixpw,\fR \fB-users,\fR or \fB-ssl\fR occurs
-later on the command line it will override the \fB-svc\fR
-setting.
-.PP
-\fB-svc_xdummy\fR
-.IP
-As \fB-svc\fR except Xdummy instead of Xvfb.
-.PP
-\fB-svc_xvnc\fR
-.IP
-As \fB-svc\fR except Xvnc instead of Xvfb.
-.PP
-\fB-svc_xdummy_xvfb\fR
-.IP
-As \fB-svc\fR with Xdummy,Xvfb.
-.PP
-\fB-xdmsvc\fR
-.IP
-Display manager Terminal services mode based on SSL.
-Alias for \fB-display\fR WAIT:cmd=FINDCREATEDISPLAY-Xvfb.xdmcp
-\fB-unixpw\fR \fB-users\fR unixpw= \fB-ssl\fR SAVE Also "\fB-xdm_service\fR".
-.IP
-Note: if a \fB-display,\fR \fB-unixpw,\fR \fB-users,\fR or \fB-ssl\fR occurs
-later on the command line it will override the \fB-xdmsvc\fR
-setting.
-.IP
-To create a session a user will have to first log in
-to the \fB-unixpw\fR dialog and then log in again to the
-XDM/GDM/KDM prompt. Subsequent re-connections will
-only require the \fB-unixpw\fR password. See the discussion
-under \fB-display\fR WAIT:... for more details about XDM,
-etc configuration.
-.IP
-Remember to enable XDMCP in the xdm-config, gdm.conf,
-or kdmrc configuration file. See \fB-display\fR WAIT: for
-more info.
-.PP
-\fB-sshxdmsvc\fR
-.IP
-Display manager Terminal services mode based on SSH.
-Alias for \fB-display\fR WAIT:cmd=FINDCREATEDISPLAY-Xvfb.xdmcp
-\fB-localhost.\fR
-.IP
-The \fB-localhost\fR option constrains connections to come
-in via a SSH tunnel (which will require a login).
-To create a session a user will also have to log into
-the XDM GDM KDM prompt. Subsequent re-connections will
-only only require the SSH login. See the discussion
-under \fB-display\fR WAIT:... for more details about XDM,
-etc configuration.
-.IP
-Remember to enable XDMCP in the xdm-config, gdm.conf,
-or kdmrc configuration file. See \fB-display\fR WAIT: for
-more info.
-.PP
-\fB-unixpw_system_greeter\fR
-.IP
-Present a "Press 'Escape' for System Greeter" option
-to the connecting VNC client in combined \fB-unixpw\fR
-and xdmcp FINDCREATEDISPLAY modes (e.g. \fB-xdmsvc).\fR
-.IP
-Normally in a \fB-unixpw\fR mode the VNC client must
-supply a valid username and password to gain access.
-However, if \fB-unixpw_system_greeter\fR is supplied AND
-the FINDCREATEDISPLAY command matches 'xdmcp', then
-the user has the option to press Escape and then get a
-XDM/GDM/KDM login/greeter panel instead. They will then
-supply a username and password directly to the greeter.
-.IP
-Otherwise, in xdmcp FINDCREATEDISPLAY mode the user
-must supply his username and password TWICE. First to
-the initial unixpw login dialog, and second to the
-subsequent XDM/GDM/KDM greeter. Note that if the user
-re-connects and supplies his username and password in
-the unixpw dialog the xdmcp greeter is skipped and
-he is connected directly to his existing X session.
-So the \fB-unixpw_system_greeter\fR option avoids the extra
-password at X session creation time.
-.IP
-Example: x11vnc \fB-xdmsvc\fR \fB-unixpw_system_greeter\fR
-See \fB-unixpw\fR and \fB-display\fR WAIT:... for more info.
-.IP
-The special options after a colon at the end of the
-username (e.g. user:solid) described under \fB-display\fR
-WAIT: are also applied in this mode if they are typed
-in before the user hits Escape. The username is ignored
-but the colon options are not.
-.IP
-The default message is 2 lines in a small font, set
-the env. var. X11VNC_SYSTEM_GREETER1=true for a 1 line
-message in a larger font.
-.IP
-If the user pressed Escape the FINDCREATEDISPLAY command
-will be run with the env. var. X11VNC_XDM_ONLY=1.
-.IP
-Remember to enable XDMCP in the xdm-config, gdm.conf,
-or kdmrc configuration file. See \fB-display\fR WAIT: for
-more info.
-.PP
-\fB-redirect\fR \fIport\fR
-.IP
-As in FINDCREATEDISPLAY-Xvnc.redirect mode except
-redirect immediately (i.e. without X session finding
-or creation) to a VNC server listening on port. You
-can also supply host:port to redirect to a different
-machine.
-.IP
-If 0 <= port < 200 it is taken as a VNC display (5900 is
-added to get the actual port), if port < 0 then \fB-port\fR
-is used.
-.IP
-Probably the only reason to use the \fB-redirect\fR option
-is in conjunction with SSL support, e.g. \fB-ssl\fR SAVE.
-This provides an easy way to add SSL encryption to a VNC
-server that does not support SSL (e.g. Xvnc or vnc.so)
-In fact, the protocol does not even need to be VNC,
-and so "\fB-rfbport\fR \fIport1 \fB-ssl\fR SAVE \fB-redirect\fR host:port2\fR"
-can act as a replacement for
-.IR stunnel (1).
-.IP
-This mode only allows one redirected connection.
-The \fB-forever\fR option does not apply. Use \fB-inetd\fR or
-\fB-loop\fR for persistent service.
-.PP
-\fB-display\fR \fIWAIT:...\fR
-.IP
-A special usage mode for the normal \fB-display\fR option.
-Useful with \fB-unixpw,\fR but can be used independently
-of it. If the display string begins with WAIT: then
-x11vnc waits until a VNC client connects before opening
-the X display (or \fB-rawfb\fR device).
-.IP
-This could be useful for delaying opening the display
-for certain usage modes (say if x11vnc is started at
-boot time and no X server is running or users logged
-in yet).
-.IP
-If the string is, e.g. WAIT:0.0 or WAIT:1, i.e. "WAIT"
-in front of a normal X display, then that indicated
-display is used.
-.IP
-One can also insert a geometry between colons, e.g.
-WAIT:1280x1024:... to set the size of the display the
-VNC client first attaches to since some VNC viewers
-will not automatically adjust to a new framebuffer size.
-.IP
-A more interesting case is like this:
-.IP
-WAIT:cmd=/usr/local/bin/find_display
-.IP
-in which case the command after "cmd=" is run to
-dynamically work out the DISPLAY and optionally the
-XAUTHORITY data. The first line of the command output
-must be of the form DISPLAY=<xdisplay>. On Linux
-if the virtual terminal is known append ",VT=n" to
-this string and the
-.IR chvt (1)
-program will also be run.
-Any remaining output is taken as XAUTHORITY data.
-It can be either of the form XAUTHORITY=<file> or raw
-xauthority data for the display. For example;
-.IP
-xauth extract - $DISPLAY"
-.IP
-NOTE: As specified in the previous paragraph, you can
-supply your own WAIT:cmd=... program or script, BUT
-there are two very useful *BUILT-IN* ones: FINDDISPLAY
-(alias \fB-find\fR above) and FINDCREATEDISPLAY (alias \fB-create\fR
-above.) Most people use these instead of creating
-their own script. Read the following (especially the
-BUILT-IN modes sections) to see how to configure these
-two useful builtin \fB-display\fR WAIT: modes.
-.IP
-In the case of \fB-unixpw\fR (and \fB-unixpw_nis\fR only if x11vnc
-is running as root), then the cmd= command is run
-as the user who just authenticated via the login and
-password prompt.
-.IP
-In the case of \fB-unixpw_cmd,\fR the commands will also be
-run as the logged-in user, as long as the user-supplied
-helper program supports RFB_UNIXPW_CMD_RUN (see the
-\fB-unixpw_cmd\fR option.)
-.IP
-Also in the case of \fB-unixpw,\fR the user logging in can
-place a colon at the end of her username and supply
-a few options: scale=, scale_cursor= (or sc=), solid
-(or so), id=, clear_mods (or cm), clear_keys (or
-ck), clear_all (or ca), repeat, speeds= (or sp=),
-readtimeout= (or rd=), viewonly (or vo), nodisplay=
-(or nd=), rotate= (or ro=), or noncache (or nc),
-all separated by commas if there is more than one.
-After the user logs in successfully, these options will
-be applied to the VNC screen. For example,
-.IP
-login: fred:scale=3/4,sc=1,repeat
-Password: ...
-.IP
-login: runge:sp=modem,rd=120,solid
-.IP
-for convenience m/n implies scale= e.g. fred:3/4 If you
-type and enter your password incorrectly, to retrieve
-your long "login:" line press the Up arrow once
-(before typing anything else).
-.IP
-Most of these colon options only apply to the builtin
-FINDDISPLAY and FINDCREATEDISPLAY modes, but note
-that they are passed to the extrenal command in the
-environment as well and so could be used.
-.IP
-In the login panel, press F1 to get a list of the
-available options that you can add after the username.
-.IP
-Another option is "geom=WxH" or "geom=WxHxD" (or
-ge=). This only has an effect in FINDCREATEDISPLAY
-mode when a virtual X server such as Xvfb is going
-to be created. It sets the width and height of
-the new display, and optionally the color depth as
-well.
-.IP
-You can also supply "gnome", "kde", "twm",
-"fvwm", "mwm", "dtwm", "wmaker", "xfce",
-"lxde", "enlightenment", "Xsession", or
-"failsafe" (same as "xterm") to have the created
-display use that mode for the user session.
-.IP
-Specify "tag=..." to set the unique FD_TAG desktop
-session tag described below. Note: this option will
-be ignored if the FD_TAG env. var. is already set or
-if the viewer-side supplied value is not completely
-composed of alphanumeric or '_' or '-' characters.
-.IP
-User preferences file: Instead of having the user type
-in geom=WxH,... etc. every time he logs in to find
-or create his X session, if you set FD_USERPREFS to
-a string that does not contain the "/" character,
-then the user's home directory is prepended to that
-string and if the file exists its first line is read
-and appended to any options he supplied at the login:
-prompt. For example \fB-env\fR FD_USERPREFS=.x11vnc_create
-and the user put "geom=1600x1200" in his
-~/.x11vnc_create file.
-.IP
-To disable the option setting set the environment
-variable X11VNC_NO_UNIXPW_OPTS=1 before starting x11vnc.
-To set any other options, the user can use the gui
-(x11vnc \fB-gui\fR connect) or the remote control method
-(x11vnc \fB-R\fR opt:val) during his VNC session.
-.IP
-So we see the combination of \fB-display\fR WAIT:cmd=... and
-\fB-unixpw\fR allows automatic pairing of an unix
-authenticated VNC user with his desktop. This could
-be very useful on SunRays and also any system where
-multiple users share a given machine. The user does
-not need to remember special ports or passwords set up
-for his desktop and VNC.
-.IP
-A nice way to use WAIT:cmd=... is out of
-.IR inetd (8)
-(it automatically forks a new x11vnc for each user).
-You can have the x11vnc inetd spawned process run as,
-say, root or nobody. When run as root (for either inetd
-or display manager), you can also supply the option
-"\fB-users\fR \fIunixpw=\fR" to have the x11vnc process switch to
-the user as well. Note: there will be a 2nd SSL helper
-process that will not switch, but it is only encoding
-and decoding the encrypted stream at that point.
-.IP
-BUILT-IN modes:
-.IP
-\fB--\fR Automatic Finding of User X Sessions \fB--\fR
-.IP
-As a special case, WAIT:cmd=FINDDISPLAY will run a
-script that works on most Unixes to determine a user's
-DISPLAY variable and xauthority data (see
-.IR who (1)
-).
-.IP
-NOTE: The option "\fB-find\fR" is an alias for this mode.
-.IP
-To have this default script printed to stdout (e.g. for
-customization) run with WAIT:cmd=FINDDISPLAY-print To
-have the script run to print what display it would find
-use "\fB-finddpy\fR" or WAIT:cmd=FINDDISPLAY-run
-.IP
-The standard script runs
-.IR xdpyinfo (1)
-run on potential
-displays. If your X server(s) have a login greeter
-that exclusively grabs the Xserver, then xdpyinfo
-blocks forever and this mode will not work. See
-www.karlrunge.com/x11vnc/faq.html#faq-display-manager
-for how to disable this for dtgreet on Solaris and
-possibly for other greeters.
-.IP
-In \fB-find/cmd=FINDDISPLAY\fR mode, if you set FD_XDM=1,
-e.g. 'x11vnc \fB-env\fR FD_XDM=1 \fB-find\fR ...' and x11vnc is
-running as root (e.g. inetd) then it will try to find
-the XAUTHORITY file of a running XDM/GDM/KDM login
-greeter (i.e. no user has logged into an X session yet.)
-.IP
-As another special case, WAIT:cmd=HTTPONCE will allow
-x11vnc to service one http request and then exit.
-This is usually done in \fB-inetd\fR mode to run on, say,
-port 5800 and allow the Java vncviewer to be downloaded
-by client web browsers. For example:
-.IP
-5815 stream tcp nowait root /usr/sbin/tcpd /.../x11vnc \\
-\fB-inetd\fR \fB-q\fR \fB-http_ssl\fR \fB-prog\fR /.../x11vnc \\
-\fB-display\fR WAIT:cmd=HTTPONCE
-.IP
-Where /.../x11vnc is the full path to x11vnc.
-It is used in the Apache SSL-portal example (see FAQ).
-.IP
-In this mode you can set X11VNC_SKIP_DISPLAY to a
-comma separated list of displays (e.g. ":0,:1") to
-ignore in the finding process. The ":" is optional.
-Ranges n-m e.g. 0-20 can also be supplied. This string
-can also be set by the connecting user via "nd="
-using "+" instead of "," If "nd=all" or you set
-X11VNC_SKIP_DISPLAY=all then all display finding fails
-as if you set X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 (below.)
-.IP
-On some systems
-.IR lsof (1)
-can be very slow. Set the
-env. var. FIND_DISPLAY_NO_LSOF=1 to skip using lsof to
-try to find the Linux VT the X server is running on.
-set FIND_DISPLAY_NO_VT_FIND=1 to avoid looking at all.
-.IP
-\fB--\fR Automatic Creation of User X Sessions \fB--\fR
-.IP
-An interesting option is WAIT:cmd=FINDCREATEDISPLAY
-that is like FINDDISPLAY in that is uses the same method
-to find an existing display. However, if it does not
-find one it will try to *start* up an X server session
-for the user. This is the only time x11vnc tries to
-actually start up an X server.
-.IP
-NOTE: The option "\fB-create\fR" is an alias for this mode.
-.IP
-It will start looking for an open display number at :20
-Override via X11VNC_CREATE_STARTING_DISPLAY_NUMBER=n
-By default 80 X displays are allowed (i.e. going to :99)
-Override via X11VNC_CREATE_MAX_DISPLAYS=n
-.IP
-For its heuristics, the create display script sets
-LC_ALL=C so that command output is uniform. By default
-it will try to restore LC_ALL right before starting the
-user session. However, if you don't mind it keeping
-LC_ALL=C set the env. var.: X11VNC_CREATE_LC_ALL_C_OK=1
-.IP
-By default FINDCREATEDISPLAY will try Xvfb and then
-Xdummy:
-.IP
-The Xdummy wrapper is part of the x11vnc source code
-(x11vnc/misc/Xdummy) It should be available in PATH
-and have run "Xdummy \fB-install"\fR once to create the
-shared library. Xdummy only works on Linux. As of
-12/2009 it no longer needs to be run as root, and the
-default is to not run as root. In some circumstances
-permissions may require running it as root, in these
-cases specify FD_XDUMMY_RUN_AS_ROOT=1, this is the same
-as supplying \fB-root\fR to the Xdummy cmdline.
-.IP
-Xvfb is available on most platforms and does not
-require root.
-.IP
-An advantage of Xdummy over Xvfb is that Xdummy supports
-RANDR dynamic screen resizing.
-.IP
-When x11vnc exits (i.e. user disconnects) the X
-server session stays running in the background.
-The FINDDISPLAY will find it directly next time.
-The user must exit the X session in the usual way for
-it to terminate (or kill the X server process if all
-else fails).
-.IP
-To troubleshoot the FINDCREATEDISPLAY mechanism,
-set the following env. var. to an output log file,
-e.g \fB-env\fR CREATE_DISPLAY_OUTPUT=/tmp/mydebug.txt
-.IP
-So this is a somewhat odd mode for x11vnc in that it
-will start up and poll virtual X servers! This can
-be used from, say,
-.IR inetd (8)
-to provide a means of
-definitely getting a desktop (either real or virtual)
-on the machine. E.g. a desktop service:
-.IP
-5900 stream tcp nowait root /usr/sbin/tcpd /.../x11vnc
-\fB-inetd\fR \fB-q\fR \fB-http\fR \fB-ssl\fR SAVE \fB-unixpw\fR \fB-users\fR unixpw=\\
-\fB-passwd\fR secret \fB-prog\fR /.../x11vnc \\
-\fB-display\fR WAIT:cmd=FINDCREATEDISPLAY
-.IP
-Where /.../x11vnc is the full path to x11vnc.
-.IP
-See the \fB-svc/-service\fR option alias above.
-.IP
-If for some reason you do not want x11vnc to ever
-try to find an existing display set the env. var
-X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 (also \fB-env\fR ...)
-This is the same as setting X11VNC_SKIP_DISPLAY=all or
-supplying "nd=all" after "username:"
-.IP
-Use WAIT:cmd=FINDCREATEDISPLAY-print to print out the
-script that is used for this.
-.IP
-You can specify the preferred X server order via e.g.,
-WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb,X and/or leave
-out ones you do not want. The the case "X" means try
-to start up a real, hardware X server using
-.IR xinit (1)
-or
-.IR startx (1).
-If there is already an X server running
-the X case may only work on Linux (see
-.IR startx (1)
-).
-.IP
-"Xvnc" will start up a VNC X server (real-
-or tight-vnc, e.g. use if Xvfb is not available).
-"Xsrv" will start up the server program in the
-variable "FD_XSRV" if it is non-empty. You can make
-this be a wrapper script if you like (it must handle :N,
-\fB-geometry,\fR and \fB-depth\fR and other X server options).
-.IP
-You can set the environment variable FD_GEOM (or
-X11VNC_CREATE_GEOM) to WxH or WxHxD to set the width
-and height and optionally the color depth of the
-created display. You can also set FD_SESS to be the
-session (short name of the windowmanager: kde, gnome,
-twm, failsafe, etc.). FD_OPTS contains extra options
-to pass to the X server. You can also set FD_PROG to
-be the full path to the session/windowmanager program.
-.IP
-More FD tricks: FD_CUPS=port or FD_CUPS=host:port
-will set the cups printing environment. Similarly for
-FD_ESD=port or FD_ESD=host:port for esddsp sound
-redirection. Set FD_EXTRA to a command to be run a
-few seconds after the X server starts up. Set FD_TAG
-to be a unique name for the session, it is set as an
-X property, that makes FINDDISPLAY only find sessions
-with that tag value.
-.IP
-Set FD_XDMCP_IF to the network interface that the
-display manager is running on; default is 'localhost'
-but you may need to set it to '::1' on some IPv6 only
-systems or misconfigured display managers.
-.IP
-If you want the FINDCREATEDISPLAY session to contact an
-XDMCP login manager (xdm/gdm/kdm) on the same machine,
-then use "Xvfb.xdmcp" instead of "Xvfb", etc.
-The user will have to supply his username and password
-one more time (but he gets to select his desktop type
-so that can be useful). For this to work, you will
-need to enable localhost XDMCP (udp port 177) for the
-display manager. This seems to be:
-.IP
-for gdm in gdm.conf: Enable=true in section [xdmcp]
-for kdm in kdmrc: Enable=true in section [Xdmcp]
-for xdm in xdm-config: DisplayManager.requestPort: 177
-.IP
-See the shorthand options above "\fB-svc\fR", "\fB-xdmsvc\fR"
-and "\fB-sshxdmsvc\fR" that specify the above options for
-some useful cases.
-.IP
-If you set the env. var WAITBG=1 x11vnc will go into
-the background once listening in wait mode.
-.IP
-Another special mode is FINDCREATEDISPLAY-Xvnc.redirect,
-(or FINDDISPLAY-Xvnc.redirect). In this case it will
-start up Xvnc as above if needed, but instead of
-polling it in its normal way, it simply does a socket
-redirection of the connected VNC viewer to the Xvnc.
-.IP
-So in Xvnc.redirect x11vnc does no VNC but merely
-transfers the data back and forth. This should be
-faster then x11vnc's polling method, but not as fast
-as connecting directly to the Xvnc with the VNC Viewer.
-The idea here is to take advantage of x11vnc's display
-finding/creating scheme, SSL, and perhaps a few others.
-Most of x11vnc's options do not apply in this mode.
-.IP
-Xvnc.redirect should also work for the vnc.so X server
-module for the h/w display however it will work only
-for finding the display and the user must already be
-logged into the X console.
-.PP
-\fB-vencrypt\fR \fImode\fR
-.IP
-The VeNCrypt extension to the VNC protocol allows
-encrypted SSL/TLS connections. If the \fB-ssl\fR mode is
-enabled, then VeNCrypt is enabled as well BY DEFAULT
-(they both use a SSL/TLS tunnel, only the protocol
-handshake is a little different.)
-.IP
-To control when and how VeNCrypt is used, specify the
-mode string. If mode is "never", then VeNCrypt is
-not used. If mode is "support" (the default) then
-VeNCrypt is supported. If mode is "only", then the
-similar and older ANONTLS protocol is not simultaneously
-supported. x11vnc's normal SSL mode (vncs://) will be
-supported under \fB-ssl\fR unless you set mode to "force".
-.IP
-If mode is prefixed with "nodh:", then Diffie Hellman
-anonymous key exchange is disabled. If mode is prefixed
-with "nox509:", then X509 key exchange is disabled.
-.IP
-To disable all Anonymous Diffie-Hellman access
-(susceptible to Man-In-The-Middle attack) you will need
-to supply "\fB-vencrypt\fR \fInodh:support \fB-anontls\fR never\fR"
-or "\fB-vencrypt\fR \fInodh:only\fR"
-.IP
-If mode is prefixed with "newdh:", then new Diffie
-Hellman parameters are generated for each connection
-(this can be time consuming: 1-60 secs; see \fB-dhparams\fR
-below for a faster way) rather than using the
-fixed values in the program. Using fixed, publicly
-known values is not known to be a security problem.
-This setting applies to ANONTLS as well.
-.IP
-Long example: \fB-vencrypt\fR newdh:nox509:support
-.IP
-Also, if mode is prefixed with "plain:", then
-if \fB-unixpw\fR mode is active the VeNCrypt "*Plain"
-username+passwd method is enabled for Unix logins.
-Otherwise in \fB-unixpw\fR mode the normal login panel is
-provided.
-.IP
-You *MUST* supply the \fB-ssl\fR option for VeNCrypt to
-be active. The \fB-vencrypt\fR option only fine-tunes its
-operation.
-.PP
-\fB-anontls\fR \fImode\fR
-.IP
-The ANONTLS extension to the VNC protocol allows
-encrypted SSL/TLS connections. If the \fB-ssl\fR mode is
-enabled, then ANONTLS is enabled as well BY DEFAULT
-(they both use a SSL/TLS tunnel, only the protocol
-handshake is a little different.)
-.IP
-ANONTLS is an older SSL/TLS mode introduced by vino.
-.IP
-It is referred to as 'TLS' for its registered VNC
-security-type name, but we use the more descriptive
-\'ANONTLS' here because it provides only Anonymous
-Diffie-Hellman encrypted connections, and hence no
-possibility for certificate authentication.
-.IP
-To control when and how ANONTLS is used, specify the
-mode string. If mode is "never", then ANONTLS is not
-used. If mode is "support" (the default) then ANONTLS
-is supported. If mode is "only", then the similar
-VeNCrypt protocol is not simultaneously supported.
-x11vnc's normal SSL mode (vncs://) will be supported
-under \fB-ssl\fR unless you set mode to "force".
-.IP
-If mode is prefixed with "newdh:", then new Diffie
-Hellman parameters are generated for each connection
-(this can be time consuming: 1-60 secs; see \fB-dhparams\fR
-below for a faster way) rather than using the
-fixed values in the program. Using fixed, publicly
-known values is not known to be a security problem.
-This setting applies to VeNCrypt as well. See the
-description of "plain:" under \fB-vencrypt.\fR
-.IP
-Long example: \fB-anontls\fR newdh:plain:support
-.IP
-You *MUST* supply the \fB-ssl\fR option for ANONTLS to
-be active. The \fB-anontls\fR option only fine-tunes its
-operation.
-.PP
-\fB-sslonly\fR
-.IP
-Same as: "\fB-vencrypt\fR \fInever \fB-anontls\fR never\fR" i.e. it
-disables the VeNCrypt and ANONTLS encryption methods
-and only allows standard SSL tunneling. You must also
-supply the \fB-ssl\fR ... option (see below.)
-.PP
-\fB-dhparams\fR \fIfile\fR
-.IP
-For some operations a set of Diffie Hellman parameters
-(prime and generator) is needed. If so, use the
-parameters in \fIfile\fR. In particular, the VeNCrypt and
-ANONTLS anonymous DH mode need them. By default a
-fixed set is used. If you do not want to do that you
-can specify "newdh:" to the \fB-vencrypt\fR and \fB-anontls\fR
-options to generate a new set each session. If that
-is too slow for you, use \fB-dhparams\fR file to a set you
-created manually via "openssl dhparam \fB-out\fR file 1024"
-.PP
-\fB-nossl\fR
-.IP
-Disable the \fB-ssl\fR option (see below). Since \fB-ssl\fR is off
-by default \fB-nossl\fR would only be used on the commandline
-to unset any *earlier* \fB-ssl\fR option (or \fB-svc...)\fR
-.PP
-\fB-ssl\fR \fI[pem]\fR
-.IP
-Use the openssl library (www.openssl.org) to provide a
-built-in encrypted SSL/TLS tunnel between VNC viewers
-and x11vnc. This requires libssl support to be
-compiled into x11vnc at build time. If x11vnc is not
-built with libssl support it will exit immediately when
-\fB-ssl\fR is prescribed. See the \fB-stunnel\fR option below for
-an alternative.
-.IP
-The VNC Viewer-side needs to support SSL/TLS as well.
-See this URL and also the discussion below for
-ideas on how to enable SSL support for the viewer:
-http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-tun
-nel-viewers . x11vnc provides an SSL enabled Java
-viewer applet in the classes/ssl directory (-http or
-\fB-httpdir\fR options.) The SSVNC viewer package supports
-SSL tunnels too.
-.IP
-If the VNC Viewer supports VeNCrypt or ANONTLS (vino's
-encryption mode) they are also supported by the \fB-ssl\fR
-mode (see the \fB-vencrypt\fR and \fB-anontls\fR options for more
-info; use \fB-sslonly\fR to disable both of them.)
-.IP
-Use "\fB-ssl\fR \fI/path/to/mycert.pem\fR" to specify an SSL
-certificate file in PEM format to use to identify and
-provide a key for this server. See
-.IR openssl (1)
-for more
-info about PEMs and the \fB-sslGenCert\fR and "\fB-ssl\fR \fISAVE\fR"
-options below for how to create them.
-.IP
-The connecting VNC viewer SSL tunnel can (at its option)
-authenticate this server if it has the public key part
-of the certificate (or a common certificate authority,
-CA, is a more sophisticated way to verify this server's
-cert, see \fB-sslGenCA\fR below). This authentication is
-done to prevent Man-In-The-Middle attacks. Otherwise,
-if the VNC viewer simply accepts this server's key
-WITHOUT verification, the traffic is protected from
-passive sniffing on the network, but *NOT* from
-Man-In-The-Middle attacks. There are hacker tools
-like dsniff/webmitm and cain that implement SSL
-Man-In-The-Middle attacks.
-.IP
-If [pem] is empty or the string "SAVE" then the
-.IR openssl (1)
-command must be available to generate the
-certificate the first time. A self-signed certificate
-is generated (see \fB-sslGenCA\fR and \fB-sslGenCert\fR for use
-of a Certificate Authority.) It will be saved to the
-file ~/.vnc/certs/server.pem. On subsequent calls if
-that file already exists it will be used directly.
-.IP
-Use "SAVE_NOPROMPT" to avoid being prompted to
-protect the generated key with a passphrase. However in
-\fB-inetd\fR and \fB-bg\fR modes there will be no prompting for a
-passphrase in either case.
-.IP
-If [pem] is "SAVE_PROMPT" the server.pem certificate
-will be created based on your answers to its prompts for
-all info such as OrganizationalName, CommonName, etc.
-.IP
-Use "SAVE-<string>" and "SAVE_PROMPT-<string>"
-to refer to the file ~/.vnc/certs/server-<string>.pem
-instead (it will be generated if it does not already
-exist). E.g. "SAVE-charlie" will store to the file
-~/.vnc/certs/server-charlie.pem
-.IP
-Examples: x11vnc \fB-ssl\fR SAVE \fB-display\fR :0 ...
-x11vnc \fB-ssl\fR SAVE-someother \fB-display\fR :0 ...
-.IP
-If [pem] is "TMP" and the
-.IR openssl (1)
-utility
-command exists in PATH, then a temporary, self-signed
-certificate will be generated for this session. If
-.IR openssl (1)
-cannot be used to generate a temporary
-certificate x11vnc exits immediately. The temporary
-cert will be discarded when x11vnc exits.
-.IP
-If successful in using
-.IR openssl (1)
-to generate a
-temporary certificate in "SAVE" or "TMP" creation
-modes, the public part of it will be displayed to stderr
-(e.g. one could copy it to the client-side to provide
-authentication of the server to VNC viewers.)
-.IP
-NOTE: In "TMP" mode, unless you safely copy the
-public part of the temporary Cert to the viewer for
-authenticate *every time* (unlikely...), then only
-passive sniffing attacks are prevented and you are
-still open to Man-In-The-Middle attacks. This is
-why the default "SAVE" mode is preferred (and more
-sophisticated CA mode too). Only with saved keys AND
-the VNC viewer authenticating them (via the public
-certificate), are Man-In-The-Middle attacks prevented.
-.IP
-If [pem] is "ANON" then the Diffie-Hellman anonymous
-key exchange method is used. In this mode there
-are *no* SSL certificates and so it is not possible
-to authenticate either the VNC server or VNC client.
-Thus only passive network sniffing attacks are avoided:
-the "ANON" method is susceptible to Man-In-The-Middle
-attacks. "ANON" is not recommended; instead use
-a SSL PEM you created or the default "SAVE" method.
-.IP
-See \fB-ssldir\fR below to use a directory besides the
-default ~/.vnc/certs
-.IP
-If your x11vnc binary was not compiled with OpenSSL
-library support, use of the \fB-ssl\fR option will induce an
-immediate failure and exit. For such binaries, consider
-using the \fB-stunnel\fR option for SSL encrypted connections.
-.IP
-Misc Info: In temporary cert creation mode "TMP", set
-the env. var. X11VNC_SHOW_TMP_PEM=1 to have x11vnc print
-out the entire certificate, including the PRIVATE KEY
-part, to stderr. There are better ways to get/save this
-info. See "SAVE" above and "\fB-sslGenCert\fR" below.
-.PP
-\fB-ssltimeout\fR \fIn\fR
-.IP
-Set SSL read timeout to n seconds. In some situations
-(i.e. an iconified viewer in Windows) the viewer stops
-talking and the connection is dropped after the default
-timeout (25s for about the first minute, 43200s later).
-Set to zero to poll forever. Set to a negative value
-to use the builtin setting.
-.IP
-Note that this value does NOT apply to the *initial* ssl
-init connection. The default timeout for that is 20sec.
-Use \fB-env\fR SSL_INIT_TIMEOUT=n to modify it.
-.PP
-\fB-sslnofail\fR
-.IP
-Exit at the first SSL connection failure. Useful when
-scripting SSL connections (e.g. x11vnc is started via
-ssh) and you do not want x11vnc waiting around for more
-connections, tying up ports, etc.
-.PP
-\fB-ssldir\fR \fIdir\fR
-.IP
-Use \fIdir\fR as an alternate ssl certificate and key
-management toplevel directory. The default is
-~/.vnc/certs
-.IP
-This directory is used to store server and other
-certificates and keys and also other materials. E.g. in
-the simplest case, "\fB-ssl\fR \fISAVE\fR" will store the x11vnc
-server cert in dir/server.pem
-.IP
-Use of alternate directories via \fB-ssldir\fR allows you to
-manage multiple VNC Certificate Authority (CA) keys.
-Another use is if ~/.vnc/cert is on an NFS share you
-might want your certificates and keys to be on a local
-filesystem to prevent network snooping (for example
-\fB-ssldir\fR /var/lib/x11vnc-certs).
-.IP
-\fB-ssldir\fR affects nearly all of the other \fB-ssl*\fR options,
-e.g. \fB-ssl\fR SAVE, \fB-sslGenCert,\fR etc..
-.PP
-\fB-sslverify\fR \fIpath\fR
-.IP
-For either of the \fB-ssl\fR or \fB-stunnel\fR modes, use \fIpath\fR
-to provide certificates to authenticate incoming VNC
-*Client* connections (normally only the server is
-authenticated in SSL.) This can be used as a method
-to replace standard password authentication of clients.
-.IP
-If \fIpath\fR is a directory it contains the client (or CA)
-certificates in separate files. If path is a file,
-it contains one or more certificates. See special tokens
-below. These correspond to the "CApath = dir" and
-"CAfile = file" stunnel options. See the
-.IR stunnel (8)
-manpage for details.
-.IP
-Examples:
-x11vnc \fB-ssl\fR \fB-sslverify\fR ~/my.crt
-x11vnc \fB-ssl\fR \fB-sslverify\fR ~/my_pem_dir/
-.IP
-Note that if path is a directory, it must contain
-the certs in separate files named like <HASH>.0, where
-the value of <HASH> is found by running the command
-"openssl x509 \fB-hash\fR \fB-noout\fR \fB-in\fR file.crt". Evidently
-one uses <HASH>.1 if there is a collision...
-.IP
-The the key-management utility "\fB-sslCertInfo\fR \fIHASHON\fR"
-and "\fB-sslCertInfo\fR \fIHASHOFF\fR" will create/delete these
-hashes for you automatically (via symlink) in the HASH
-subdirs it manages. Then you can point \fB-sslverify\fR to
-the HASH subdir.
-.IP
-Special tokens: in \fB-ssl\fR mode, if \fIpath\fR is not a file or
-a directory, it is taken as a comma separated list of
-tokens that are interpreted as follows:
-.IP
-If a token is "CA" that means load the CA/cacert.pem
-file from the ssl directory. If a token is "clients"
-then all the files clients/*.crt in the ssl directory
-are loaded. Otherwise the file clients/token.crt
-is attempted to be loaded. As a kludge, use a token
-like ../server-foo to load a server cert if you find
-that necessary.
-.IP
-Use \fB-ssldir\fR to use a directory different from the
-~/.vnc/certs default.
-.IP
-Note that if the "CA" cert is loaded you do not need
-to load any of the certs that have been signed by it.
-You will need to load any additional self-signed certs
-however.
-.IP
-Examples:
-x11vnc \fB-ssl\fR \fB-sslverify\fR CA
-x11vnc \fB-ssl\fR \fB-sslverify\fR self:fred,self:jim
-x11vnc \fB-ssl\fR \fB-sslverify\fR CA,clients
-.IP
-Usually "\fB-sslverify\fR \fICA\fR" is the most effective.
-See the \fB-sslGenCA\fR and \fB-sslGenCert\fR options below for
-how to set up and manage the CA framework.
-.IP
-NOTE: the following utilities, \fB-sslGenCA,\fR \fB-sslGenCert,\fR
-\fB-sslEncKey,\fR \fB-sslCertInfo,\fR and \fB-sslCRL\fR are provided for
-completeness, but for casual usage they are overkill.
-.IP
-They provide VNC Certificate Authority (CA) key creation
-and server / client key generation and signing. So they
-provide a basic Public Key management framework for
-VNC-ing with x11vnc. (note that they require
-.IR openssl (1)
-be installed on the system)
-.IP
-However, the simplest usage mode, "\fB-ssl\fR \fITMP\fR" (where
-x11vnc automatically generates its own, self-signed,
-temporary key and the VNC viewers always accept it,
-e.g. accepting via a dialog box) is probably safe enough
-for most scenarios. CA management is not needed.
-.IP
-To protect against Man-In-The-Middle attacks the "TMP"
-mode can be improved by using "\fB-ssl\fR \fISAVE\fR" (same as
-"\fB-ssl\fR", i.e. the default) to have x11vnc create a
-longer term self-signed certificate, and then (safely)
-copy the corresponding public key cert to the desired
-client machines (care must be taken the private key part
-is not stolen; you will be prompted for a passphrase).
-.IP
-So keep in mind no CA key creation or management
-(-sslGenCA and \fB-sslGenCert)\fR is needed for either of
-the above two common usage modes.
-.IP
-One might want to use \fB-sslGenCA\fR and \fB-sslGenCert\fR
-if you had a large number of VNC client and server
-workstations. That way the administrator could generate
-a single CA key with \fB-sslGenCA\fR and distribute its
-certificate part to all of the workstations.
-.IP
-Next, he could create signed VNC server keys
-(-sslGenCert server ...) for each workstation or user
-that then x11vnc would use to authenticate itself to
-any VNC client that has the CA cert.
-.IP
-Optionally, the admin could also make it so the
-VNC clients themselves are authenticated to x11vnc
-(-sslGenCert client ...) For this \fB-sslverify\fR would be
-pointed to the CA cert (and/or self-signed certs).
-.IP
-x11vnc will be able to use all of these cert and
-key files. On the VNC client side, they will need to
-be "imported" somehow. Web browsers have "Manage
-Certificates" actions as does the Java applet plugin
-Control Panel. stunnel can also use these files (see
-the ss_vncviewer example script in the FAQ and SSVNC.)
-.PP
-\fB-sslCRL\fR \fIpath\fR
-.IP
-Set the Certificate Revocation Lists (CRL) to \fIpath\fR.
-This setting applies for both \fB-ssl\fR and \fB-stunnel\fR modes.
-.IP
-If path is a file, the file contains one or more CRLs
-in PEM format. If path is a directory, it contains
-hash named files of CRLs in the usual OpenSSL manner.
-See the OpenSSL and
-.IR stunnel (8)
-documentation for
-more info.
-.IP
-This option only applies if \fB-sslverify\fR has been
-supplied: it checks for revocation along the
-certificate chain used to verify the VNC client.
-The \fB-sslCRL\fR setting will be ignored when \fB-sslverify\fR is
-not specified.
-.IP
-Note that if a CRL's expiration date has passed, all
-SSL connections will fail regardless of if they are
-related to the subject of the CRL or not.
-.IP
-Only rarely will one's x11vnc \fB-ssl\fR infrastructure be so
-large that this option would be useful (since normally
-maintaining the contents of the \fB-sslverify\fR file or
-directory should be enough.) However, when using
-x11vnc with a Certificate Authority (see \fB-sslGenCA)\fR
-to authenticate Clients via SSL/TLS, the \fB-sslCRL\fR option
-can be useful to revoke users' certs whose private SSL
-keys were lost or stolen (e.g. laptop.) This way a new
-CA cert+key does not need to be created and new signed
-client keys generated and distributed to all users.
-.IP
-To create a CRL file with revoked certificates the
-commands 'openssl ca \fB-revoke\fR ...' and 'openssl ca
-\fB-gencrl\fR ...' are useful. (Run them in ~/.vnc/certs)
-.PP
-\fB-sslGenCA\fR \fI[dir]\fR
-.IP
-Generate your own Certificate Authority private key,
-certificate, and other files in directory [dir].
-x11vnc then exits.
-.IP
-If [dir] is not supplied, a \fB-ssldir\fR setting is used,
-or otherwise ~/.vnc/certs is used.
-.IP
-This command also creates directories where server and
-client certs and keys will be stored. The
-.IR openssl (1)
-program must be installed on the system and available
-in PATH.
-.IP
-After the CA files and directories are created the
-x11vnc command exits; the VNC server is not run.
-.IP
-You will be prompted for information to put into the CA
-certificate. The info does not have to be accurate just
-as long as clients accept the cert for VNC connections.
-You will also need to supply a passphrase of at least
-4 characters for the CA private key.
-.IP
-Once you have generated the CA you can distribute
-its certificate part, [dir]/CA/cacert.pem, to other
-workstations where VNC viewers will be run. One will
-need to "import" this certificate in the applications,
-e.g. Web browser, Java applet plugin, stunnel, etc.
-Next, you can create and sign keys using the CA with
-the \fB-sslGenCert\fR option below.
-.IP
-Examples:
-x11vnc \fB-sslGenCA\fR
-x11vnc \fB-sslGenCA\fR ~/myCAdir
-x11vnc \fB-ssldir\fR ~/myCAdir \fB-sslGenCA\fR
-.IP
-(the last two lines are equivalent)
-.PP
-\fB-sslGenCert\fR \fItype\fR \fIname\fR
-.IP
-Generate a VNC server or client certificate and private
-key pair signed by the CA created previously with
-\fB-sslGenCA.\fR The
-.IR openssl (1)
-program must be installed
-on the system and available in PATH.
-.IP
-After the Certificate is generated x11vnc exits; the
-VNC server is not run.
-.IP
-The type of key to be generated is the string \fItype\fR.
-It is either "server" (i.e. for use by x11vnc) or
-"client" (for a VNC viewer). Note that typically
-only "server" is used: the VNC clients authenticate
-themselves by a non-public-key method (e.g. VNC or
-unix password). \fItype\fR is required.
-.IP
-An arbitrary default name you want to associate with
-the key is supplied by the \fIname\fR string. You can
-change it at the various prompts when creating the key.
-\fIname\fR is optional.
-.IP
-If name is left blank for clients keys then "nobody"
-is used. If left blank for server keys, then the
-primary server key: "server.pem" is created (this
-is the saved one referenced by "\fB-ssl\fR \fISAVE\fR" when the
-server is started)
-.IP
-If \fIname\fR begins with the string "self:" then
-a self-signed certificate is created instead of one
-signed by your CA key.
-.IP
-If \fIname\fR begins with the string "req:" then only a
-key (.key) and a certificate signing *request* (.req)
-are generated. You can then send the .req file to
-an external CA (even a professional one, e.g. Thawte)
-and then combine the .key and the received cert into
-the .pem file with the same basename.
-.IP
-The distinction between "server" and "client" is
-simply the choice of output filenames and sub-directory.
-This makes it so the \fB-ssl\fR SAVE-name option can easily
-pick up the x11vnc PEM file this option generates.
-And similarly makes it easy for the \fB-sslverify\fR option
-to pick up your client certs.
-.IP
-There is nothing special about the filename or directory
-location of either the "server" and "client" certs.
-You can rename the files or move them to wherever
-you like.
-.IP
-Precede this option with \fB-ssldir\fR [dir] to use a
-directory other than the default ~/.vnc/certs You will
-need to run \fB-sslGenCA\fR on that directory first before
-doing any \fB-sslGenCert\fR key creation.
-.IP
-Note you cannot recreate a cert with exactly the same
-distiguished name (DN) as an existing one. To do so,
-you will need to edit the [dir]/CA/index.txt file to
-delete the line.
-.IP
-Similar to \fB-sslGenCA,\fR you will be prompted to fill
-in some information that will be recorded in the
-certificate when it is created.
-.IP
-Tip: if you know the fully-qualified hostname other
-people will be connecting to, you can use that as the
-CommonName "CN" to avoid some applications (e.g. web
-browsers and java plugin) complaining that it does not
-match the hostname.
-.IP
-You will also need to supply the CA private key
-passphrase to unlock the private key created from
-\fB-sslGenCA.\fR This private key is used to sign the server
-or client certificate.
-.IP
-The "server" certs can be used by x11vnc directly by
-pointing to them via the \fB-ssl\fR [pem] option. The default
-file will be ~/.vnc/certs/server.pem. This one would
-be used by simply typing \fB-ssl\fR SAVE. The pem file
-contains both the certificate and the private key.
-server.crt file contains the cert only.
-.IP
-The "client" cert + private key file will need
-to be copied and imported into the VNC viewer
-side applications (Web browser, Java plugin,
-stunnel, etc.) Once that is done you can delete the
-"client" private key file on this machine since
-it is only needed on the VNC viewer side. The,
-e.g. ~/.vnc/certs/clients/<name>.pem contains both
-the cert and private key. The <name>.crt contains the
-certificate only.
-.IP
-NOTE: It is very important to know one should
-generate new keys with a passphrase. Otherwise if an
-untrusted user steals the key file he could use it to
-masquerade as the x11vnc server (or VNC viewer client).
-You will be prompted whether to encrypt the key with
-a passphrase or not. It is recommended that you do.
-One inconvenience to a passphrase is that it must
-be typed in EVERY time x11vnc or the client app is
-started up.
-.IP
-Examples:
-.IP
-x11vnc \fB-sslGenCert\fR server
-x11vnc \fB-ssl\fR SAVE \fB-display\fR :0 ...
-.IP
-and then on viewer using ss_vncviewer stunnel wrapper
-(see the FAQ):
-ss_vncviewer \fB-verify\fR ./cacert.crt hostname:0
-.IP
-(this assumes the cacert.crt cert from \fB-sslGenCA\fR
-was safely copied to the VNC viewer machine where
-ss_vncviewer is run)
-.IP
-Example using a name:
-.IP
-x11vnc \fB-sslGenCert\fR server charlie
-x11vnc \fB-ssl\fR SAVE-charlie \fB-display\fR :0 ...
-.IP
-Example for a client certificate (rarely used):
-.IP
-x11vnc \fB-sslGenCert\fR client roger
-scp ~/.vnc/certs/clients/roger.pem somehost:.
-rm ~/.vnc/certs/clients/roger.pem
-.IP
-x11vnc is then started with the option \fB-sslverify\fR
-~/.vnc/certs/clients/roger.crt (or simply \fB-sslverify\fR
-roger), and on the viewer user on somehost could do
-for example:
-.IP
-ss_vncviewer \fB-mycert\fR ./roger.pem hostname:0
-.IP
-If you set the env. var REQ_ARGS='...' it will be
-passed to openssl
-.IR req (1).
-A common use would be
-REQ_ARGS='-days 1095' to bump up the expiration date
-(3 years in this case).
-.PP
-\fB-sslEncKey\fR \fIpem\fR
-.IP
-Utility to encrypt an existing PEM file with a
-passphrase you supply when prompted. For that key to be
-used (e.g. by x11vnc) the passphrase must be supplied
-each time.
-.IP
-The "SAVE" notation described under \fB-ssl\fR applies as
-well. (precede this option with \fB-ssldir\fR [dir] to refer
-a directory besides the default ~/.vnc/certs)
-.IP
-The
-.IR openssl (1)
-program must be installed on the system
-and available in PATH. After the Key file is encrypted
-the x11vnc command exits; the VNC server is not run.
-.IP
-Examples:
-x11vnc \fB-sslEncKey\fR /path/to/foo.pem
-x11vnc \fB-sslEncKey\fR SAVE
-x11vnc \fB-sslEncKey\fR SAVE-charlie
-.PP
-\fB-sslCertInfo\fR \fIpem\fR
-.IP
-Prints out information about an existing PEM file.
-In addition the public certificate is also printed.
-The
-.IR openssl (1)
-program must be in PATH. Basically the
-command "openssl x509 \fB-text"\fR is run on the pem.
-.IP
-After the info is printed the x11vnc command exits;
-the VNC server is not run.
-.IP
-The "SAVE" notation described under \fB-ssl\fR applies
-as well.
-.IP
-Using "LIST" will give a list of all certs being
-managed (in the ~/.vnc/certs dir, use \fB-ssldir\fR to refer
-to another dir). "ALL" will print out the info for
-every managed key (this can be very long). Giving a
-client or server cert shortname will also try a lookup
-(e.g. \fB-sslCertInfo\fR charlie). Use "LISTL" or "LL"
-for a long (ls \fB-l\fR style) listing.
-.IP
-Using "HASHON" will create subdirs [dir]/HASH and
-[dir]/HASH with OpenSSL hash filenames (e.g. 0d5fbbf1.0)
-symlinks pointing up to the corresponding *.crt file.
-([dir] is ~/.vnc/certs or one given by \fB-ssldir.)\fR
-This is a useful way for other OpenSSL applications
-(e.g. stunnel) to access all of the certs without
-having to concatenate them. x11vnc will not use them
-unless you specifically reference them. "HASHOFF"
-removes these HASH subdirs.
-.IP
-The LIST, LISTL, LL, ALL, HASHON, HASHOFF words can
-also be lowercase, e.g. "list".
-.PP
-\fB-sslDelCert\fR \fIpem\fR
-.IP
-Prompts you to delete all .crt .pem .key .req files
-associated with [pem]. x11vnc then exits. "SAVE"
-and lookups as in \fB-sslCertInfo\fR apply as well.
-.PP
-\fB-sslScripts\fR
-.IP
-Prints out both the 'genCA' and 'genCert' x11vnc
-openssl wrapper scripts for you to examine, modify, etc.
-The scripts are printed to stdout and then the x11vnc
-program exits.
-.PP
-\fB-stunnel\fR \fI[pem]\fR
-.IP
-Use the
-.IR stunnel (8)
-(stunnel.mirt.net) to provide an
-encrypted SSL tunnel between viewers and x11vnc.
-.IP
-This external tunnel method was implemented prior to the
-integrated \fB-ssl\fR encryption described above. It still
-works well and avoids the requirement of linking with
-the OpenSSL libraries. This mode requires stunnel
-to be installed on the system and available via PATH
-(n.b. stunnel is often installed in sbin directories).
-Version 4.x of stunnel is assumed (but see \fB-stunnel3\fR
-below.)
-.IP
-[pem] is optional, use "\fB-stunnel\fR \fI/path/to/stunnel.pem\fR"
-to specify a PEM certificate file to pass to stunnel.
-See the \fB-ssl\fR option for more info on certificate files.
-.IP
-Whether or not your stunnel has its own certificate
-depends on your stunnel configuration; stunnel often
-generates one at install time. See your stunnel
-documentation for details. In any event, if you want to
-use this certificate you must supply the full path to it
-as [pem]. Note: the file may only be readable by root.
-.IP
-[pem] may also be the special strings "TMP", "SAVE",
-and "SAVE..." as described in the \fB-ssl\fR option.
-If [pem] is not supplied, "SAVE" is assumed.
-.IP
-Note that the VeNCrypt, ANONTLS, and "ANON" modes
-are not supported in \fB-stunnel\fR mode.
-.IP
-stunnel is started up as a child process of x11vnc and
-any SSL connections stunnel receives are decrypted and
-sent to x11vnc over a local socket. The strings
-"The SSL VNC desktop is ..." and "SSLPORT=..."
-are printed out at startup to indicate this.
-.IP
-The \fB-localhost\fR option is enforced by default to avoid
-people routing around the SSL channel. Use \fB-env\fR
-STUNNEL_DISABLE_LOCALHOST=1 to disable this security
-requirement.
-.IP
-Set \fB-env\fR STUNNEL_DEBUG=1 for more debugging printout.
-.IP
-Set \fB-env\fR STUNNEL_PROG=xxx to the full path of stunnel
-program you want to be used (e.g. /usr/bin/stunnel4).
-.IP
-Set \fB-env\fR STUNNEL_LISTEN=xxx to the address of the
-network interface to listen on (the default is to listen
-on all interfaces), e.g. STUNNEL_LISTEN=192.168.1.100.
-.IP
-A simple way to add IPv6 support is STUNNEL_LISTEN=::
-.IP
-Your VNC viewer will also need to be able to connect
-via SSL. Unfortunately not too many do this. See the
-information about SSL viewers under the \fB-ssl\fR option.
-The x11vnc project's SSVNC is an option.
-.IP
-Also, in the x11vnc distribution, patched TightVNC
-and UltraVNC Java applet jar files are provided in
-the classes/ssl directory that do SSL connections.
-Enable serving them with the \fB-http,\fR \fB-http_ssl,\fR or
-\fB-httpdir\fR (see the option descriptions for more info.)
-.IP
-Note that for the Java viewer applet usage the
-"?PORT=xxxx" in the various URLs printed at startup
-will need to be supplied to the web browser to connect
-properly.
-.IP
-Currently the automatic "single port" HTTPS mode of
-\fB-ssl\fR is not fully supported in \fB-stunnel\fR mode. However,
-it can be emulated via:
-.IP
-% x11vnc \fB-stunnel\fR \fB-http_ssl\fR \fB-http_oneport\fR ...
-.IP
-In general, it is also not too difficult to set up
-an stunnel or other SSL tunnel on the viewer side.
-A simple example on Unix using stunnel 3.x is:
-.IP
-% stunnel \fB-c\fR \fB-d\fR localhost:5901 \fB-r\fR remotehost:5900
-% vncviewer localhost:1
-.IP
-For Windows, stunnel has been ported to it and there
-are probably other such tools available. See the FAQ
-and SSVNC for more examples.
-.PP
-\fB-stunnel3\fR \fI[pem]\fR
-.IP
-Use version 3.x stunnel command line syntax instead of
-version 4.x. The \fB-http/-httpdir\fR Java applet serving
-is currently not available in this mode.
-.PP
-\fB-enc\fR \fIcipher:keyfile\fR
-.IP
-Use symmetric encryption with cipher "cipher"
-and secret key data in "keyfile". If keyfile is
-pw=<string> then "string" is used as the key data.
-.IP
-NOTE: It is recommended that you use SSL via the \fB-ssl\fR
-option instead of this option because SSL is well
-understood and takes great care to establish unique
-session keys and is more compatible with other software.
-Use this option if you do not want to deal with SSL
-certificates for authentication and do not want to
-use SSH but want some encryption for your VNC session.
-Or if you must interface with a symmetric key tunnel
-that you do not have control over.
-.IP
-Note that this mode will NOT work with the UltraVNC DSM
-plugins because they alter the RFB protocol in addition
-to tunnelling with the symmetric cipher (an unfortunate
-choice of implementation...)
-.IP
-cipher can be one of: arc4, aesv2, aes-cfb, blowfish,
-aes256, or 3des. See the OpenSSL documentation for
-more info. The keysize is 128 bits (except for aes256).
-Here is one way to make a keyfile with that many bits:
-.IP
-dd if=/dev/random of=./my.key bs=16 count=1
-.IP
-you will need to securely share this key with the other
-side of the VNC connection (See SSVNC for examples).
-.IP
-Example: \fB-enc\fR blowfish:./my.key
-Example: \fB-enc\fR blowfish:pw=swordfish
-.IP
-By default 16 bytes of random salt followed by 16 bytes
-of random initialization vector are sent at the very
-beginning of the stream. The other side must read these
-and initialize their cipher with them. These values
-make the session key unique (without them the security
-is minimal). Similarly, the other side must send us
-its random salt and IV with those same lengths.
-.IP
-The salt and key data are combined to create a session
-key using an md5 hash as described in
-.IR EVP_BytesToKey (3).
-.IP
-The exact call is: EVP_BytesToKey(Cipher, EVP_md5(),
-salt, keydata, len, 1, keystr, NULL); where salt is
-the random data as described above, and keydata is the
-shared secret key data. keystr is the resulting session
-key. The cipher is then seeded with keystr and uses
-the random initialization vector as its first block.
-.IP
-To modify the amount of random salt and initialization
-vector use cipher@n,m where n is the salt length and
-m the initialization vector length. E.g.
-.IP
-\fB-enc\fR aes-cfb@8,16:./my.key
-.IP
-It is not a good idea to set either one to zero,
-although you may be forced to if the other side of the
-tunnel is not under your control.
-.IP
-To skip the salt and EVP_BytesToKey MD5 entirely (no
-hashing is done: the keydata is directly inserted into
-the cipher) specify "-1" for the salt, e.g.
-.IP
-\fB-enc\fR blowfish@-1,16:./my.key
-.IP
-The message digest can also be changed to something
-besides the default MD5. Use cipher@md+n,m where "md"
-can be one of sha, sha1, md5, or ripe. For example:
-.IP
-\fB-enc\fR arc4@sha+8,16:./my.key
-.IP
-The SSVNC vnc viewer project supplies a symmetric
-encryption tool named "ultravnc_dsm_helper" that can
-be used on the viewer side. For example:
-.IP
-ssvncviewer exec='ultravnc_dsm_helper arc4 my.key 0 h:p'
-.IP
-where h:p is the hostname and port of the x11vnc server.
-ultravnc_dsm_helper may also be used standalone to
-provide a symmetric encryption tunnel for any viewer
-or server (VNC or otherwise.) The cipher (1st arg)
-is basically the same syntax as we use above.
-.IP
-Also see the 'Non-Ultra DSM' SSVNC option for the
-\'UltraVNC DSM Encryption Plugin' advanced option.
-.IP
-For both ways of using the viewer, you can specify the
-salt,ivec sizes (in GUI or, e.g. arc4@8,16).
-.PP
-\fB-https\fR \fI[port]\fR
-.IP
-Use a special, separate HTTPS port (-ssl and
-\fB-stunnel\fR modes only) for HTTPS Java viewer applet
-downloading. I.e. not 5900 and not 5800 (the defaults.)
-.IP
-BACKGROUND: In \fB-ssl\fR mode, it turns out you can use the
-single VNC port (e.g. 5900) for both VNC and HTTPS
-connections. (HTTPS is used to retrieve a SSL-aware
-VncViewer.jar applet that is provided with x11vnc).
-Since both use SSL the implementation was extended to
-detect if HTTP traffic (i.e. GET) is taking place and
-handle it accordingly. The URL would be, e.g.:
-.IP
-https://mymachine.org:5900/
-.IP
-This is convenient for firewalls, etc, because only one
-port needs to be allowed in. However, this heuristic
-adds a few seconds delay to each connection and can be
-unreliable (especially if the user takes much time to
-ponder the Certificate dialogs in his browser, Java VM,
-or VNC Viewer applet. That's right 3 separate "Are
-you sure you want to connect?" dialogs!)
-.IP
-END OF BACKGROUND.
-.IP
-USAGE: So use the \fB-https\fR option to provide a separate,
-more reliable HTTPS port that x11vnc will listen on. If
-[port] is not provided (or is 0), one is autoselected.
-The URL to use is printed out at startup.
-.IP
-The SSL Java applet directory is specified via the
-\fB-httpdir\fR option. If not supplied, \fB-https\fR will try
-to guess the directory as though the \fB-http\fR option
-was supplied.
-.PP
-\fB-httpsredir\fR \fI[port]\fR
-.IP
-In \fB-ssl\fR mode with the Java applet retrieved via HTTPS,
-when the HTML file containing applet parameters
-('index.vnc' or 'proxy.vnc') is sent do NOT set the
-applet PORT parameter to the actual VNC port but set it
-to "port" instead. If "port" is not supplied, then
-the port number is guessed from the Host: HTTP header.
-.IP
-This is useful when an incoming TCP connection
-redirection is performed by a router/gateway/firewall
-from one port to an internal machine where x11vnc is
-listening on a different port. The Java applet needs to
-connect to the firewall/router port, not the VNC port
-on the internal workstation. For example, one could
-redir from mygateway.com:443 to workstation:5900.
-.IP
-This spares the user from having to type in
-https://mygateway.com/?PORT=443 into their web
-browser. Note that port 443 is the default https port;
-other ports must be explicitly indicated, for example:
-https://mygateway.com:8000/?PORT=8000. To avoid having
-to include the PORT= in the browser URL, simply supply
-"\fB-httpsredir\fR" to x11vnc.
-.IP
-This option does not work in \fB-stunnel\fR mode.
-.IP
-More tricks: set the env var X11VNC_EXTRA_HTTPS_PARAMS
-to be extra URL parameters to use. This way you do
-not need to specify extra PARAMS in the index.vnc file.
-E.g. x11vnc \fB-env\fR X11VNC_EXTRA_HTTPS_PARAMS='?GET=1' ...
-.IP
-If you do not want to expose the non-SSL HTTP port to
-the network (i.e. you just want the single VNC/HTTPS
-port, e.g. 5900, open for connections) then specify the
-option \fB-env\fR X11VNC_HTTP_LISTEN_LOCALHOST=1 This way
-the connection to the LibVNCServer httpd server will
-only be available on localhost (note that in \fB-ssl\fR mode,
-HTTPS requests are redirected from SSL to the non-SSL
-LibVNCServer HTTP server.)
-.PP
-\fB-http_oneport\fR
-.IP
-For UN-encrypted connections mode (i.e. no \fB-ssl,\fR
-\fB-stunnel,\fR or \fB-enc\fR options), allow the Java VNC Viewer
-applet to be downloaded thru the VNC port via HTTP.
-.IP
-That is to say, you can use a single port for Java
-applet viewer connections by using a URL in your web
-browser like this, for example:
-.IP
-http://hostname:5900
-.IP
-The regular, two-port mode, URL http://hostname:5800
-will continue to work as well.
-.IP
-As mentioned above, this mode will NOT work with
-the \fB-ssl,\fR \fB-stunnel,\fR or \fB-enc\fR encryption options.
-Note that is it equivalent to '-enc none' (i.e. it
-uses the same detection mechanism as for HTTPS, but
-with no encryption.)
-.IP
-HTTPS single-port is on by default in \fB-ssl\fR encrypted
-mode (and \fB-enc\fR too), so you only need \fB-http_oneport\fR
-when doing non-SSL encrypted connections.
-.IP
-This mode could also be useful for SSH tunnels since
-it means only one port needs to be redirected.
-.IP
-The \fB-httpsredir\fR option may also be useful for this
-mode when using an SSH tunnel as well as for router
-port redirections.
-.IP
-Note that the \fB-env\fR X11VNC_HTTP_LISTEN_LOCALHOST=1
-option described above under \fB-httpsredir\fR applies for
-the LibVNCServer httpd server in all cases (ssl or not.)
-.PP
-\fB-ssh\fR \fIuser@host:disp\fR
-.IP
-Create a remote listening port on machine "host"
-via a SSH tunnel using the \fB-R\fR rport:localhost:lport
-method. lport will be the local x11vnc listening port,
-so a connection to rport (5900+disp) on "host"
-will reach x11vnc. E.g. fred@snoopy.com:0
-.IP
-This could be useful if a firewall/router prevents
-incoming connections to the x11vnc machine, but
-the ssh machine "host" can be reached by the VNC
-viewer. "user@" is not needed unless the remote unix
-username differs from the current one.
-.IP
-By default the remote sshd is usually configured to
-listen only on localhost for rport, so the viewer may
-need to ssh \fB-L\fR redir to "host" as well (See SSVNC to
-automate this). The sshd setting GatewayPorts enables
-listening on all interfaces for rport; viewers can
-reach it more easily.
-.IP
-"disp" is the VNC display for the remote SSH side,
-e.g. 0 corresponds to port 5900, etc. If disp is
-greater than 200 the value is used as the port. Use a
-negative value to force a low port, e.g. host:-80 will
-use port 80.
-.IP
-If ssh-agent is not active, then the ssh password needs
-to be entered in the terminal where x11vnc is running.
-.IP
-By default the remote ssh will issue a 'sleep 300' to
-wait for the incoming connection for 5 mins. To modify
-this use user@host:disp+secs.
-.IP
-If the remote SSH server is on a non-standard port
-(i.e. not 22) use user@host:port:disp+secs.
-.IP
-Note that the ssh process MAY NOT be killed when
-x11vnc exits. It tries by looking at
-.IR ps (1)
-output.
-.PP
-\fB-usepw\fR
-.IP
-If no other password method was supplied on the command
-line, first look for ~/.vnc/passwd and if found use it
-with \fB-rfbauth;\fR next, look for ~/.vnc/passwdfile and
-use it with \fB-passwdfile;\fR otherwise, prompt the user
-for a password to create ~/.vnc/passwd and use it with
-the \fB-rfbauth\fR option. If none of these succeed x11vnc
-exits immediately.
-.PP
-\fB-storepasswd\fR \fIpass\fR \fIfile\fR
-.IP
-Store password \fIpass\fR as the VNC password in the
-file \fIfile\fR. Once the password is stored the
-program exits. Use the password via "\fB-rfbauth\fR \fIfile\fR"
-.IP
-If called with no arguments, "x11vnc \fB-storepasswd",\fR
-the user is prompted for a password and it is stored
-in the file ~/.vnc/passwd. Called with one argument,
-that will be the file to store the prompted password in.
-.PP
-\fB-nopw\fR
-.IP
-Disable the big warning message when you use x11vnc
-without some sort of password.
-.PP
-\fB-accept\fR \fIstring\fR
-.IP
-Run a command (possibly to prompt the user at the
-X11 display) to decide whether an incoming client
-should be allowed to connect or not. \fIstring\fR is
-an external command run via
-.IR system (3)
-or some special
-cases described below. Be sure to quote \fIstring\fR
-if it contains spaces, shell characters, etc. If the
-external command returns 0 the client is accepted,
-otherwise the client is rejected. See below for an
-extension to accept a client view-only.
-.IP
-If x11vnc is running as root (say from
-.IR inetd (8)
-or from
-display managers
-.IR xdm (1)
-,
-.IR gdm (1)
-, etc), think about the
-security implications carefully before supplying this
-option (likewise for the \fB-gone\fR option).
-.IP
-Environment: The RFB_CLIENT_IP environment variable will
-be set to the incoming client IP number and the port
-in RFB_CLIENT_PORT (or -1 if unavailable). Similarly,
-RFB_SERVER_IP and RFB_SERVER_PORT (the x11vnc side
-of the connection), are set to allow identification
-of the tcp virtual circuit. The x11vnc process
-id will be in RFB_X11VNC_PID, a client id number in
-RFB_CLIENT_ID, and the number of other connected clients
-in RFB_CLIENT_COUNT. RFB_MODE will be "accept".
-RFB_STATE will be PROTOCOL_VERSION, SECURITY_TYPE,
-AUTHENTICATION, INITIALISATION, NORMAL, or UNKNOWN
-indicating up to which state the client has achieved.
-RFB_LOGIN_VIEWONLY will be 0, 1, or -1 (unknown).
-RFB_USERNAME, RFB_LOGIN_TIME, and RFB_CURRENT_TIME may
-also be set.
-.IP
-If \fIstring\fR is "popup" then a builtin popup window
-is used. The popup will time out after 120 seconds,
-use "popup:N" to modify the timeout to N seconds
-(use 0 for no timeout).
-.IP
-In the case of "popup" and when the \fB-unixpw\fR option
-is specified, then a *second* window will be popped
-up after the user successfully logs in via his UNIX
-password. This time the user will be identified as
-UNIX:username@hostname, the "UNIX:" prefix indicates
-which user the viewer logged as via \fB-unixpw.\fR The first
-popup is only for whether to allow him to even *try*
-to login via unix password.
-.IP
-If \fIstring\fR is "xmessage" then an
-.IR xmessage (1)
-invocation is used for the command. xmessage must be
-installed on the machine for this to work.
-.IP
-Both "popup" and "xmessage" will present an option
-for accepting the client "View-Only" (the client
-can only watch). This option will not be presented if
-\fB-viewonly\fR has been specified, in which case the entire
-display is view only.
-.IP
-If the user supplied command is prefixed with something
-like "yes:0,no:*,view:3 mycommand ..." then this
-associates the numerical command return code with
-the actions: accept, reject, and accept-view-only,
-respectively. Use "*" instead of a number to indicate
-the default action (in case the command returns an
-unexpected value). E.g. "no:*" is a good choice.
-.IP
-Note that x11vnc blocks while the external command
-or popup is running (other clients may see no updates
-during this period). So a person sitting a the physical
-display is needed to respond to an popup prompt. (use
-a 2nd x11vnc if you lock yourself out).
-.IP
-More \fB-accept\fR tricks: use "popupmouse" to only allow
-mouse clicks in the builtin popup to be recognized.
-Similarly use "popupkey" to only recognize
-keystroke responses. These are to help avoid the
-user accidentally accepting a client by typing or
-clicking. All 3 of the popup keywords can be followed
-by +N+M to supply a position for the popup window.
-The default is to center the popup window.
-.PP
-\fB-afteraccept\fR \fIstring\fR
-.IP
-As \fB-accept,\fR except to run a user supplied command after
-a client has been accepted and authenticated. RFB_MODE
-will be set to "afteraccept" and the other RFB_*
-variables are as in \fB-accept.\fR Unlike \fB-accept,\fR the
-command return code is not interpreted by x11vnc.
-Example: \fB-afteraccept\fR 'killall xlock &'
-.PP
-\fB-gone\fR \fIstring\fR
-.IP
-As \fB-accept,\fR except to run a user supplied command when
-a client goes away (disconnects). RFB_MODE will be
-set to "gone" and the other RFB_* variables are as
-in \fB-accept.\fR The "popup" actions apply as well.
-Unlike \fB-accept,\fR the command return code is not
-interpreted by x11vnc. Example: \fB-gone\fR 'xlock &'
-.PP
-\fB-users\fR \fIlist\fR
-.IP
-If x11vnc is started as root (say from
-.IR inetd (8)
-or from
-display managers
-.IR xdm (1)
-,
-.IR gdm (1)
-, etc), then as soon
-as possible after connections to the X display are
-established try to switch to one of the users in the
-comma separated \fIlist\fR. If x11vnc is not running as
-root this option is ignored.
-.IP
-Why use this option? In general it is not needed since
-x11vnc is already connected to the X display and can
-perform its primary functions. The option was added
-to make some of the *external* utility commands x11vnc
-occasionally runs work properly. In particular under
-GNOME and KDE to implement the "\fB-solid\fR \fIcolor\fR" feature
-external commands (gconftool-2 and dcop) unfortunately
-must be run as the user owning the desktop session.
-Since this option switches userid it also affects the
-userid used to run the processes for the \fB-accept\fR and
-\fB-gone\fR options. It also affects the ability to read
-files for options such as \fB-connect,\fR \fB-allow,\fR and \fB-remap\fR
-and also the ultra and tight filetransfer feature if
-enabled. Note that the \fB-connect\fR file is also sometimes
-written to.
-.IP
-So be careful with this option since in some situations
-its use can decrease security.
-.IP
-In general the switch to a user will only take place
-if the display can still be successfully opened as that
-user (this is primarily to try to guess the actual owner
-of the session). Example: "\fB-users\fR \fIfred,wilma,betty\fR".
-Note that a malicious local user "barney" by
-quickly using "xhost +" when logging in may possibly
-get the x11vnc process to switch to user "fred".
-What happens next?
-.IP
-Under display managers it may be a long time before
-the switch succeeds (i.e. a user logs in). To instead
-make it switch immediately regardless if the display
-can be reopened prefix the username with the "+"
-character. E.g. "\fB-users\fR \fI+bob\fR" or "\fB-users\fR \fI+nobody\fR".
-.IP
-The latter (i.e. switching immediately to user
-"nobody") is the only obvious use of the \fB-users\fR option
-that increases security.
-.IP
-Use the following notation to associate a group with
-a user: user1.group1,user2.group2,... Note that
-.IR initgroups (2)
-will still be called first to try to
-switch to ALL of a user's groups (primary and additional
-groups). Only if that fails or it is not available
-then the single group specified as above (or the user's
-primary group if not specified) is switched to with
-.IR setgid (2).
-Use \fB-env\fR X11VNC_SINGLE_GROUP=1 to prevent
-trying
-.IR initgroups (2)
-and only switch to the single
-group. This sort of setting is only really needed to
-make the ultra or tight filetransfer permissions work
-properly. This format applies to any comma separated list
-of users, even the special "=" modes described below.
-.IP
-In \fB-unixpw\fR mode, if "\fB-users\fR \fIunixpw=\fR" is supplied
-then after a user authenticates himself via the
-\fB-unixpw\fR mechanism, x11vnc will try to switch to that
-user as though "\fB-users\fR \fI+username\fR" had been supplied.
-If you want to limit which users this will be done for,
-provide them as a comma separated list after "unixpw="
-Groups can also be specified as described above.
-.IP
-Similarly, in \fB-ssl\fR mode, if "\fB-users\fR \fIsslpeer=\fR" is
-supplied then after an SSL client authenticates with his
-cert (the \fB-sslverify\fR option is required for this) x11vnc
-will extract a UNIX username from the "emailAddress"
-field (username@hostname.com) of the "Subject" of the
-x509 SSL cert and then try to switch to that user as
-though "\fB-users\fR \fI+username\fR" had been supplied. If you
-want to limit which users this will be done for, provide
-them as a comma separated list after "sslpeer=".
-Set the env. var X11VNC_SSLPEER_CN to use the Common
-Name (normally a hostname) instead of the Email field.
-.IP
-NOTE: for sslpeer= mode the x11vnc administrator must
-take care that any client certs he adds to \fB-sslverify\fR
-have the intended UNIX username in the "emailAddress"
-field of the cert. Otherwise a user may be able to
-log in as another. This command can be of use in
-checking: "openssl x509 \fB-text\fR \fB-in\fR file.crt", see the
-"Subject:" line. Also, along with the normal RFB_*
-env. vars. (see \fB-accept)\fR passed to external cmd=
-commands, RFB_SSL_CLIENT_CERT will be set to the
-client's x509 certificate string.
-.IP
-The sslpeer= mode can aid finding X sessions via the
-FINDDISPLAY and FINDCREATEDISPLAY mechanisms.
-.IP
-To immediately switch to a user *before* connections
-to the X display are made or any files opened use the
-"=" character: "\fB-users\fR \fI=bob\fR". That user needs to
-be able to open the X display and any files of course.
-.IP
-The special user "guess=" means to examine the utmpx
-database (see
-.IR who (1)
-) looking for a user attached to
-the display number (from DISPLAY or \fB-display\fR option)
-and try him/her. To limit the list of guesses, use:
-"\fB-users\fR \fIguess=bob,betty\fR".
-.IP
-Even more sinister is the special user "lurk="
-that means to try to guess the DISPLAY from the utmpx
-login database as well. So it "lurks" waiting for
-anyone to log into an X session and then connects to it.
-Specify a list of users after the = to limit which users
-will be tried. To enable a different searching mode, if
-the first user in the list is something like ":0" or
-":0-2" that indicates a range of DISPLAY numbers that
-will be tried (regardless of whether they are in the
-utmpx database) for all users that are logged in. Also
-see the "\fB-display\fR \fIWAIT:...\fR" functionality. Examples:
-"\fB-users\fR \fIlurk=\fR" and also "\fB-users\fR \fIlurk=:0-1,bob,mary\fR"
-.IP
-Be especially careful using the "guess=" and "lurk="
-modes. They are not recommended for use on machines
-with untrustworthy local users.
-.PP
-\fB-noshm\fR
-.IP
-Do not use the MIT-SHM extension for the polling.
-Remote displays can be polled this way: be careful this
-can use large amounts of network bandwidth. This is
-also of use if the local machine has a limited number
-of shm segments and \fB-onetile\fR is not sufficient.
-.PP
-\fB-flipbyteorder\fR
-.IP
-Sometimes needed if remotely polled host has different
-endianness. Ignored unless \fB-noshm\fR is set.
-.PP
-\fB-onetile\fR
-.IP
-Do not use the new copy_tiles() framebuffer mechanism,
-just use 1 shm tile for polling. Limits shm segments
-used to 3.
-.IP
-To disable any automatic shm reduction set the
-env. var. X11VNC_NO_LIMIT_SHM.
-.PP
-\fB-solid\fR \fI[color]\fR
-.IP
-To improve performance, when VNC clients are connected
-try to change the desktop background to a solid color.
-The [color] is optional: the default color is "cyan4".
-For a different one specify the X color (rgb.txt name,
-e.g. "darkblue" or numerical "#RRGGBB").
-.IP
-Currently this option only works on GNOME, KDE, CDE,
-XFCE, and classic X (i.e. with the background image
-on the root window). The "gconftool-2", "dcop"
-and "xfconf-query" external commands are run for
-GNOME, KDE, and XFCE respectively. This also works
-on native MacOSX. (There is no color selection for
-MacOSX or XFCE.) Other desktops won't work, (send
-us the corresponding commands if you find them).
-If x11vnc is running as root (
-.IR inetd (8)
-or
-.IR gdm (1)
-),
-the \fB-users\fR option may be needed for GNOME, KDE, XFCE.
-If x11vnc guesses your desktop incorrectly, you can
-force it by prefixing color with "gnome:", "kde:",
-"cde:", "xfce:", or "root:".
-.IP
-Update: \fB-solid\fR no longer works on KDE4.
-.IP
-This mode works in a limited way on the Mac OS X Console
-with one color ('kelp') using the screensaver writing
-to the background. Look in "~/Library/Screen Savers"
-for VncSolidColor.png to change the color.
-.PP
-\fB-blackout\fR \fIstring\fR
-.IP
-Black out rectangles on the screen. \fIstring\fR is a
-comma separated list of WxH+X+Y type geometries for
-each rectangle. If one of the items on the list is the
-string "noptr" the mouse pointer will not be allowed
-to go into a blacked out region.
-.PP
-\fB-xinerama,\fR \fB-noxinerama\fR
-.IP
-If your screen is composed of multiple monitors
-glued together via XINERAMA, and that screen is
-not a rectangle this option will try to guess the
-areas to black out (if your system has libXinerama).
-default: \fB-xinerama\fR
-.IP
-In general, we have noticed on XINERAMA displays you may
-need to use the "\fB-xwarppointer\fR" option if the mouse
-pointer misbehaves and it is enabled by default. Use
-"\fB-noxwarppointer\fR" if you do not want this.
-.PP
-\fB-xtrap\fR
-.IP
-Use the DEC-XTRAP extension for keystroke and mouse
-input insertion. For use on legacy systems, e.g. X11R5,
-running an incomplete or missing XTEST extension.
-By default DEC-XTRAP will be used if XTEST server grab
-control is missing, use \fB-xtrap\fR to do the keystroke and
-mouse insertion via DEC-XTRAP as well.
-.PP
-\fB-xrandr\fR \fI[mode]\fR
-.IP
-If the display supports the XRANDR (X Resize, Rotate
-and Reflection) extension, and you expect XRANDR events
-to occur to the display while x11vnc is running, this
-options indicates x11vnc should try to respond to
-them (as opposed to simply crashing by assuming the
-old screen size). See the
-.IR xrandr (1)
-manpage and run
-\'xrandr \fB-q'\fR for more info. [mode] is optional and
-described below.
-.IP
-Since watching for XRANDR events and trapping errors
-increases polling overhead, only use this option if
-XRANDR changes are expected. For example on a rotatable
-screen PDA or laptop, or using a XRANDR-aware Desktop
-where you resize often. It is best to be viewing with a
-vncviewer that supports the NewFBSize encoding, since it
-knows how to react to screen size changes. Otherwise,
-LibVNCServer tries to do so something reasonable for
-viewers that cannot do this (portions of the screen
-may be clipped, unused, etc).
-.IP
-Note: the default now is to check for XRANDR events, but
-do not trap every X call that may fail due to resize.
-If a resize event is received, the full \fB-xrandr\fR mode
-is enabled. To disable even checking for events supply:
-\fB-noxrandr.\fR
-.IP
-"mode" defaults to "resize", which means create a
-new, resized, framebuffer and hope all viewers can cope
-with the change. "newfbsize" means first disconnect
-all viewers that do not support the NewFBSize VNC
-encoding, and then resize the framebuffer. "exit"
-means disconnect all viewer clients, and then terminate
-x11vnc.
-.PP
-\fB-rotate\fR \fIstring\fR
-.IP
-Rotate and/or flip the framebuffer view exported by VNC.
-This transformation is independent of XRANDR and is
-done in software in main memory and so may be slower.
-This mode could be useful on a handheld with portrait or
-landscape modes that do not correspond to the scanline
-order of the actual framebuffer. \fIstring\fR can be:
-.IP
-x flip along x-axis
-y flip along y-axis
-xy flip along x- and y-axes
-+90 rotate 90 degrees clockwise
-\fB-90\fR rotate 90 degrees counter-clockwise
-+90x rotate 90 degrees CW, then flip along x
-+90y rotate 90 degrees CW, then flip along y
-.IP
-these give all possible rotations and reflections.
-.IP
-Aliases: same as xy: yx, +180, \fB-180,\fR 180
-same as \fB-90:\fR +270, 270
-same as +90: 90, (ditto for 90x, 90y)
-.IP
-Like \fB-scale,\fR this transformation is applied at the very
-end of any chain of framebuffer transformations and so
-any options with geometries, e.g. \fB-blackout,\fR \fB-clip,\fR etc.
-are relative to the original X (or \fB-rawfb)\fR framebuffer,
-not the final one sent to VNC viewers.
-.IP
-If you do not want the cursor shape to be rotated
-prefix \fIstring\fR with "nc:", e.g. "nc:+90",
-"nc:xy", etc.
-.PP
-\fB-padgeom\fR \fIWxH\fR
-.IP
-Whenever a new vncviewer connects, the framebuffer is
-replaced with a fake, solid black one of geometry WxH.
-Shortly afterwards the framebuffer is replaced with the
-real one. This is intended for use with vncviewers
-that do not support NewFBSize and one wants to make
-sure the initial viewer geometry will be big enough
-to handle all subsequent resizes (e.g. under \fB-xrandr,\fR
-\fB-remote\fR id:windowid, rescaling, etc.)
-.IP
-In \fB-unixpw\fR mode this sets the size of the login screen.
-Use "once:WxH" it ignore padgeom after the login
-screen is set up.
-.PP
-\fB-o\fR \fIlogfile\fR
-.IP
-Write stderr messages to file \fIlogfile\fR instead of to
-the terminal. Same as "\fB-logfile\fR \fIfile\fR". To append
-to the file use "\fB-oa\fR \fIfile\fR" or "\fB-logappend\fR \fIfile\fR".
-If \fIlogfile\fR contains the string "%VNCDISPLAY"
-it is expanded to the vnc display (the name may need
-to be guessed at.) "%HOME" works too.
-.PP
-\fB-flag\fR \fIfile\fR
-.IP
-Write the "PORT=NNNN" (e.g. PORT=5900) string to
-\fIfile\fR in addition to stdout. This option could be
-useful by wrapper script to detect when x11vnc is ready.
-.PP
-\fB-rmflag\fR \fIfile\fR
-.IP
-Remove \fIfile\fR at exit to signal when x11vnc is done.
-The file is created at startup if it does not already
-exist or if \fIfile\fR is prefixed with "create:".
-If the file is created, the x11vnc PID is placed in
-the file. Otherwise the files contents is not changed.
-Use prefix "nocreate:" to prevent creation.
-.PP
-\fB-rc\fR \fIfilename\fR
-.IP
-Use \fIfilename\fR instead of $HOME/.x11vncrc for rc file.
-.PP
-\fB-norc\fR
-.IP
-Do not process any .x11vncrc file for options.
-.PP
-\fB-env\fR \fIVAR=VALUE\fR
-.IP
-Set the environment variable 'VAR' to value 'VALUE'
-at x11vnc startup. This is a convenience utility to
-avoid shell script wrappers, etc. to set the env. var.
-You may specify as many of these as needed on the
-command line.
-.PP
-\fB-prog\fR \fI/path/to/x11vnc\fR
-.IP
-Set the full path to the x11vnc program for cases when
-it cannot be determined from argv[0] (e.g. tcpd/inetd)
-.PP
-\fB-h,\fR \fB-help\fR
-.IP
-Print this help text.
--?, \fB-opts\fR Only list the x11vnc options.
-.PP
-\fB-V,\fR \fB-version\fR
-.IP
-Print program version and last modification date.
-.PP
-\fB-license\fR
-.IP
-Print out license information. Same as \fB-copying\fR and
-\fB-warranty.\fR
-.PP
-\fB-dbg\fR
-.IP
-Instead of exiting after cleaning up, run a simple
-"debug crash shell" when fatal errors are trapped.
-.PP
-\fB-q,\fR \fB-quiet\fR
-.IP
-Be quiet by printing less informational output to
-stderr. (use \fB-noquiet\fR to undo an earlier \fB-quiet.)\fR
-.IP
-The \fB-quiet\fR option does not eliminate all informational
-output, it only reduces it. It is ignored in most
-auxiliary usage modes, e.g. \fB-storepasswd.\fR To eliminate
-all output use: 2>/dev/null 1>&2, etc.
-.PP
-\fB-v,\fR \fB-verbose\fR
-.IP
-Print out more information to stderr.
-.PP
-\fB-bg\fR
-.IP
-Go into the background after screen setup. Messages to
-stderr are lost unless \fB-o\fR logfile is used. Something
-like this could be useful in a script:
-.IP
-port=`ssh -t $host "x11vnc -display :0 -bg" | grep PORT`
-.IP
-port=`echo "$port" | sed -e 's/PORT=//'`
-.IP
-port=`expr $port - 5900`
-.IP
-vncviewer $host:$port
-.PP
-\fB-modtweak,\fR \fB-nomodtweak\fR
-.IP
-Option \fB-modtweak\fR automatically tries to adjust the AltGr
-and Shift modifiers for differing language keyboards
-between client and host. Otherwise, only a single key
-press/release of a Keycode is simulated (i.e. ignoring
-the state of the modifiers: this usually works for
-identical keyboards). Also useful in resolving cases
-where a Keysym is bound to multiple keys (e.g. "<" + ">"
-and "," + "<" keys). Default: \fB-modtweak\fR
-.IP
-If you are having trouble with with keys and \fB-xkb\fR or
-\fB-noxkb,\fR and similar things don't help, try \fB-nomodtweak.\fR
-.IP
-On some HP-UX systems it is been noted that they have
-an odd keymapping where a single keycode will have a
-keysym, e.g. "#", up to three times. You can check
-via "xmodmap \fB-pk"\fR or the \fB-dk\fR option. The failure
-is when you try to type "#" it yields "3". If you
-see this problem try setting the environment variable
-MODTWEAK_LOWEST=1 to see if it helps.
-.PP
-\fB-xkb,\fR \fB-noxkb\fR
-.IP
-When in modtweak mode, use the XKEYBOARD extension (if
-the X display supports it) to do the modifier tweaking.
-This is powerful and should be tried if there are still
-keymapping problems when using \fB-modtweak\fR by itself.
-The default is to check whether some common keysyms,
-e.g. !, @, [, are only accessible via \fB-xkb\fR mode and if
-so then automatically enable the mode. To disable this
-automatic detection use \fB-noxkb.\fR
-.IP
-When \fB-xkb\fR mode is active you can set these env. vars.
-They apply only when there is ambiguity as to which
-key to choose (i.e the mapping is not one-to-one).
-NOKEYHINTS=1: for up ascii keystrokes do not use score
-hints saved when the key was pressed down. NOANYDOWN=1:
-for up keystrokes do not resort to searching through
-keys that are currently pressed down. KEYSDOWN=N:
-remember the last N keys press down for tie-breaking
-when an up keystroke comes in.
-.PP
-\fB-capslock\fR
-.IP
-When in \fB-modtweak\fR (the default) or \fB-xkb\fR mode,
-if a keysym in the range A-Z comes in check the X
-server to see if the Caps_Lock is set. If it is do
-not artificially press Shift to generate the keysym.
-This will enable the CapsLock key to behave correctly
-in some circumstances: namely *both* the VNC viewer
-machine and the x11vnc X server are in the CapsLock
-on state. If one side has CapsLock on and the other
-off and the keyboard is not behaving as you think it
-should you should correct the CapsLock states (hint:
-pressing CapsLock inside and outside of the viewer can
-help toggle them both to the correct state). However,
-for best results do not use this option, but rather
-*only* enable CapsLock on the VNC viewer side (i.e. by
-pressing CapsLock outside of the viewer window, also
-\fB-skip_lockkeys\fR below). Also try \fB-nomodtweak\fR for a
-possible workaround.
-.PP
-\fB-skip_lockkeys,\fR \fB-noskip_lockkeys\fR
-.IP
-Have x11vnc ignore all Caps_Lock, Shift_Lock, Num_Lock,
-Scroll_Lock keysyms received from viewers. The idea is
-you press Caps_Lock on the VNC Viewer side but that does
-not change the lock state in the x11vnc-side X server.
-Nevertheless your capitalized letters come in over
-the wire and are applied correctly to the x11vnc-side
-X server. Note this mode probably won't do what you
-want in \fB-nomodtweak\fR mode. Also, a kludge for KP_n
-digits is always done in this mode: they are mapped to
-regular digit keysyms. See also \fB-capslock\fR above.
-The default is \fB-noskip_lockkeys.\fR
-.PP
-\fB-skip_keycodes\fR \fIstring\fR
-.IP
-Ignore the comma separated list of decimal keycodes.
-Perhaps these are keycodes not on your keyboard but
-your X server thinks exist. Currently only applies
-to \fB-xkb\fR mode. Use this option to help x11vnc in the
-reverse problem it tries to solve: Keysym -> Keycode(s)
-when ambiguities exist (more than one Keycode per
-Keysym). Run 'xmodmap \fB-pk'\fR to see your keymapping.
-Example: "\fB-skip_keycodes\fR \fI94,114\fR"
-.PP
-\fB-sloppy_keys\fR
-.IP
-Experimental option that tries to correct some
-"sloppy" key behavior. E.g. if at the viewer you
-press Shift+Key but then release the Shift before
-Key that could give rise to extra unwanted characters
-(usually only between keyboards of different languages).
-Only use this option if you observe problems with
-some keystrokes.
-.PP
-\fB-skip_dups,\fR \fB-noskip_dups\fR
-.IP
-Some VNC viewers send impossible repeated key events,
-e.g. key-down, key-down, key-up, key-up all for the same
-key, or 20 downs in a row for the same modifier key!
-Setting \fB-skip_dups\fR means to skip these duplicates and
-just process the first event. Note: some VNC viewers
-assume they can send down's without the corresponding
-up's and so you should not set this option for
-these viewers (symptom: some keys do not autorepeat)
-Default: \fB-noskip_dups\fR
-.PP
-\fB-add_keysyms,\fR \fB-noadd_keysyms\fR
-.IP
-If a Keysym is received from a VNC viewer and that
-Keysym does not exist in the X server, then add the
-Keysym to the X server's keyboard mapping on an unused
-key. Added Keysyms will be removed periodically and
-also when x11vnc exits. Default: \fB-add_keysyms\fR
-.PP
-\fB-clear_mods\fR
-.IP
-At startup and exit clear the modifier keys by sending
-KeyRelease for each one. The Lock modifiers are skipped.
-Used to clear the state if the display was accidentally
-left with any pressed down.
-.PP
-\fB-clear_keys\fR
-.IP
-As \fB-clear_mods,\fR except try to release ANY pressed key.
-Note that this option and \fB-clear_mods\fR can interfere
-with a person typing at the physical keyboard.
-.PP
-\fB-clear_all\fR
-.IP
-As \fB-clear_keys,\fR except try to release any CapsLock,
-NumLock, etc. locks as well.
-.PP
-\fB-remap\fR \fIstring\fR
-.IP
-Read Keysym remappings from file named \fIstring\fR.
-Format is one pair of Keysyms per line (can be name
-or hex value) separated by a space. If no file named
-\fIstring\fR exists, it is instead interpreted as this
-form: key1-key2,key3-key4,... See <X11/keysymdef.h>
-header file for a list of Keysym names, or use
-.IR xev (1).
-.IP
-To map a key to a button click, use the fake Keysyms
-"Button1", ..., etc. E.g: "\fB-remap\fR \fISuper_R-Button2\fR"
-(useful for pasting on a laptop)
-.IP
-I use these if the machine I am viewing from does not
-have a scrollwheel or I don't like using the one it has:
-.IP
-\fB-remap\fR Super_R-Button4,Menu-Button5
-\fB-remap\fR KP_Add-Button4,KP_Enter-Button5
-.IP
-the former would be used on a PC, the latter on a
-MacBook. This way those little used keys can be used
-to generate bigger hops than the Up and Down arrows
-provide. One can scroll through text or web pages more
-quickly this way (especially if x11vnc scroll detection
-is active.)
-.IP
-Use Button44, Button12, etc. for multiple clicks.
-.IP
-To disable a keysym (i.e. make it so it will not be
-injected), remap it to "NoSymbol" or "None".
-.IP
-Dead keys: "dead" (or silent, mute) keys are keys that
-do not produce a character but must be followed by a 2nd
-keystroke. This is often used for accenting characters,
-e.g. to put "`" on top of "a" by pressing the dead
-key and then "a". Note that this interpretation
-is not part of core X11, it is up to the toolkit or
-application to decide how to react to the sequence.
-The X11 names for these keysyms are "dead_grave",
-"dead_acute", etc. However some VNC viewers send the
-keysyms "grave", "acute" instead thereby disabling
-the accenting. To work around this \fB-remap\fR can be used.
-For example "\fB-remap\fR \fIgrave-dead_grave,acute-dead_acute\fR"
-.IP
-As a convenience, "\fB-remap\fR \fIDEAD\fR" applies these remaps:
-.IP
- g grave-dead_grave
- a acute-dead_acute
- c asciicircum-dead_circumflex
- t asciitilde-dead_tilde
- m macron-dead_macron
- b breve-dead_breve
- D abovedot-dead_abovedot
- d diaeresis-dead_diaeresis
- o degree-dead_abovering
- A doubleacute-dead_doubleacute
- r caron-dead_caron
- e cedilla-dead_cedilla
-.IP
-.IP
-If you just want a subset use the first letter
-label, e.g. "\fB-remap\fR \fIDEAD=ga\fR" to get the first two.
-Additional remaps may also be supplied via commas,
-e.g. "\fB-remap\fR \fIDEAD=ga,Super_R-Button2\fR". Finally,
-"DEAD=missing" means to apply all of the above as
-long as the left hand member is not already in the
-X11 keymap.
-.PP
-\fB-norepeat,\fR \fB-repeat\fR
-.IP
-Option \fB-norepeat\fR disables X server key auto repeat when
-VNC clients are connected and VNC keyboard input is
-not idle for more than 5 minutes. This works around a
-repeating keystrokes bug (triggered by long processing
-delays between key down and key up client events:
-either from large screen changes or high latency).
-Default: \fB-norepeat\fR
-.IP
-You can set the env. var. X11VNC_IDLE_TIMEOUT to the
-number of idle seconds you want (5min = 300secs).
-.IP
-Note: your VNC viewer side will likely do autorepeating,
-so this is no loss unless someone is simultaneously at
-the real X display.
-.IP
-Use "\fB-norepeat\fR \fIN\fR" to set how many times norepeat will
-be reset if something else (e.g. X session manager)
-undoes it. The default is 2. Use a negative value
-for unlimited resets.
-.PP
-\fB-nofb\fR
-.IP
-Ignore video framebuffer: only process keyboard and
-pointer. Intended for use with Win2VNC and x2vnc
-dual-monitor setups.
-.PP
-\fB-nobell\fR
-.IP
-Do not watch for XBell events. (no beeps will be heard)
-Note: XBell monitoring requires the XKEYBOARD extension.
-.PP
-\fB-nosel\fR
-.IP
-Do not manage exchange of X selection/cutbuffer between
-VNC viewers and the X server at all.
-.PP
-\fB-noprimary\fR
-.IP
-Do not poll the PRIMARY selection for changes to send
-back to clients. (PRIMARY is still set on received
-changes, however).
-.PP
-\fB-nosetprimary\fR
-.IP
-Do not set the PRIMARY selection for changes received
-from VNC clients.
-.PP
-\fB-noclipboard\fR
-.IP
-Do not poll the CLIPBOARD selection for changes to send
-back to clients. (CLIPBOARD is still set on received
-changes, however).
-.PP
-\fB-nosetclipboard\fR
-.IP
-Do not set the CLIPBOARD selection for changes
-received from VNC clients.
-.PP
-\fB-seldir\fR \fIstring\fR
-.IP
-If direction string is "send", only send the selection
-to viewers, and if it is "recv" only receive it from
-viewers. To work around apps setting the selection
-too frequently and messing up the other end. You can
-actually supply a comma separated list of directions,
-including "debug" to turn on debugging output.
-.PP
-\fB-cursor\fR \fI[mode],\fR \fB-nocursor\fR
-.IP
-Sets how the pointer cursor shape (little icon at the
-mouse pointer) should be handled. The "mode" string
-is optional and is described below. The default
-is to show some sort of cursor shape(s). How this
-is done depends on the VNC viewer and the X server.
-Use \fB-nocursor\fR to disable cursor shapes completely.
-.IP
-Some VNC viewers support the TightVNC CursorPosUpdates
-and CursorShapeUpdates extensions (cuts down on
-network traffic by not having to send the cursor image
-every time the pointer is moved), in which case these
-extensions are used (see \fB-nocursorshape\fR and \fB-nocursorpos\fR
-below to disable). For other viewers the cursor shape
-is written directly to the framebuffer every time the
-pointer is moved or changed and gets sent along with
-the other framebuffer updates. In this case, there
-will be some lag between the vnc viewer pointer and
-the remote cursor position.
-.IP
-If the X display supports retrieving the cursor shape
-information from the X server, then the default is
-to use that mode. On Solaris this can be done with
-the SUN_OVL extension using \fB-overlay\fR (see also the
-\fB-overlay_nocursor\fR option). A similar overlay scheme
-is used on IRIX. Xorg (e.g. Linux) and recent Solaris
-Xsun servers support the XFIXES extension to retrieve
-the exact cursor shape from the X server. If XFIXES
-is present it is preferred over Overlay and is used by
-default (see \fB-noxfixes\fR below). This can be disabled
-with \fB-nocursor,\fR and also some values of the "mode"
-option below.
-.IP
-Note that under XFIXES cursors with transparency (alpha
-channel) will usually not be exactly represented and one
-may find Overlay preferable. See also the \fB-alphacut\fR
-and \fB-alphafrac\fR options below as fudge factors to try
-to improve the situation for cursors with transparency
-for a given theme.
-.IP
-The "mode" string can be used to fine-tune the
-displaying of cursor shapes. It can be used the
-following ways:
-.IP
-"\fB-cursor\fR \fIarrow\fR" - just show the standard arrow
-nothing more or nothing less.
-.IP
-"\fB-cursor\fR \fInone\fR" - same as "\fB-nocursor\fR"
-.IP
-"\fB-cursor\fR \fIX\fR" - when the cursor appears to be on the
-root window, draw the familiar X shape. Some desktops
-such as GNOME cover up the root window completely,
-and so this will not work, try "X1", etc, to try to
-shift the tree depth. On high latency links or slow
-machines there will be a time lag between expected and
-the actual cursor shape.
-.IP
-"\fB-cursor\fR \fIsome\fR" - like "X" but use additional
-heuristics to try to guess if the window should have
-a windowmanager-like resizer cursor or a text input
-I-beam cursor. This is a complete hack, but may be
-useful in some situations because it provides a little
-more feedback about the cursor shape.
-.IP
-"\fB-cursor\fR \fImost\fR" - try to show as many cursors as
-possible. Often this will only be the same as "some"
-unless the display has overlay visuals or XFIXES
-extensions available. On Solaris and IRIX if XFIXES
-is not available, \fB-overlay\fR mode will be attempted.
-.PP
-\fB-cursor_drag\fR
-.IP
-Show cursor shape changes even when the mouse is being
-dragged with a mouse button down. This is useful if you
-want to be able to see Drag-and-Drop cursor icons, etc.
-.PP
-\fB-arrow\fR \fIn\fR
-.IP
-Choose an alternate "arrow" cursor from a set of
-some common ones. n can be 1 to 6. Default is: 1
-Ignored when in XFIXES cursor-grabbing mode.
-.PP
-\fB-noxfixes\fR
-.IP
-Do not use the XFIXES extension to draw the exact cursor
-shape even if it is available.
-.IP
-Note: To work around a crash in Xorg 1.5 and later
-some people needed to use \fB-noxfixes.\fR The Xorg crash
-occurred right after a Display Manager (e.g. GDM) login.
-Starting with x11vnc 0.9.9 it tries to automatically
-avoid using XFIXES until it is sure a window manager
-is running. See the \fB-reopen\fR option for more info and
-how to use X11VNC_AVOID_WINDOWS=never to disable it.
-.PP
-\fB-alphacut\fR \fIn\fR
-.IP
-When using the XFIXES extension for the cursor shape,
-cursors with transparency will not usually be displayed
-exactly (but opaque ones will). This option sets n as
-a cutoff for cursors that have transparency ("alpha
-channel" with values ranging from 0 to 255) Any cursor
-pixel with alpha value less than n becomes completely
-transparent. Otherwise the pixel is completely opaque.
-Default 240
-.PP
-\fB-alphafrac\fR \fIfraction\fR
-.IP
-With the threshold in \fB-alphacut\fR some cursors will become
-almost completely transparent because their alpha values
-are not high enough. For those cursors adjust the
-alpha threshold until fraction of the non-zero alpha
-channel pixels become opaque. Default 0.33
-.PP
-\fB-alpharemove\fR
-.IP
-By default, XFIXES cursors pixels with transparency have
-the alpha factor multiplied into the RGB color values
-(i.e. that corresponding to blending the cursor with a
-black background). Specify this option to remove the
-alpha factor. (useful for light colored semi-transparent
-cursors).
-.PP
-\fB-noalphablend\fR
-.IP
-In XFIXES mode do not send cursor alpha channel data
-to LibVNCServer. The default is to send it. The
-alphablend effect will only be visible in \fB-nocursorshape\fR
-mode or for clients with cursorshapeupdates turned
-off. (However there is a hack for 32bpp with depth 24,
-it uses the extra 8 bits to store cursor transparency
-for use with a hacked vncviewer that applies the
-transparency locally. See the FAQ for more info).
-.PP
-\fB-nocursorshape\fR
-.IP
-Do not use the TightVNC CursorShapeUpdates extension
-even if clients support it. See \fB-cursor\fR above.
-.PP
-\fB-cursorpos,\fR \fB-nocursorpos\fR
-.IP
-Option \fB-cursorpos\fR enables sending the X cursor position
-back to all vnc clients that support the TightVNC
-CursorPosUpdates extension. Other clients will be able
-to see the pointer motions. Default: \fB-cursorpos\fR
-.PP
-\fB-xwarppointer,\fR \fB-noxwarppointer\fR
-.IP
-Move the pointer with
-.IR XWarpPointer (3X)
-instead of
-the XTEST extension. Use this as a workaround
-if the pointer motion behaves incorrectly, e.g.
-on touchscreens or other non-standard setups.
-.IP
-It is also sometimes needed on XINERAMA displays and is
-enabled by default if XINERAMA is found to be active.
-To prevent this, use \fB-noxwarppointer.\fR
-.PP
-\fB-always_inject\fR
-.IP
-Even if there is no displacement (dx = dy = 0) for a
-VNC mouse event force the pointer to the indicated x,y
-position anyway. Recent (2009) gui toolkits (gnome)
-have problems with x11vnc's original mouse input
-injection method. So x11vnc's mouse input injection
-method has been modified. To regain the OLD behavior
-use this option: \fB-always_inject.\fR Then x11vnc will
-always force positioning the mouse to the x,y position
-even if that position has not changed since the previous
-VNC input event.
-.IP
-The first place this problem was noticed was in gnome
-terminal: if you pressed and released mouse button 3, a
-menu was posted and then its first element 'New Terminal
-Window' was activated. This was because x11vnc injected
-the mouse position twice: once on ButtonPress and again
-on ButtonRelease. The toolkit interpreted the 2nd one
-as mouse motion even though the mouse hadn't moved.
-So now by default x11vnc tries to avoid injecting the
-2nd one.
-.IP
-Note that with the new default x11vnc will be oblivious
-to applications moving the pointer (warping) or the
-user at the physical display moving it. So it might,
-e.g., inject ButtonRelease at the wrong position.
-If this (or similar scenarios) causes problems in your
-environment, specify \fB-always_inject\fR for the old method.
-.PP
-\fB-buttonmap\fR \fIstring\fR
-.IP
-String to remap mouse buttons. Format: IJK-LMN, this
-maps buttons I -> L, etc., e.g. \fB-buttonmap\fR 13-31
-.IP
-Button presses can also be mapped to keystrokes: replace
-a button digit on the right of the dash with :<sym>:
-or :<sym1>+<sym2>: etc. for multiple keys. For example,
-if the viewing machine has a mouse-wheel (buttons 4 5)
-but the x11vnc side does not, these will do scrolls:
-.IP
-\fB-buttonmap\fR 12345-123:Prior::Next:
-.IP
-\fB-buttonmap\fR 12345-123:Up+Up+Up::Down+Down+Down:
-.IP
-See <X11/keysymdef.h> header file for a list of Keysyms,
-or use the
-.IR xev (1)
-program. Note: mapping of button
-clicks to Keysyms may not work if \fB-modtweak\fR or \fB-xkb\fR is
-needed for the Keysym.
-.IP
-If you include a modifier like "Shift_L" the
-modifier's up/down state is toggled, e.g. to send
-"The" use :Shift_L+t+Shift_L+h+e: (the 1st one is
-shift down and the 2nd one is shift up). (note: the
-initial state of the modifier is ignored and not reset)
-To include button events use "Button1", ... etc.
-.IP
-.IP
-\fB-buttonmap\fR currently does not work on MacOSX console
-or in \fB-rawfb\fR mode.
-.IP
-Workaround: use \fB-buttonmap\fR IJ...-LM...=n to limit the
-number of mouse buttons to n, e.g. 123-123=3. This will
-prevent x11vnc from crashing if the X server reports
-there are 5 buttons (4/5 scroll wheel), but there are
-only really 3.
-.PP
-\fB-nodragging\fR
-.IP
-Do not update the display during mouse dragging events
-(mouse button held down). Greatly improves response on
-slow setups, but you lose all visual feedback for drags,
-text selection, and some menu traversals. It overrides
-any \fB-pointer_mode\fR setting.
-.PP
-\fB-ncache\fR \fIn\fR
-.IP
-Client-side caching scheme. Framebuffer memory \fIn\fR
-(an integer) times that of the full display is allocated
-below the actual framebuffer to cache screen contents
-for rapid retrieval. So a W x H frambuffer is expanded
-to a W x (n+1)*H one. Use 0 to disable.
-.IP
-The \fIn\fR is actually optional, the default is 10.
-.IP
-For this and the other \fB-ncache*\fR options below you can
-abbreviate "\fB-ncache\fR" with "\fB-nc\fR". Also, "\fB-nonc\fR"
-is the same as "\fB-ncache\fR \fI0\fR"
-.IP
-This is an experimental option, currently implemented in
-an awkward way in that in the VNC Viewer you can see the
-pixel cache contents if you scroll down, etc. So you
-will have to set things up so you can't see that region.
-If this method is successful, the changes required for
-clients to do this less awkwardly will be investigated.
-.IP
-The SSVNC viewer does a good job at automatically hiding
-the pixel cache region. Or use SSVNC's \fB-ycrop\fR option
-to explicitly hide the region.
-.IP
-Note that this mode consumes a huge amount of memory,
-both on the x11vnc server side and on the VNC Viewer
-side. If n=2 then the amount of RAM used is roughly
-tripled for both x11vnc and the VNC Viewer. As a rule
-of thumb, note that 1280x1024 at depth 24 is about 5MB
-of pixel data.
-.IP
-For reasonable response when cycling through 4 to 6
-large (e.g. web browser) windows a value n of 6 to 12
-is recommended. (that's right: ~10X more memory...)
-.IP
-Because of the way window backingstore and saveunders
-are implemented, n must be even. It will be incremented
-by 1 if it is not.
-.IP
-This mode also works for native MacOS X, but may not
-be as effective as the X version. This is due to a
-number of things, one is the drop-shadow compositing
-that leaves extra areas that need to be repaired (see
-\fB-ncache_pad).\fR Another is the window iconification
-animations need to be avoided (see \fB-macicontime).\fR
-It appears the that the 'Scale' animation mode gives
-better results than the 'Genie' one. Also, window event
-detection not as accurate as the X version.
-.PP
-\fB-ncache_cr\fR
-.IP
-In \fB-ncache\fR mode, try to do copyrect opaque window
-moves/drags instead of wireframes (this can induce
-painting errors). The wireframe will still be used when
-moving a window whose save-unders has not yet been set
-or has been invalidated.
-.IP
-Some VNC Viewers provide better response than others
-with this option. On Unix, realvnc viewer gives
-smoother drags than tightvnc viewer. Response may also
-be choppy if the server side machine is too slow.
-.IP
-Sometimes on very slow modem connections, this actually
-gives an improvement because no pixel data at all
-(not even the box animation) is sent during the drag.
-.PP
-\fB-ncache_no_moveraise\fR
-.IP
-In \fB-ncache\fR mode, do not assume that moving a window
-will cause the window manager to raise it to the top
-of the stack. The default is to assume it does, and
-so at the beginning of any wireframe, etc, window moves
-the window will be pushed to top in the VNC viewer.
-.PP
-\fB-ncache_no_dtchange\fR
-.IP
-In \fB-ncache\fR mode, do not try to guess when the desktop
-(viewport) changes to another one (i.e. another
-workarea). The default is to try to guess and when
-detected try to make the transistion more smoothly.
-.PP
-\fB-ncache_no_rootpixmap\fR
-.IP
-In \fB-ncache\fR mode, do not try to snapshot the desktop
-background to use in guessing or reconstructing window
-save-unders.
-.PP
-\fB-ncache_keep_anims\fR
-.IP
-In \fB-ncache\fR mode, do not try to disable window
-manager animations and other effects (that usually
-degrade ncache performance or cause painting errors).
-The default is to try to disable them on KDE (but not
-GNOME) when VNC clients are connected.
-.IP
-For other window managers or desktops that provide
-animations, effects, compositing, translucency,
-etc. that interfere with the \fB-ncache\fR method you will
-have to disable them manually.
-.PP
-\fB-ncache_old_wm\fR
-.IP
-In \fB-ncache\fR mode, enable some heuristics for old style
-window managers such as fvwm and twm.
-.PP
-\fB-ncache_pad\fR \fIn\fR
-.IP
-In \fB-ncache\fR mode, pad each window with n pixels for the
-caching rectangles. This can be used to try to improve
-the situation with dropshadows or other compositing
-(e.g. MacOS X window manager), although it could make
-things worse. The default is 0 on Unix and 24 on
-MacOS X.
-.PP
-\fB-debug_ncache\fR
-.IP
-Turn on debugging and profiling output under \fB-ncache.\fR
-.PP
-\fB-wireframe\fR \fI[str],\fR \fB-nowireframe\fR
-.IP
-Try to detect window moves or resizes when a mouse
-button is held down and show a wireframe instead of
-the full opaque window. This is based completely on
-heuristics and may not always work: it depends on your
-window manager and even how you move things around.
-See \fB-pointer_mode\fR below for discussion of the "bogging
-down" problem this tries to avoid.
-Default: \fB-wireframe\fR
-.IP
-Shorter aliases: \fB-wf\fR [str] and \fB-nowf\fR
-.IP
-The value "str" is optional and, of course, is
-packed with many tunable parameters for this scheme:
-.IP
-Format: shade,linewidth,percent,T+B+L+R,mod,t1+t2+t3+t4
-Default: 0xff,2,0,32+8+8+8,all,0.15+0.30+5.0+0.125
-.IP
-If you leave nothing between commas: ",," the default
-value is used. If you don't specify enough commas,
-the trailing parameters are set to their defaults.
-.IP
-"shade" indicate the "color" for the wireframe,
-usually a greyscale: 0-255, however for 16 and 32bpp you
-can specify an rgb.txt X color (e.g. "dodgerblue") or
-a value > 255 is treated as RGB (e.g. red is 0xff0000).
-"linewidth" sets the width of the wireframe in pixels.
-"percent" indicates to not apply the wireframe scheme
-to windows with area less than this percent of the
-full screen.
-.IP
-"T+B+L+R" indicates four integers for how close in
-pixels the pointer has to be from the Top, Bottom, Left,
-or Right edges of the window to consider wireframing.
-This is a speedup to quickly exclude a window from being
-wireframed: set them all to zero to not try the speedup
-(scrolling and selecting text will likely be slower).
-.IP
-"mod" specifies if a button down event in the
-interior of the window with a modifier key (Alt, Shift,
-etc.) down should indicate a wireframe opportunity.
-It can be "0" or "none" to skip it, "1" or "all"
-to apply it to any modifier, or "Shift", "Alt",
-"Control", "Meta", "Super", or "Hyper" to only
-apply for that type of modifier key.
-.IP
-"t1+t2+t3+t4" specify four floating point times in
-seconds: t1 is how long to wait for the pointer to move,
-t2 is how long to wait for the window to start moving
-or being resized (for some window managers this can be
-rather long), t3 is how long to keep a wireframe moving
-before repainting the window. t4 is the minimum time
-between sending wireframe "animations". If a slow
-link is detected, these values may be automatically
-changed to something better for a slow link.
-.PP
-\fB-nowireframelocal\fR
-.IP
-By default, mouse motion and button presses of a
-user sitting at the LOCAL display are monitored for
-wireframing opportunities (so that the changes will be
-sent efficiently to the VNC clients). Use this option
-to disable this behavior.
-.PP
-\fB-wirecopyrect\fR \fImode,\fR \fB-nowirecopyrect\fR
-.IP
-Since the \fB-wireframe\fR mechanism evidently tracks moving
-windows accurately, a speedup can be obtained by
-telling the VNC viewers to locally copy the translated
-window region. This is the VNC CopyRect encoding:
-the framebuffer update doesn't need to send the actual
-new image data.
-.IP
-Shorter aliases: \fB-wcr\fR [mode] and \fB-nowcr\fR
-.IP
-"mode" can be "never" (same as \fB-nowirecopyrect)\fR
-to never try the copyrect, "top" means only do it if
-the window was not covered by any other windows, and
-"always" means to translate the orginally unobscured
-region (this may look odd as the remaining pieces come
-in, but helps on a slow link). Default: "always"
-.IP
-Note: there can be painting errors or slow response
-when using \fB-scale\fR so you may want to disable CopyRect
-in this case "\fB-wirecopyrect\fR \fInever\fR" on the command
-line or by remote-control. Or you can also use the
-"\fB-scale\fR \fIxxx:nocr\fR" scale option.
-.PP
-\fB-debug_wireframe\fR
-.IP
-Turn on debugging info printout for the wireframe
-heuristics. "\fB-dwf\fR" is an alias. Specify multiple
-times for more output.
-.PP
-\fB-scrollcopyrect\fR \fImode,\fR \fB-noscrollcopyrect\fR
-.IP
-Like \fB-wirecopyrect,\fR but use heuristics to try to guess
-if a window has scrolled its contents (either vertically
-or horizontally). This requires the RECORD X extension
-to "snoop" on X applications (currently for certain
-XCopyArea and XConfigureWindow X protocol requests).
-Examples: Hitting <Return> in a terminal window when the
-cursor was at the bottom, the text scrolls up one line.
-Hitting <Down> arrow in a web browser window, the web
-page scrolls up a small amount. Or scrolling with a
-scrollbar or mouse wheel.
-.IP
-Shorter aliases: \fB-scr\fR [mode] and \fB-noscr\fR
-.IP
-This scheme will not always detect scrolls, but when
-it does there is a nice speedup from using the VNC
-CopyRect encoding (see \fB-wirecopyrect).\fR The speedup
-is both in reduced network traffic and reduced X
-framebuffer polling/copying. On the other hand, it may
-induce undesired transients (e.g. a terminal cursor
-being scrolled up when it should not be) or other
-painting errors (window tearing, bunching-up, etc).
-These are automatically repaired in a short period
-of time. If this is unacceptable disable the feature
-with \fB-noscrollcopyrect.\fR
-.IP
-Screen clearing kludges: for testing at least, there
-are some "magic key sequences" (must be done in less
-than 1 second) to aid repairing painting errors that
-may be seen when using this mode:
-.IP
-3 Alt_L's in a row: resend whole screen,
-4 Alt_L's in a row: reread and resend whole screen,
-3 Super_L's in a row: mark whole screen for polling,
-4 Super_L's in a row: reset RECORD context,
-5 Super_L's in a row: try to push a black screen
-.IP
-note: Alt_L is the Left "Alt" key (a single key)
-Super_L is the Left "Super" key (Windows flag).
-Both of these are modifier keys, and so should not
-generate characters when pressed by themselves. Also,
-your VNC viewer may have its own refresh hot-key
-or button.
-.IP
-"mode" can be "never" (same as \fB-noscrollcopyrect)\fR
-to never try the copyrect, "keys" means to try it
-in response to keystrokes only, "mouse" means to
-try it in response to mouse events only, "always"
-means to do both. Default: "always"
-.IP
-Note: there can be painting errors or slow response
-when using \fB-scale\fR so you may want to disable CopyRect
-in this case "\fB-scrollcopyrect\fR \fInever\fR" on the command
-line or by remote-control. Or you can also use the
-"\fB-scale\fR \fIxxx:nocr\fR" scale option.
-.PP
-\fB-scr_area\fR \fIn\fR
-.IP
-Set the minimum area in pixels for a rectangle
-to be considered for the \fB-scrollcopyrect\fR detection
-scheme. This is to avoid wasting the effort on small
-rectangles that would be quickly updated the normal way.
-E.g. suppose an app updated the position of its skinny
-scrollbar first and then shifted the large panel
-it controlled. We want to be sure to skip the small
-scrollbar and get the large panel. Default: 60000
-.PP
-\fB-scr_skip\fR \fIlist\fR
-.IP
-Skip scroll detection for applications matching
-the comma separated list of strings in \fIlist\fR.
-Some applications implement their scrolling in
-strange ways where the XCopyArea, etc, also applies
-to invisible portions of the window: if we CopyRect
-those areas it looks awful during the scroll and
-there may be painting errors left after the scroll.
-Soffice.bin is the worst known offender.
-.IP
-Use "##" to denote the start of the application class
-(e.g. "##XTerm") and "++" to denote the start
-of the application instance name (e.g. "++xterm").
-The string your list is matched against is of the form
-"^^WM_NAME##Class++Instance<same-for-any-subwindows>"
-The "xlsclients \fB-la"\fR command will provide this info.
-.IP
-If a pattern is prefixed with "KEY:" it only applies
-to Keystroke generated scrolls (e.g. Up arrow). If it
-is prefixed with "MOUSE:" it only applies to Mouse
-induced scrolls (e.g. dragging on a scrollbar).
-Default: ##Soffice.bin,##StarOffice,##OpenOffice
-.PP
-\fB-scr_inc\fR \fIlist\fR
-.IP
-Opposite of \fB-scr_skip:\fR this list is consulted first
-and if there is a match the window will be monitored
-via RECORD for scrolls irrespective of \fB-scr_skip.\fR
-Use \fB-scr_skip\fR '*' to skip anything that does not match
-your \fB-scr_inc.\fR Use \fB-scr_inc\fR '*' to include everything.
-.PP
-\fB-scr_keys\fR \fIlist\fR
-.IP
-For keystroke scroll detection, only apply the RECORD
-heuristics to the comma separated list of keysyms in
-\fIlist\fR. You may find the RECORD overhead for every
-one of your keystrokes disrupts typing too much, but you
-don't want to turn it off completely with "\fB-scr\fR \fImouse\fR"
-and \fB-scr_parms\fR does not work or is too confusing.
-.IP
-The listed keysyms can be numeric or the keysym
-names in the <X11/keysymdef.h> header file or from the
-.IR xev (1)
-program. Example: "\fB-scr_keys\fR \fIUp,Down,Return\fR".
-One probably wants to have application specific lists
-(e.g. for terminals, etc) but that is too icky to think
-about for now...
-.IP
-If \fIlist\fR begins with the "-" character the list
-is taken as an exclude list: all keysyms except those
-list will be considered. The special string "builtin"
-expands to an internal list of keysyms that are likely
-to cause scrolls. BTW, by default modifier keys,
-Shift_L, Control_R, etc, are skipped since they almost
-never induce scrolling by themselves.
-.PP
-\fB-scr_term\fR \fIlist\fR
-.IP
-Yet another cosmetic kludge. Apply shell/terminal
-heuristics to applications matching comma separated
-list (same as for \fB-scr_skip/-scr_inc).\fR For example an
-annoying transient under scroll detection is if you
-hit Enter in a terminal shell with full text window,
-the solid text cursor block will be scrolled up.
-So for a short time there are two (or more) block
-cursors on the screen. There are similar scenarios,
-(e.g. an output line is duplicated).
-.IP
-These transients are induced by the approximation of
-scroll detection (e.g. it detects the scroll, but not
-the fact that the block cursor was cleared just before
-the scroll). In nearly all cases these transient errors
-are repaired when the true X framebuffer is consulted
-by the normal polling. But they are distracting, so
-what this option provides is extra "padding" near the
-bottom of the terminal window: a few extra lines near
-the bottom will not be scrolled, but rather updated
-from the actual X framebuffer. This usually reduces
-the annoying artifacts. Use "none" to disable.
-Default: "term"
-.PP
-\fB-scr_keyrepeat\fR \fIlo-hi\fR
-.IP
-If a key is held down (or otherwise repeats rapidly) and
-this induces a rapid sequence of scrolls (e.g. holding
-down an Arrow key) the "scrollcopyrect" detection
-and overhead may not be able to keep up. A time per
-single scroll estimate is performed and if that estimate
-predicts a sustainable scrollrate of keys per second
-between "lo" and "hi" then repeated keys will be
-DISCARDED to maintain the scrollrate. For example your
-key autorepeat may be 25 keys/sec, but for a large
-window or slow link only 8 scrolls per second can be
-sustained, then roughly 2 out of every 3 repeated keys
-will be discarded during this period. Default: "4-20"
-.PP
-\fB-scr_parms\fR \fIstring\fR
-.IP
-Set various parameters for the scrollcopyrect mode.
-The format is similar to that for \fB-wireframe\fR and packed
-with lots of parameters:
-.IP
-Format: T+B+L+R,t1+t2+t3,s1+s2+s3+s4+s5
-Default: 0+64+32+32,0.02+0.10+0.9,0.03+0.06+0.5+0.1+5.0
-.IP
-If you leave nothing between commas: ",," the default
-value is used. If you don't specify enough commas,
-the trailing parameters are set to their defaults.
-.IP
-"T+B+L+R" indicates four integers for how close in
-pixels the pointer has to be from the Top, Bottom, Left,
-or Right edges of the window to consider scrollcopyrect.
-If \fB-wireframe\fR overlaps it takes precedence. This is a
-speedup to quickly exclude a window from being watched
-for scrollcopyrect: set them all to zero to not try
-the speedup (things like selecting text will likely
-be slower).
-.IP
-"t1+t2+t3" specify three floating point times in
-seconds that apply to scrollcopyrect detection with
-*Keystroke* input: t1 is how long to wait after a key
-is pressed for the first scroll, t2 is how long to keep
-looking after a Keystroke scroll for more scrolls.
-t3 is how frequently to try to update surrounding
-scrollbars outside of the scrolling area (0.0 to
-disable)
-.IP
-"s1+s2+s3+s4+s5" specify five floating point times
-in seconds that apply to scrollcopyrect detection with
-*Mouse* input: s1 is how long to wait after a mouse
-button is pressed for the first scroll, s2 is how long
-to keep waiting for additional scrolls after the first
-Mouse scroll was detected. s3 is how frequently to
-try to update surrounding scrollbars outside of the
-scrolling area (0.0 to disable). s4 is how long to
-buffer pointer motion (to try to get fewer, bigger
-mouse scrolls). s5 is the maximum time to spend just
-updating the scroll window without updating the rest
-of the screen.
-.PP
-\fB-fixscreen\fR \fIstring\fR
-.IP
-Periodically "repair" the screen based on settings
-in \fIstring\fR. Hopefully you won't need this option,
-it is intended for cases when the \fB-scrollcopyrect\fR or
-\fB-wirecopyrect\fR features leave too many painting errors,
-but it can be used for any scenario. This option
-periodically performs costly operations and so
-interactive response may be reduced when it is on.
-You can use 3 Alt_L's (the Left "Alt" key) taps in
-a row (as described under \fB-scrollcopyrect)\fR instead to
-manually request a screen repaint when it is needed.
-.IP
-\fIstring\fR is a comma separated list of one or more of
-the following: "V=t", "C=t", "X=t", and "8=t".
-In these "t" stands for a time in seconds (it is
-a floating point even though one should usually use
-values > 2 to avoid wasting resources). V sets how
-frequently the entire screen should be sent to viewers
-(it is like the 3 Alt_L's). C sets how long to wait
-after a CopyRect to repaint the full screen. X sets
-how frequently to reread the full X11 framebuffer from
-the X server and push it out to connected viewers.
-Use of X should be rare, please report a bug if you
-find you need it. 8= applies only for \fB-8to24\fR mode: it
-sets how often the non-default visual regions of the
-screen (e.g. 8bpp windows) are refreshed. Examples:
-\fB-fixscreen\fR V=10 \fB-fixscreen\fR C=10
-.PP
-\fB-debug_scroll\fR
-.IP
-Turn on debugging info printout for the scroll
-heuristics. "\fB-ds\fR" is an alias. Specify it multiple
-times for more output.
-.PP
-\fB-noxrecord\fR
-.IP
-Disable any use of the RECORD extension. This is
-currently used by the \fB-scrollcopyrect\fR scheme and to
-monitor X server grabs.
-.PP
-\fB-grab_buster,\fR \fB-nograb_buster\fR
-.IP
-Some of the use of the RECORD extension can leave a
-tiny window for XGrabServer deadlock. This is only if
-the whole-server grabbing application expects mouse or
-keyboard input before releasing the grab. It is usually
-a window manager that does this. x11vnc takes care to
-avoid the problem, but if caught x11vnc will freeze.
-Without \fB-grab_buster,\fR the only solution is to go the
-physical display and give it some input to satisfy the
-grabbing app. Or manually kill and restart the window
-manager if that is feasible. With \fB-grab_buster,\fR x11vnc
-will fork a helper thread and if x11vnc appears to be
-stuck in a grab after a period of time (20-30 sec) then
-it will inject some user input: button clicks, Escape,
-mouse motion, etc to try to break the grab. If you
-experience a lot of grab deadlock, please report a bug.
-.PP
-\fB-debug_grabs\fR
-.IP
-Turn on debugging info printout with respect to
-XGrabServer() deadlock for \fB-scrollcopyrect__mode_.\fR
-.PP
-\fB-debug_sel\fR
-.IP
-Turn on debugging info printout with respect to
-PRIMARY, CLIPBOARD, and CUTBUFFER0 selections.
-.PP
-\fB-pointer_mode\fR \fIn\fR
-.IP
-Various pointer motion update schemes. "\fB-pm\fR" is
-an alias. The problem is pointer motion can cause
-rapid changes on the screen: consider the rapid
-changes when you drag a large window around opaquely.
-Neither x11vnc's screen polling and vnc compression
-routines nor the bandwidth to the vncviewers can keep
-up these rapid screen changes: everything will bog down
-when dragging or scrolling. So a scheme has to be used
-to "eat" much of that pointer input before re-polling
-the screen and sending out framebuffer updates. The
-mode number \fIn\fR can be 0 to 4 and selects one of
-the schemes desribed below.
-.IP
-Note that the \fB-wireframe\fR and \fB-scrollcopyrect__mode_s\fR
-complement \fB-pointer_mode\fR by detecting (and improving)
-certain periods of "rapid screen change".
-.IP
-n=0: does the same as \fB-nodragging.\fR (all screen polling
-is suspended if a mouse button is pressed.)
-.IP
-n=1: was the original scheme used to about Jan 2004:
-it basically just skips \fB-input_skip\fR keyboard or pointer
-events before repolling the screen.
-.IP
-n=2 is an improved scheme: by watching the current rate
-of input events it tries to detect if it should try to
-"eat" additional pointer events before continuing.
-.IP
-n=3 is basically a dynamic \fB-nodragging\fR mode: it detects
-when the mouse motion has paused and then refreshes
-the display.
-.IP
-n=4 attempts to measures network rates and latency,
-the video card read rate, and how many tiles have been
-changed on the screen. From this, it aggressively tries
-to push screen "frames" when it decides it has enough
-resources to do so. NOT FINISHED.
-.IP
-The default n is 2. Note that modes 2, 3, 4 will skip
-\fB-input_skip\fR keyboard events (but it will not count
-pointer events). Also note that these modes are not
-available in \fB-threads\fR mode which has its own pointer
-event handling mechanism.
-.IP
-To try out the different pointer modes to see which
-one gives the best response for your usage, it is
-convenient to use the remote control function, for
-example "x11vnc \fB-R\fR pm:4" or the tcl/tk gui (Tuning ->
-pointer_mode -> n).
-.PP
-\fB-input_skip\fR \fIn\fR
-.IP
-For the pointer handling when non-threaded: try to
-read n user input events before scanning display. n < 0
-means to act as though there is always user input.
-Default: 10
-.PP
-\fB-allinput\fR
-.IP
-Have x11vnc read and process all available client input
-before proceeding.
-.PP
-\fB-input_eagerly\fR
-.IP
-Similar to \fB-allinput\fR but use the handleEventsEagerly
-mechanism built into LibVNCServer.
-.PP
-\fB-speeds\fR \fIrd,bw,lat\fR
-.IP
-x11vnc tries to estimate some speed parameters that
-are used to optimize scheduling (e.g. \fB-pointer_mode\fR
-4, \fB-wireframe,\fR \fB-scrollcopyrect)\fR and other things.
-Use the \fB-speeds\fR option to set these manually.
-The triple \fIrd,bw,lat\fR corresponds to video h/w
-read rate in MB/sec, network bandwidth to clients in
-KB/sec, and network latency to clients in milliseconds,
-respectively. If a value is left blank, e.g. "-speeds
-,100,15", then the internal scheme is used to estimate
-the empty value(s).
-.IP
-Typical PC video cards have read rates of 5-10 MB/sec.
-If the framebuffer is in main memory instead of video
-h/w (e.g. SunRay, shadowfb, dummy driver, Xvfb), the
-read rate may be much faster. "x11perf \fB-getimage500"\fR
-can be used to get a lower bound (remember to factor
-in the bytes per pixel). It is up to you to estimate
-the network bandwith and latency to clients. For the
-latency the
-.IR ping (1)
-command can be used.
-.IP
-For convenience there are some aliases provided,
-e.g. "\fB-speeds\fR \fImodem\fR". The aliases are: "modem" for
-6,4,200; "dsl" for 6,100,50; and "lan" for 6,5000,1
-.PP
-\fB-wmdt\fR \fIstring\fR
-.IP
-For some features, e.g. \fB-wireframe\fR and \fB-scrollcopyrect,\fR
-x11vnc has to work around issues for certain window
-managers or desktops (currently kde and xfce).
-By default it tries to guess which one, but it can
-guess incorrectly. Use this option to indicate which
-wm/dt. \fIstring\fR can be "gnome", "kde", "cde",
-"xfce", or "root" (classic X wm). Anything else
-is interpreted as "root".
-.PP
-\fB-debug_pointer\fR
-.IP
-Print debugging output for every pointer event.
-.PP
-\fB-debug_keyboard\fR
-.IP
-Print debugging output for every keyboard event.
-.PP
-Same as \fB-dp\fR and \fB-dk,\fR respectively. Use multiple
-times for more output.
-.PP
-\fB-defer\fR \fItime\fR
-.IP
-Time in ms to delay sending updates to connected clients
-(deferUpdateTime) Default: 20
-.PP
-\fB-wait\fR \fItime\fR
-.IP
-Time in ms to pause between screen polls. Used to cut
-down on load. Default: 20
-.PP
-\fB-extra_fbur\fR \fIn\fR
-.IP
-Perform extra FrameBufferUpdateRequests checks to
-try to be in better sync with the client's requests.
-What this does is perform extra polls of the client
-socket at critical times (before '-defer' and '-wait'
-calls.) The default is n=1. Set to a larger number to
-insert more checks or set to n=0 to disable. A downside
-of these extra calls is that more mouse input may be
-processed than desired.
-.PP
-\fB-wait_ui\fR \fIfactor\fR
-.IP
-Factor by which to cut the \fB-wait\fR time if there
-has been recent user input (pointer or keyboard).
-Improves response, but increases the load whenever you
-are moving the mouse or typing. Default: 2.00
-.PP
-\fB-setdefer\fR \fIn\fR
-.IP
-When the \fB-wait_ui\fR mechanism cuts down the wait time ms,
-set the defer time to the same ms value. n=1 to enable,
-0 to disable, and -1 to set defer to 0 (no delay).
-Similarly, 2 and -2 indicate 'urgent_update' mode should
-be used to push the updates even sooner. Default: 1
-.PP
-\fB-nowait_bog\fR
-.IP
-Do not detect if the screen polling is "bogging down"
-and sleep more. Some activities with no user input can
-slow things down a lot: consider a large terminal window
-with a long build running in it continuously streaming
-text output. By default x11vnc will try to detect this
-(3 screen polls in a row each longer than 0.25 sec with
-no user input), and sleep up to 1.5 secs to let things
-"catch up". Use this option to disable that detection.
-.PP
-\fB-slow_fb\fR \fItime\fR
-.IP
-Floating point time in seconds to delay all screen
-polling. For special purpose usage where a low frame
-rate is acceptable and desirable, but you want the
-user input processed at the normal rate so you cannot
-use \fB-wait.\fR
-.PP
-\fB-xrefresh\fR \fItime\fR
-.IP
-Floating point time in seconds to indicate how often to
-do the equivalent of
-.IR xrefresh (1)
-to force all windows
-(in the viewable area if \fB-id,\fR \fB-sid,\fR or \fB-clip\fR is used)
-to repaint themselves. Use this only if applications
-misbehave by not repainting themselves properly.
-See also \fB-noxdamage.\fR
-.PP
-\fB-nap,\fR \fB-nonap\fR
-.IP
-Monitor activity and if it is low take longer naps
-between screen polls to really cut down load when idle.
-Default: take naps
-.PP
-\fB-sb\fR \fItime\fR
-.IP
-Time in seconds after NO activity (e.g. screen blank)
-to really throttle down the screen polls (i.e. sleep
-for about 1.5 secs). Use 0 to disable. Default: 60
-Set the env. var. X11VNC_SB_FACTOR to scale it.
-.PP
-\fB-readtimeout\fR \fIn\fR
-.IP
-Set LibVNCServer rfbMaxClientWait to n seconds. On
-slow links that take a long time to paint the first
-screen LibVNCServer may hit the timeout and drop the
-connection. Default: 20 seconds.
-.PP
-\fB-ping\fR \fIn\fR
-.IP
-Send a 1x1 framebuffer update to all clients every n
-seconds (e.g. to try to keep a network connection alive)
-.PP
-\fB-nofbpm,\fR \fB-fbpm\fR
-.IP
-If the system supports the FBPM (Frame Buffer Power
-Management) extension (i.e. some Sun systems), then
-prevent the video h/w from going into a reduced power
-state when VNC clients are connected.
-.IP
-FBPM capable video h/w save energy when the workstation
-is idle by going into low power states (similar to DPMS
-for monitors). This interferes with x11vnc's polling
-of the framebuffer data.
-.IP
-"\fB-nofbpm\fR" means prevent FBPM low power states whenever
-VNC clients are connected, while "\fB-fbpm\fR" means to not
-monitor the FBPM state at all. See the
-.IR xset (1)
-manpage
-for details. \fB-nofbpm\fR is basically the same as running
-"xset fbpm force on" periodically. Default: \fB-fbpm\fR
-.PP
-\fB-nodpms,\fR \fB-dpms\fR
-.IP
-If the system supports the DPMS (Display Power Management
-Signaling) extension, then prevent the monitor from
-going into a reduced power state when VNC clients
-are connected.
-.IP
-DPMS reduced power monitor states are a good thing
-and you normally want the power down to take place
-(usually x11vnc has no problem exporting the display in
-this state). You probably only want to use "\fB-nodpms\fR"
-to work around problems with Screen Savers kicking
-on in DPMS low power states. There is known problem
-with kdesktop_lock on KDE where the screen saver keeps
-kicking in every time user input stops for a second
-or two. Specifying "\fB-nodpms\fR" works around it.
-.IP
-"\fB-nodpms\fR" means prevent DPMS low power states whenever
-VNC clients are connected, while "\fB-dpms\fR" means to not
-monitor the DPMS state at all. See the
-.IR xset (1)
-manpage
-for details. \fB-nodpms\fR is basically the same as running
-"xset dpms force on" periodically. Default: \fB-dpms\fR
-.PP
-\fB-forcedpms\fR
-.IP
-If the system supports the DPMS (Display Power
-Management Signaling) extension, then try to keep the
-monitor in a powered off state. This is to prevent
-nosey people at the physical display from viewing what
-is on the screen. Be sure to lock the screen before
-disconnecting.
-.IP
-This method is far from bullet proof, e.g. suppose
-someone attaches a non-DPMS monitor, or loads the
-machine so that there is a gap of time before x11vnc
-restores the powered off state? On many machines if
-he floods it with keyboard and mouse input he can see
-flashes of what is on the screen before the DPMS off
-state is reestablished. For this to work securely
-there would need to be support in the X server to do
-this exactly rather than approximately with DPMS.
-.PP
-\fB-clientdpms\fR
-.IP
-As \fB-forcedpms\fR but only when VNC clients are connected.
-.PP
-\fB-noserverdpms\fR
-.IP
-The UltraVNC ServerInput extension is supported.
-This allows the VNC viewer to click a button that will
-cause the server (x11vnc) to try to disable keyboard
-and mouse input at the physical display and put the
-monitor in dpms powered off state. Use this option to
-skip powering off the monitor.
-.PP
-\fB-noultraext\fR
-.IP
-Disable the following UltraVNC extensions: SingleWindow
-and ServerInput. The others managed by LibVNCServer
-(textchat, 1/n scaling, rfbEncodingUltra) are not.
-.PP
-\fB-chatwindow\fR
-.IP
-Place a local UltraVNC chat window on the X11 display
-that x11vnc is polling. That way the person on the VNC
-viewer-side can chat with the person at the physical
-X11 console. (e.g. helpdesk w/o telephone)
-.IP
-For this to work the SSVNC package (version 1.0.21 or
-later) MUST BE installed on the system where x11vnc runs
-and the 'ssvnc' command must be available in $PATH.
-The ssvncviewer is used as a chat window helper.
-See http://www.karlrunge.com/x11vnc/ssvnc.html
-.IP
-This option implies '-rfbversion 3.6' so as to trick
-UltraVNC viewers, otherwise they assume chat is not
-available. To specify a different rfbversion, place
-it after the \fB-chatwindow\fR option on the cmdline.
-.IP
-See also the remote control 'chaton' and 'chatoff'
-actions. These can also be set from the tkx11vnc GUI.
-.PP
-\fB-noxdamage\fR
-.IP
-Do not use the X DAMAGE extension to detect framebuffer
-changes even if it is available. Use \fB-xdamage\fR if your
-default is to have it off.
-.IP
-x11vnc's use of the DAMAGE extension: 1) significantly
-reduces the load when the screen is not changing much,
-and 2) detects changed areas (small ones by default)
-more quickly.
-.IP
-Currently the DAMAGE extension is overly conservative
-and often reports large areas (e.g. a whole terminal
-or browser window) as damaged even though the actual
-changed region is much smaller (sometimes just a few
-pixels). So heuristics were introduced to skip large
-areas and use the damage rectangles only as "hints"
-for the traditional scanline polling. The following
-tuning parameters are introduced to adjust this
-behavior:
-.PP
-\fB-xd_area\fR \fIA\fR
-.IP
-Set the largest DAMAGE rectangle area \fIA\fR (in
-pixels: width * height) to trust as truly damaged:
-the rectangle will be copied from the framebuffer
-(slow) no matter what. Set to zero to trust *all*
-rectangles. Default: 20000
-.PP
-\fB-xd_mem\fR \fIf\fR
-.IP
-Set how long DAMAGE rectangles should be "remembered",
-\fIf\fR is a floating point number and is in units of the
-scanline repeat cycle time (32 iterations). The default
-(1.0) should give no painting problems. Increase it if
-there are problems or decrease it to live on the edge
-(perhaps useful on a slow machine).
-.PP
-\fB-sigpipe\fR \fIstring\fR
-.IP
-Broken pipe (SIGPIPE) handling. \fIstring\fR can be
-"ignore" or "exit". For "ignore" LibVNCServer
-will handle the abrupt loss of a client and continue,
-for "exit" x11vnc will cleanup and exit at the 1st
-broken connection.
-.IP
-This option is not really needed since LibVNCServer
-is doing the correct thing now for quite some time.
-However, for convenience you can use it to ignore other
-signals, e.g. "\fB-sigpipe\fR \fIignore:HUP,INT,TERM\fR" in case
-that would be useful for some sort of application.
-You can also put "exit:.." in the list to have x11vnc
-cleanup on the listed signals. "\fB-sig\fR" is an alias
-for this option if you don't like the 'pipe'. Example:
-\fB-sig\fR ignore:INT,TERM,exit:USR1
-.PP
-\fB-threads,\fR \fB-nothreads\fR
-.IP
-Whether or not to use the threaded LibVNCServer
-algorithm [rfbRunEventLoop] if libpthread is available.
-In this mode new threads (one for input and one
-for output) are created to handle each new client.
-Default: \fB-nothreads.\fR
-.IP
-Thread stability is much improved in version 0.9.8.
-.IP
-Multiple clients in threaded mode should be stable
-for the ZRLE encoding on all platforms. The Tight and
-Zlib encodings are currently only stable on Linux for
-multiple clients. Compile with \fB-DTLS=__thread\fR if your
-OS and compiler and linker support it.
-.IP
-For resizes (randr, etc.) set this env. var. to the number
-of milliseconds to sleep: X11VNC_THREADS_NEW_FB_SLEEP
-at various places in the do_new_fb() action. This is to
-let various activities settle. Default is about 500ms.
-.IP
-Multiple clients in threaded mode could yield better
-performance for 'class-room' broadcasting usage; also in
-\fB-appshare\fR broadcast mode. See also the \fB-reflect\fR option.
-.PP
-\fB-fs\fR \fIf\fR
-.IP
-If the fraction of changed tiles in a poll is greater
-than f, the whole screen is updated. Default: 0.75
-.PP
-\fB-gaps\fR \fIn\fR
-.IP
-Heuristic to fill in gaps in rows or cols of n or
-less tiles. Used to improve text paging. Default: 4
-.PP
-\fB-grow\fR \fIn\fR
-.IP
-Heuristic to grow islands of changed tiles n or wider
-by checking the tile near the boundary. Default: 3
-.PP
-\fB-fuzz\fR \fIn\fR
-.IP
-Tolerance in pixels to mark a tiles edges as changed.
-Default: 2
-.PP
-\fB-debug_tiles\fR
-.IP
-Print debugging output for tiles, fb updates, etc.
-.PP
-\fB-snapfb\fR
-.IP
-Instead of polling the X display framebuffer (fb)
-for changes, periodically copy all of X display fb
-into main memory and examine that copy for changes.
-(This setting also applies for non-X \fB-rawfb\fR modes).
-Under some circumstances this will improve interactive
-response, or at least make things look smoother, but in
-others (most!) it will make the response worse. If the
-video h/w fb is such that reading small tiles is very
-slow this mode could help. To keep the "framerate"
-up the screen size x bpp cannot be too large. Note that
-this mode is very wasteful of memory I/O resources
-(it makes full screen copies even if nothing changes).
-It may be of use in video capture-like applications,
-webcams, or where window tearing is a problem.
-.PP
-\fB-rawfb\fR \fIstring\fR
-.IP
-Instead of polling X, poll the memory object specified
-in \fIstring\fR.
-.IP
-For file polling, to memory map
-.IR mmap (2)
-a file use:
-"map:/path/to/a/file@WxHxB", with framebuffer Width,
-Height, and Bits per pixel. "mmap:..." is the
-same.
-.IP
-If there is trouble with mmap, use "file:/..."
-for slower
-.IR lseek (2)
-based reading.
-.IP
-Use "snap:..." to imply \fB-snapfb\fR mode and the "file:"
-access (this is for unseekable devices that only provide
-the fb all at once, e.g. a video camera provides the
-whole frame).
-.IP
-For shared memory segments string is of the form:
-"shm:N@WxHxB" which specifies a shmid N and with
-WxHxB as above. See
-.IR shmat (1)
-and
-.IR ipcs (1)
-.IP
-If you do not supply a type "map" is assumed if
-the file exists (see the next paragraphs for some
-exceptions to this.)
-.IP
-If string is "setup:cmd", then the command "cmd"
-is run and the first line from it is read and used
-as \fIstring\fR. This allows initializing the device,
-determining WxHxB, etc. These are often done as root
-so take care.
-.IP
-If the string begins with "video", see the VIDEO4LINUX
-discussion below where the device may be queried for
-(and possibly set) the framebuffer parameters.
-.IP
-If the string begins with "console", "/dev/fb",
-"fb", or "vt", see the LINUX CONSOLE discussion
-below where the framebuffer device is opened and
-keystrokes (and possibly mouse events) are inserted
-into the console.
-.IP
-If the string begins with "vnc", see the VNC HOST
-discussion below where the framebuffer is taken as that
-of another remote VNC server.
-.IP
-Optional suffixes are ":R/G/B" and "+O" to specify
-red, green, and blue masks (in hex) and an offset into
-the memory object. If the masks are not provided x11vnc
-guesses them based on the bpp (if the colors look wrong,
-you need to provide the masks.)
-.IP
-Another optional suffix is the Bytes Per Line which in
-some cases is not WxB/8. Specify it as WxHxB-BPL
-e.g. 800x600x16-2048. This could be a normal width
-1024 at 16bpp fb, but only width 800 shows up.
-.IP
-So the full format is: mode:file@WxHxB:R/G/B+O-BPL
-.IP
-Examples:
-.IP
-\fB-rawfb\fR shm:210337933@800x600x32:ff/ff00/ff0000
-.IP
-\fB-rawfb\fR map:/dev/fb0@1024x768x32
-.IP
-\fB-rawfb\fR map:/tmp/Xvfb_screen0@640x480x8+3232
-.IP
-\fB-rawfb\fR file:/tmp/my.pnm@250x200x24+37
-.IP
-\fB-rawfb\fR file:/dev/urandom@128x128x8
-\fB-rawfb\fR snap:/dev/video0@320x240x24 \fB-24to32\fR
-\fB-rawfb\fR video0
-\fB-rawfb\fR video \fB-pipeinput\fR VID
-\fB-rawfb\fR console
-\fB-rawfb\fR vt2
-\fB-rawfb\fR vnc:somehost:0
-.IP
-(see
-.IR ipcs (1)
-and
-.IR fbset (1)
-for the first two examples)
-.IP
-In general all user input is discarded by default (see
-the \fB-pipeinput\fR option for how to use a helper program
-to insert). Most of the X11 (screen, keyboard, mouse)
-options do not make sense and many will cause this
-mode to crash, so please think twice before setting or
-changing them in a running x11vnc.
-.IP
-If you DO NOT want x11vnc to close the X DISPLAY in
-rawfb mode, prepend a "+" e.g. +file:/dev/fb0...
-Keeping the display open enables the default
-remote-control channel, which could be useful.
-Alternatively, if you specify \fB-noviewonly,\fR then the
-mouse and keyboard input are STILL sent to the X
-display, this usage should be very rare, i.e. doing
-something strange with /dev/fb0.
-.IP
-If the device is not "seekable" (e.g. webcam) try
-reading it all at once in full snaps via the "snap:"
-mode (note: this is a resource hog). If you are using
-file: or map: AND the device needs to be reopened for
-*every* snapfb snapshot, set the environment variable:
-SNAPFB_RAWFB_RESET=1 as well.
-.IP
-If you want x11vnc to dynamically transform a 24bpp
-rawfb to 32bpp (note that this will be slower) also
-supply the \fB-24to32\fR option. This would be useful for,
-say, a video camera that delivers the pixel data as
-24bpp packed RGB. This is the default under "video"
-mode if the bpp is 24.
-.IP
-Normally the bits per pixel, B, is 8, 16, or 32 (or
-rarely 24), however there is also some support for
-B < 8 (e.g. old graphics displays 4 bpp or 1 bpp).
-In this case you certainly must supply the masks as
-well: WxHxB:R/G/B. The pixels will be padded out to
-8 bpp using depth 8 truecolor. The scheme currently
-does not work with snap fb (ask if interested.) B=1
-monochrome example: file:/dev/urandom@128x128x1:1/1/1
-Some other like this are 128x128x2:3/3/3 128x128x4:7/7/7
-.IP
-For B < 8 framebuffers you can also set the env. var
-RAWFB_CGA=1 to try a CGA mapping for B=4 (e.g. linux
-vga16fb driver.) Note with low bpp and/or resolution
-VGA and VGA16 modes on the Linux console one's attempt
-to export them via x11vnc can often be thwarted due to
-special color palettes, pixel packings, and even video
-painting buffering. OTOH, often experimenting with the
-RGB masks can yield something recognizable.
-.IP
-VIDEO4LINUX: on Linux some attempt is made to handle
-video devices (webcams or TV tuners) automatically.
-The idea is the WxHxB will be extracted from the
-device itself. So if you do not supply "@WxHxB...
-parameters x11vnc will try to determine them. It first
-tries the v4l API if that support has been compiled in.
-Otherwise it will run the v4l-
-.IR info (1)
-external program
-if it is available.
-.IP
-The simplest examples are "\fB-rawfb\fR \fIvideo\fR" and "-rawfb
-video1" which imply the device file /dev/video and
-/dev/video1, respectively. You can also supply the
-/dev if you like, e.g. "\fB-rawfb\fR \fI/dev/video0\fR"
-.IP
-Since the video capture device framebuffer usually
-changes continuously (e.g. brightness fluctuations),
-you may want to use the \fB-wait,\fR \fB-slow_fb,\fR or \fB-defer\fR
-options to lower the "framerate" to cut down on
-network VNC traffic.
-.IP
-A more sophisticated video device scheme allows
-initializing the device's settings using:
-.IP
-\fB-rawfb\fR video:<settings>
-.IP
-The prefix could also be, as above, e.g. "video1:" to
-specify the device file. The v4l API must be available
-for this to work. Otherwise, you will need to try
-to initialize the device with an external program,
-e.g. xawtv, spcaview, and hope they persist when x11vnc
-re-opens the device.
-.IP
-<settings> is a comma separated list of key=value pairs.
-The device's brightness, color, contrast, and hue can
-be set to percentages, e.g. br=80,co=50,cn=44,hu=60.
-.IP
-The device filename can be set too if needed (if it
-does not start with "video"), e.g. fn=/dev/qcam.
-.IP
-The width, height and bpp of the framebuffer can be
-set via, e.g., w=160,h=120,bpp=16.
-.IP
-Related to the bpp above, the pixel format can be set
-via the fmt=XXX, where XXX can be one of: GREY, HI240,
-RGB555, RGB565, RGB24, and RGB32 (with bpp 8, 8, 16, 16,
-24, and 32 respectively). See http://www.linuxtv.org
-for more info (V4L api).
-.IP
-For TV/rf tuner cards one can set the tuning mode
-via tun=XXX where XXX can be one of PAL, NTSC, SECAM,
-or AUTO.
-.IP
-One can switch the input channel by the inp=XXX setting,
-where XXX is the name of the input channel (Television,
-Composite1, S-Video, etc). Use the name that is in the
-information about the device that is printed at startup.
-.IP
-For input channels with tuners (e.g. Television) one
-can change which station is selected by the sta=XXX
-setting. XXX is the station number. Currently only
-the ntsc-cable-us (US cable) channels are built into
-x11vnc. See the \fB-freqtab\fR option below to supply one
-from xawtv. If XXX is greater than 500, then it is
-interpreted as a raw frequency in KHz.
-.IP
-Example:
-.IP
-\fB-rawfb\fR video:br=80,w=320,h=240,fmt=RGB32,tun=NTSC,sta=47
-.IP
-one might need to add inp=Television too for the input
-channel to be TV if the card doesn't come up by default
-in that one.
-.IP
-Note that not all video capture devices will support
-all of the above settings.
-.IP
-See the \fB-pipeinput\fR VID option below for a way to control
-the settings through the VNC Viewer via keystrokes.
-As a shortcut, if the string begins "Video.." instead
-of "video.." then \fB-pipeinput\fR VID is implied.
-.IP
-As above, if you specify a "@WxHxB..." after the
-<settings> string they are used verbatim: the device
-is not queried for the current values. Otherwise the
-device will be queried.
-.IP
-LINUX CONSOLE: The following describes some ways to
-view and possibly interact with the Linux text/graphics
-console (i.e. not X11 XFree86/Xorg)
-.IP
-Note: If the LibVNCServer LinuxVNC program is on your
-system you may want to use that instead of the following
-method because it will be faster and more accurate
-for the Linux text console and includes mouse support.
-There is, however, the basic LinuxVNC functionality in
-x11vnc if you replace "console" with "vt" in the
-examples below.
-.IP
-If the rawfb string begins with "console" the
-framebuffer device /dev/fb0 is opened and /dev/tty0 is
-opened too. The latter is used to inject keystrokes
-(not all are supported, but the basic ones are).
-You will need to be root to inject keystrokes, but
-not necessarily to open /dev/fb0. /dev/tty0 refers to
-the active VT, to indicate one explicitly, use, e.g.,
-"console2" for /dev/tty2, etc. by indicating the
-specific VT number.
-.IP
-For the Linux framebuffer device, /dev/fb0, (fb1,
-etc) to be enabled the appropriate kernel drivers must
-be loaded. E.g. vesafb or vga16fb and also by setting
-the boot parameter vga=0x301 (or 0x314, 0x317, etc.)
-(The vga=... method is the preferred way; set your
-machines up that way.) Otherwise there will be a
-\'No such device' error. You can also load a Linux
-framebuffer driver specific to your make of video card
-for more functionality. Once the machine is booted one
-can often 'modprobe' the fb driver as root to obtain
-a framebuffer device.
-.IP
-If you cannot get /dev/fb0 working on Linux, try
-using the LinuxVNC emulation mode by "\fB-rawfb\fR \fIvtN\fR"
-where N = 1, ... 6 is the Linux Virtual Terminal (aka
-virtual console) you wish to view, e.g. "\fB-rawfb\fR \fIvt2\fR".
-Unlike /dev/fb mode, it need not be the active Virtual
-Terminal. Note that this mode can only show text and
-not graphics. x11vnc polls the text in /dev/vcsaN
-.IP
-Set the env. var. RAWFB_VCSA_BW=1 to disable colors in
-the "vtN" mode (i.e. black and white only.) If you
-do not prefer the default 16bpp set RAWFB_VCSA_BPP to
-8 or 32. If you need to tweak the rawfb parameters by
-using the 'console_guess' string printed at startup,
-be sure to indicate the snap: method.
-.IP
-uinput: If the Linux version appears to be 2.6
-or later and the "uinput" module appears to be
-present (modprobe uinput), then the uinput method
-will be used instead of /dev/ttyN. uinput allows
-insertion of BOTH keystrokes and mouse input and so it
-preferred when accessing graphical (e.g. QT-embedded)
-linux console apps. It also provides more accurate
-keystroke insertion. See \fB-pipeinput\fR UINPUT below for
-more information on this mode; you will have to use
-\fB-pipeinput\fR if you want to tweak any UINPUT parameters.
-You may also want to also use the \fB-nodragging\fR and
-\fB-cursor\fR none options. Use "console0", etc or
-\fB-pipeinput\fR CONSOLE to force the /dev/ttyN method.
-.IP
-Note you can change the Linux VT remotely using the
-.IR chvt (1)
-command to make the one you want be the active
-one (e.g. 'chvt 3'). Sometimes switching out and back
-corrects the framebuffer's graphics state. For the
-"\fB-rawfb\fR \fIvtN\fR" mode there is no need to switch the VT's.
-.IP
-To skip input injecting entirely use "consolex"
-or "vtx".
-.IP
-The string "/dev/fb0" (1, etc.) can be used instead
-of "console". This can be used to specify a different
-framebuffer device, e.g. /dev/fb1. As a shortcut the
-"/dev/" can be dropped. If the name is something
-nonstandard, use "console:/dev/foofb"
-.IP
-If you do not want x11vnc to guess the framebuffer's
-WxHxB and masks automatically (sometimes the kernel
-gives incorrect information), specify them with a @WxHxB
-(and optional :R/G/B masks) at the end of the string.
-.IP
-Examples:
-\fB-rawfb\fR console
-\fB-rawfb\fR /dev/fb0 (same)
-\fB-rawfb\fR console3 (force /dev/tty3)
-\fB-rawfb\fR consolex (no keystrokes or mouse)
-\fB-rawfb\fR console:/dev/nonstd
-\fB-rawfb\fR console \fB-pipeinput\fR UINPUT:accel=4.0
-\fB-rawfb\fR vt3 (/dev/tty3 w/o /dev/fb0)
-.IP
-VNC HOST: if the \fB-rawfb\fR string is of the form
-"vnc:host:N" then the VNC display "N" on the remote
-VNC server "host" is connected to (i.e. x11vnc acts as
-a VNC client itself) and that framebuffer is exported.
-.IP
-This mode is really only of use if you are trying
-to improve performance in the case of many (e.g. >
-10) simultaneous VNC viewers, and you try a divide
-and conquer scheme to reduce bandwidth and improve
-responsiveness. (However, another user found this mode
-useful to export a demo display through a slow link:
-then multiple demo viewers connected to the reflecting
-x11vnc on the fast side of the link, and so avoided
-all of the demo viewers going through the slow link.)
-.IP
-For example, if there will be 64 simultaneous VNC
-viewers this can lead to a lot of redundant VNC traffic
-to and from the server host:N, extra CPU usage,
-and all viewers response can be reduced by having
-to wait for writes to the slowest client to finish.
-However, if you set up 8 reflectors/repeaters started
-with option \fB-rawfb\fR vnc:host:N, then there are only
-8 connections to host:N. Each repeater then handles
-8 vnc viewer connections thereby spreading the load
-around. In classroom broadcast usage, try to put the
-repeaters on different switches. This mode is the same
-as \fB-reflect\fR host:N. Replace "host:N" by "listen"
-or "listen:port" for a reverse connection.
-.IP
-Overall performance will not be as good as a single
-direct connection because, among other things,
-there is an additional level of framebuffer polling
-and pointer motion can still induce many changes per
-second that must be propagated. Tip: if the remote VNC
-is x11vnc doing wireframing, or an X display that does
-wireframing that gives much better response than opaque
-window dragging. Consider the \fB-nodragging\fR option if
-the problem is severe.
-.IP
-The env. var. X11VNC_REFLECT_PASSWORD can be set to
-the password needed to log into the vnc host server, or
-to "file:path_to_file" to indicate a file containing
-the password as its first line.
-.IP
-To set the pixel format that x11vnc requests as a VNC
-CLIENT set the env. vars: X11VNC_REFLECT_bitsPerSample
-X11VNC_REFLECT_samplesPerPixel, and
-X11VNC_REFLECT_bytesPerPixel; the defaults are 8, 3, 4.
-2, 3, 1 would give a low color mode. See the function
-rfbGetClient() in libvncclient for more info.
-.IP
-The VNC HOST mode implies \fB-shared.\fR Use \fB-noshared\fR as
-a subsequent cmdline option to disable sharing.
-.PP
-\fB-freqtab\fR \fIfile\fR
-.IP
-For use with "\fB-rawfb\fR \fIvideo\fR" for TV tuner devices to
-specify station frequencies. Instead of using the built
-in ntsc-cable-us mapping of station number to frequency,
-use the data in file. For stations that are not
-numeric, e.g. SE20, they are placed above the highest
-numbered station in the order they are found. Example:
-"\fB-freqtab\fR \fI/usr/X11R6/share/xawtv/europe-west.list\fR"
-You can make your own freqtab by copying the xawtv
-format.
-.PP
-\fB-pipeinput\fR \fIcmd\fR
-.IP
-This option lets you supply an external command in
-\fIcmd\fR that x11vnc will pipe all of the user input
-events to in a simple format. In \fB-pipeinput\fR mode by
-default x11vnc will not process any of the user input
-events. If you prefix \fIcmd\fR with "tee:" it will
-both send them to the pipe command and process them.
-For a description of the format run "-pipeinput
-tee:/bin/cat". Another prefix is "reopen" which
-means to reopen pipe if it exits. Separate multiple
-prefixes with commas.
-.IP
-In combination with \fB-rawfb\fR one might be able to
-do amusing things (e.g. control non-X devices).
-To facilitate this, if \fB-rawfb\fR is in effect then the
-value is stored in X11VNC_RAWFB_STR for the pipe command
-to use if it wants. Do 'env | grep X11VNC' for more.
-.IP
-Built-in pipeinput modes (no external program required):
-.IP
-If cmd is "VID" and you are using the \fB-rawfb\fR for a
-video capture device, then an internal list of keyboard
-mappings is used to set parameters of the video.
-The mappings are:
-.IP
-"B" and "b" adjust the brightness up and down.
-"H" and "h" adjust the hue.
-"C" and "c" adjust the colour.
-"N" and "n" adjust the contrast.
-"S" and "s" adjust the size of the capture screen.
-"I" and "i" cycle through input channels.
-Up and Down arrows adjust the station (if a tuner)
-F1, F2, ..., F6 will switch the video capture pixel
-format to HI240, RGB565, RGB24, RGB32, RGB555, and
-GREY respectively. See \fB-rawfb\fR video for details.
-.IP
-If cmd is "CONSOLE" or "CONSOLEn" where n
-is a Linux console number, then the linux console
-keystroke insertion to /dev/ttyN (see \fB-rawfb\fR console)
-is performed.
-.IP
-If cmd begins with "UINPUT" then the Linux uinput
-module is used to insert both keystroke and mouse events
-to the Linux console (see \fB-rawfb\fR above). This usually
-is the /dev/input/uinput device file (you may need to
-create it with "mknod /dev/input/uinput c 10 223"
-and insert the module with "modprobe uinput".
-.IP
-The UINPUT mode currently only does US keyboards (a
-scan code option may be added), and not all keysyms
-are supported. But it is probably more accurate than
-the "CONSOLE" method.
-.IP
-You may want to use the options \fB-cursor\fR none and
-\fB-nodragging\fR in this mode.
-.IP
-Additional tuning options may be supplied via:
-UINPUT:opt1,opt2,... (a comma separated list). If an
-option begins with "/" it is taken as the uinput
-device file.
-.IP
-Which uinput is injected can be controlled by an option
-string made of the characters "K", "M", and "B"
-(see the \fB-input\fR option), e.g. "KM" allows keystroke
-and motion but not button clicks.
-.IP
-A UINPUT option of the form: accel=f, or accel=fx+fy
-sets the mouse motion "acceleration". This is used
-to correct raw mouse relative motion into how much the
-application cursor moves (x11vnc has no control over,
-or knowledge of how the windowing application interprets
-the raw mouse motions). Typically the acceleration
-for an X display is 2 (see xset "m" option). "f"
-is a floating point number, e.g. 3.0. Use "fx+fy"
-if you need to supply different corrections for x and y.
-.IP
-Note: the default acceleration is 2.0 since it seems
-both X and qt-embedded often (but not always) use
-this value.
-.IP
-Even with a correct accel setting the mouse position
-will get out of sync (probably due to a mouse
-"threshold" setting where the acceleration doe not
-apply, set
-.IR xset (1)
-). The option reset=N sets the
-number of ms (default 150) after which the cursor is
-attempted to be reset (by forcing the mouse to (0,
-0) via small increments and then back out to (x, y)
-in 1 jump), This correction seems to be needed but can
-cause jerkiness or unexpected behavior with menus, etc.
-Use reset=0 to disable.
-.IP
-If you set the env. var X11VNC_UINPUT_THRESHOLDS then
-the thresh=n mode will be enabled. It is currently
-not working well. If |dx| <= thresh and |dy| < thresh
-no acceleration is applied. Use "thresh=+n" |dx| +
-|dy| < thresh to be used instead (X11?)
-.IP
-Example:
-\fB-pipeinput\fR UINPUT:accel=4.0 \fB-cursor\fR none
-.IP
-If the uinput device has an absolute pointer (as opposed
-to a normal mouse that is a relative pointer) you can
-specify the option "abs". Note that a touchpad
-on a laptop is an absolute device to some degree.
-This (usually) avoids all the problems with mouse
-acceleration. If x11vnc has trouble deducing the
-size of the device, use "abs=WxH". Furthermore,
-if the device is a touchscreen (assumed to have an
-absolute pointer) use "touch" or "touch=WxH".
-For touchscreens, when a mouse button is pressed,
-a pressure increase is injected, and when the button
-is released a pressure of zero is injected.
-.IP
-If touch has been set, use "touch_always=1" to
-indicate whenever the mouse moves with no button
-pressed, a touch event of zero pressure should be
-sent anyway. Also use "btn_touch=1" to indicate a
-BTN_TOUCH keystroke press or release should be sent
-instead of a pressure change. Set "dragskip=n" to
-skip n dragged mouse touches (with pressure applied)
-before injecting one. To indicate the pressure that
-should be sent when there is a button click for a
-touchscreen device, specify pressure=n, e.g. n=5. The
-default is n=1.
-.IP
-If a touch screen is being used ("touch" above)
-and it is having its input processed by tslib, you can
-specify the tslib calibration file via tslib_cal=<file>.
-For example, tslib_cal=/etc/pointercal. To get accurate
-or even usable positioning this is required when tslib
-is in use.
-.IP
-The Linux uinput mechanism can be bypassed and one can
-write input events DIRECTLY to the devices instead.
-To do this, specify one or more of the following
-for the input classes: direct_rel=<device>
-direct_abs=<device> direct_btn=<device> or
-direct_key=<device>. The <device> file is usually
-something like /dev/input/event1 but you can specify
-any device file or pipe. You must specify each one
-of the above classes even if they correspond to the
-same device file (rel/abs and btn are often the same.)
-Look at the file /proc/bus/input/devices to get an idea
-what is available and the device filenames. Note:
-The /dev/input/mouse* devices do not seem to work,
-use the corresponding /dev/input/event* file instead.
-Any input class not directly specified as above will be
-handled via the uinput mechanism. To disable creating a
-uinput device (and thereby discarding unhandled input),
-specify "nouinput".
-.IP
-Examples:
-.IP
-\fB-pipeinput\fR UINPUT:direct_abs=/dev/input/event1
-.IP
-this was used on a qtmoko Neo freerunner (armel):
-.IP
-\fB-pipeinput\fR UINPUT:touch,tslib_cal=/etc/pointercal,
-direct_abs=/dev/input/event1,nouinput,dragskip=4
-.IP
-(where the long line has been split into two.)
-.IP
-You can set the env. var X11VNC_UINPUT_DEBUG=1 or higher
-to get debugging output for UINPUT mode.
-.PP
-\fB-macnodim\fR
-.IP
-For the native MacOSX server, disable dimming.
-.PP
-\fB-macnosleep\fR
-.IP
-For the native MacOSX server, disable display sleep.
-.PP
-\fB-macnosaver\fR
-.IP
-For the native MacOSX server, disable screensaver.
-.PP
-\fB-macnowait\fR
-.IP
-For the native MacOSX server, do not wait for the
-user to switch back to his display.
-.PP
-\fB-macwheel\fR \fIn\fR
-.IP
-For the native MacOSX server, set the mouse wheel
-speed to n (default 5).
-.PP
-\fB-macnoswap\fR
-.IP
-For the native MacOSX server, do not swap mouse
-buttons 2 and 3.
-.PP
-\fB-macnoresize\fR
-.IP
-For the native MacOSX server, do not resize or reset
-the framebuffer even if it is detected that the screen
-resolution or depth has changed.
-.PP
-\fB-maciconanim\fR \fIn\fR
-.IP
-For the native MacOSX server, set n to the number
-of milliseconds that the window iconify/deiconify
-animation takes. In \fB-ncache\fR mode this value will be
-used to skip the animation if possible. (default 400)
-.PP
-\fB-macmenu\fR
-.IP
-For the native MacOSX server, in \fB-ncache\fR client-side
-caching mode, try to cache pull down menus (not perfect
-because they have animated fades, etc.)
-.PP
-\fB-macuskbd\fR
-.IP
-For the native MacOSX server, use the original
-keystroke insertion code based on a US keyboard.
-.PP
-\fB-macnoopengl\fR
-.IP
-For the native MacOSX server, do not use OpenGL for
-screen capture, but rather use the original, deprecated
-raw memory access method: addr = CGDisplayBaseAddress().
-.PP
-\fB-macnorawfb\fR
-.IP
-For the native MacOSX server, disable the raw memory
-address screen capture method.
-.IP
-MACOSX NOTE: There are some deprecated MacOSX interfaces
-to inject keyboard and mouse events and the raw memory
-access method is deprecated as well (however, OpenGL
-will be preferred if available because it is faster.)
-One can force not using any deprecated interfaces at
-compile time by setting \fB-DX11VNC_MACOSX_NO_DEPRECATED=1\fR
-in CPPFLAGS. Or to turn them off one by one:
-\fB-DX11VNC_MACOSX_NO_DEPRECATED_LOCALEVENTS=1,\fR
-\fB-DX11VNC_MACOSX_NO_DEPRECATED_POSTEVENTS=1\fR or
-\fB-DX11VNC_MACOSX_NO_DEPRECATED_FRAMEBUFFER=1\fR
-At run time, for testing and workarounds, one can
-disable them by using:
-\fB-env\fR X11VNC_MACOSX_NO_DEPRECATED=1
-\fB-env\fR X11VNC_MACOSX_NO_DEPRECATED_LOCALEVENTS=1
-\fB-env\fR X11VNC_MACOSX_NO_DEPRECATED_POSTEVENTS=1 or
-\fB-env\fR X11VNC_MACOSX_NO_DEPRECATED_FRAMEBUFFER=1
-Note: When doing either of these for the mouse input
-not everything works currently, e.g. double clicks and
-wireframing. Also, screen resolution and pixel depth
-changes will not be automatically detected unless the
-deprecated framebuffer interfaces are allowed.
-.IP
-Conversely, if you are compiling on an
-older machine that does not have some of
-the newer interfaces, you may need to specify
-\fB-DX11VNC_MACOSX_NO_CGEVENTCREATESCROLLWHEELEVENT\fR
-\fB-DX11VNC_MACOSX_NO_CGEVENTCREATEMOUSEEVENT\fR or
-\fB-DX11VNC_MACOSX_NO_CGEVENTCREATEKEYBOARDEVENT.\fR Use
-\fB-DX11VNC_MACOSX_USE_GETMAINDEVICE\fR to regain the very
-old QuickDraw GetMainDevice() interface (rare...)
-.PP
-\fB-gui\fR \fI[gui-opts]\fR
-.IP
-Start up a simple tcl/tk gui based on the remote
-control options \fB-remote/-query\fR described below.
-Requires the "wish" program to be installed on the
-machine. "gui-opts" is not required: the default
-is to start up both the full gui and x11vnc with the
-gui showing up on the X display in the environment
-variable DISPLAY.
-.IP
-"gui-opts" can be a comma separated list of items.
-Currently there are these types of items: 1) a gui
-mode, a 2) gui "simplicity", 3) the X display the
-gui should display on, 4) a "tray" or "icon" mode,
-and 5) a gui geometry.
-.IP
-1) The gui mode can be "start", "conn", or "wait"
-"start" is the default mode above and is not required.
-"conn" means do not automatically start up x11vnc,
-but instead just try to connect to an existing x11vnc
-process. "wait" means just start the gui and nothing
-else (you will later instruct the gui to start x11vnc
-or connect to an existing one.)
-.IP
-2) The gui simplicity is off by default (a power-user
-gui with all options is presented) To start with
-something less daunting supply the string "simple"
-("ez" is an alias for this). Once the gui is
-started you can toggle between the two with "Misc ->
-simple_gui".
-.IP
-3) Note the possible confusion regarding the potentially
-two different X displays: x11vnc polls one, but you
-may want the gui to appear on another. For example, if
-you ssh in and x11vnc is not running yet you may want
-the gui to come back to you via your ssh redirected X
-display (e.g. localhost:10).
-.IP
-If you do not specify a gui X display in "gui-opts"
-then the DISPLAY environment variable and \fB-display\fR
-option are tried (in that order). Regarding the x11vnc
-X display the gui will try to communication with, it
-first tries \fB-display\fR and then DISPLAY. For example,
-"x11vnc \fB-display\fR :0 \fB-gui\fR otherhost:0", will remote
-control an x11vnc polling :0 and display the gui on
-otherhost:0 The "tray/icon" mode below reverses this
-preference, preferring to display on the x11vnc display.
-.IP
-4) When "tray" or "icon" is specified, the gui
-presents itself as a small icon with behavior typical
-of a "system tray" or "dock applet". The color
-of the icon indicates status (connected clients) and
-there is also a balloon status. Clicking on the icon
-gives a menu from which properties, etc, can be set and
-the full gui is available under "Advanced". To be
-fully functional, the gui mode should be "start"
-(the default).
-.IP
-Note that tray or icon mode will imply the \fB-forever\fR
-x11vnc option (if the x11vnc server is started along
-with the gui) unless \fB-connect\fR or \fB-connect_or_exit\fR has
-been specified. So x11vnc (and the tray/icon gui)
-will wait for more connections after the first client
-disconnects. If you want only one viewer connection
-include the \fB-once\fR option.
-.IP
-For "icon" the gui just a small standalone window.
-For "tray" it will attempt to embed itself in the
-"system tray" if possible. If "=setpass" is appended then
-at startup the X11 user will be prompted to set the
-VNC session password. If =<hexnumber> is appended
-that icon will attempt to embed itself in the window
-given by hexnumber. Use =noadvanced to disable the
-full gui. (To supply more than one, use "+" sign).
-E.g. \fB-gui\fR tray=setpass and \fB-gui\fR icon=0x3600028
-.IP
-Other modes: "full", the default and need not be
-specified. "\fB-gui\fR \fInone\fR", do not show a gui, useful
-to override a ~/.x11vncrc setting, etc.
-.IP
-5) When "geom=+X+Y" is specified, that geometry
-is passed to the gui toplevel. This is the icon in
-icon/tray mode, or the full gui otherwise. You can
-also specify width and height, i.e. WxH+X+Y, but it
-is not recommended. In "tray" mode the geometry is
-ignored unless the system tray manager does not seem
-to be running. One could imagine using something like
-"\fB-gui\fR \fItray,geom=+4000+4000\fR" with a display manager
-to keep the gui invisible until someone logs in...
-.IP
-More icon tricks, "icon=minimal" gives an icon just
-with the VNC display number. You can also set the font
-with "iconfont=...". The following could be useful:
-"\fB-gui\fR \fIicon=minimal,iconfont=5x8,geom=24x10+0-0\fR"
-.IP
-General examples of the \fB-gui\fR option: "x11vnc \fB-gui",\fR
-"x11vnc \fB-gui\fR ez" "x11vnc \fB-gui\fR localhost:10",
-"x11vnc \fB-gui\fR conn,host:0", "x11vnc \fB-gui\fR tray,ez"
-"x11vnc \fB-gui\fR tray=setpass"
-.IP
-If you do not intend to start x11vnc from the gui
-(i.e. just remote control an existing one), then the
-gui process can run on a different machine from the
-x11vnc server as long as X permissions, etc. permit
-communication between the two.
-.IP
-FONTS: On some systems the tk fonts can be too small,
-jagged, or otherwise unreadable. There are 4 env vars
-you can set to be the tk font you prefer:
-.IP
-X11VNC_FONT_BOLD main font for menus and buttons.
-X11VNC_FONT_FIXED font for fixed width text.
-.IP
-X11VNC_FONT_BOLD_SMALL tray icon font.
-X11VNC_FONT_REG_SMALL tray icon menu font.
-.IP
-The last two only apply for the tray icon mode.
-.IP
-Here are some examples:
-.IP
-\fB-env\fR X11VNC_FONT_BOLD='Helvetica \fB-16\fR bold'
-\fB-env\fR X11VNC_FONT_FIXED='Courier \fB-14'\fR
-\fB-env\fR X11VNC_FONT_REG_SMALL='Helvetica \fB-12'\fR
-.IP
-You can put the lines like the above (without the
-quotes) in your ~/.x11vncrc file to avoid having to
-specify them on the x11vnc command line.
-.PP
-\fB-remote\fR \fIcommand\fR
-.IP
-Remotely control some aspects of an already running
-x11vnc server. "\fB-R\fR" and "\fB-r\fR" are aliases for
-"\fB-remote\fR". After the remote control command is
-sent to the running server the 'x11vnc \fB-remote\fR ...'
-x11vnc command exits. You can often use the \fB-query\fR
-command (see below) to see if the x11vnc server
-processed your \fB-remote\fR command.
-.IP
-The default communication channel is that of X
-properties (specifically X11VNC_REMOTE), and so this
-command must be run with correct settings for DISPLAY
-and possibly XAUTHORITY to connect to the X server
-and set the property. Alternatively, use the \fB-display\fR
-and \fB-auth\fR options to set them to the correct values.
-The running server cannot use the \fB-novncconnect\fR option
-because that disables the communication channel.
-See below for alternate channels.
-.IP
-For example: 'x11vnc \fB-remote\fR stop' (which is the same as
-\'x11vnc \fB-R\fR stop') will close down the x11vnc server.
-\'x11vnc \fB-R\fR shared' will enable shared connections, and
-\'x11vnc \fB-R\fR scale:3/4' will rescale the desktop.
-.IP
-To use a different name for the X11 property (e.g. to
-have separate communication channels for multiple
-x11vnc's on the same display) set the X11VNC_REMOTE
-environment variable to the string you want, for
-example: \fB-env\fR X11VNC_REMOTE=X11VNC_REMOTE_12345
-Both sides of the channel must use the same unique name.
-.IP
-To run a bunch of commands in a sequence use something
-like: x11vnc \fB-R\fR 'script:firstcmd;secondcmd;...'
-.IP
-Use x11vnc \fB-R\fR script:file=/path/to/file to read commands
-from a file (can be multi-line and use the comment '#'
-character in the normal way. The ';' separator must
-still be used to separate each command.)
-.IP
-To not try to contact another x11vnc process and instead
-just run the command (or query) directly, prefix the
-command with the string "DIRECT:"
-.IP
-.IP
-The following \fB-remote/-R\fR commands are supported:
-.IP
-stop terminate the server, same as "quit"
-"exit" or "shutdown".
-.IP
-ping see if the x11vnc server responds.
-return is: ans=ping:<display>
-.IP
-ping:mystring as above, but use your own unique string.
-return is: ans=ping:mystring:<xdisplay>
-.IP
-blacken try to push a black fb update to all
-clients (due to timings a client
-could miss it). Same as "zero", also
-"zero:x1,y1,x2,y2" for a rectangle.
-.IP
-refresh send the entire fb to all clients.
-.IP
-reset recreate the fb, polling memory, etc.
-.IP
-id:windowid set \fB-id\fR window to "windowid". empty
-or "root" to go back to root window
-.IP
-sid:windowid set \fB-sid\fR window to "windowid"
-.IP
-id_cmd:cmd cmds: raise, lower, map, unmap, iconify,
-move:dXdY, resize:dWdH, geom:WxH+X+Y. dX
-dY, dW, and dH must have a leading "+"
-or "-" e.g.: move:-30+10 resize:+20+35
-also: wm_delete, wm_name:string and
-icon_name:string. Also id_cmd:win=N:cmd
-.IP
-waitmapped wait until subwin is mapped.
-.IP
-nowaitmapped do not wait until subwin is mapped.
-.IP
-clip:WxH+X+Y set \fB-clip\fR mode to "WxH+X+Y"
-.IP
-flashcmap enable \fB-flashcmap\fR mode.
-.IP
-noflashcmap disable \fB-flashcmap\fR mode.
-.IP
-shiftcmap:n set \fB-shiftcmap\fR to n.
-.IP
-notruecolor enable \fB-notruecolor\fR mode.
-.IP
-truecolor disable \fB-notruecolor\fR mode.
-.IP
-overlay enable \fB-overlay\fR mode (if applicable).
-.IP
-nooverlay disable \fB-overlay\fR mode.
-.IP
-overlay_cursor in \fB-overlay\fR mode, enable cursor drawing.
-.IP
-overlay_nocursor disable cursor drawing. same as
-nooverlay_cursor.
-.IP
-8to24 enable \fB-8to24\fR mode (if applicable).
-.IP
-no8to24 disable \fB-8to24\fR mode.
-.IP
-8to24_opts:str set the \fB-8to24\fR opts to "str".
-.IP
-24to32 enable \fB-24to32\fR mode (if applicable).
-.IP
-no24to32 disable \fB-24to32\fR mode.
-.IP
-visual:vis set \fB-visual\fR to "vis"
-.IP
-scale:frac set \fB-scale\fR to "frac"
-.IP
-scale_cursor:f set \fB-scale_cursor\fR to "f"
-.IP
-viewonly enable \fB-viewonly\fR mode.
-.IP
-noviewonly disable \fB-viewonly\fR mode.
-.IP
-shared enable \fB-shared\fR mode.
-.IP
-noshared disable \fB-shared\fR mode.
-.IP
-forever enable \fB-forever\fR mode.
-.IP
-noforever disable \fB-forever\fR mode.
-.IP
-timeout:n reset \fB-timeout\fR to n, if there are
-currently no clients, exit unless one
-connects in the next n secs.
-.IP
-tightfilexfer enable filetransfer for NEW clients.
-.IP
-notightfilexfer disable filetransfer for NEW clients.
-.IP
-ultrafilexfer enable filetransfer for clients.
-.IP
-noultrafilexfer disable filetransfer for clients.
-.IP
-rfbversion:n.m set \fB-rfbversion\fR for new clients.
-.IP
-http enable http client connections.
-.IP
-nohttp disable http client connections.
-.IP
-deny deny any new connections, same as "lock"
-.IP
-nodeny allow new connections, same as "unlock"
-.IP
-avahi enable avahi service advertising.
-.IP
-noavahi disable avahi service advertising.
-.IP
-mdns enable avahi service advertising.
-.IP
-nomdns disable avahi service advertising.
-.IP
-zeroconf enable avahi service advertising.
-.IP
-nozeroconf disable avahi service advertising.
-.IP
-connect:host do reverse connection to host, "host"
-may be a comma separated list of hosts
-or host:ports. See \fB-connect.\fR Passwords
-required as with fwd connections.
-See X11VNC_REVERSE_CONNECTION_NO_AUTH=1
-.IP
-disconnect:host disconnect any clients from "host"
-same as "close:host". Use host
-"all" to close all current clients.
-If you know the client internal hex ID,
-e.g. 0x3 (returned by "\fB-query\fR \fIclients\fR"
-and RFB_CLIENT_ID) you can use that too.
-.IP
-proxy:host:port set reverse connection proxy (empty to
-disable).
-.IP
-allowonce:host For the next connection only, allow
-connection from "host". In \fB-ssl\fR mode
-two connections are allowed (i.e. Fetch
-Cert) unless X11VNC_NO_SSL_ALLOW_TWICE=1
-.IP
-allow:hostlist set \fB-allow\fR list to (comma separated)
-"hostlist". See \fB-allow\fR and \fB-localhost.\fR
-Do not use with \fB-allow\fR /path/to/file
-Use "+host" to add a single host, and
-use "\fB-host\fR" to delete a single host
-.IP
-localhost enable \fB-localhost\fR mode
-.IP
-nolocalhost disable \fB-localhost\fR mode
-.IP
-listen:str set \fB-listen\fR to str, empty to disable.
-.IP
-noipv6 enable \fB-noipv6\fR mode.
-.IP
-ipv6 disable \fB-noipv6\fR mode.
-.IP
-noipv4 enable \fB-noipv4\fR mode.
-.IP
-ipv4 disable \fB-noipv4\fR mode.
-.IP
-6 enable -6 IPv6 listening mode.
-.IP
-no6 disable -6 IPv6 listening mode.
-.IP
-lookup disable \fB-nolookup\fR mode.
-.IP
-nolookup enable \fB-nolookup\fR mode.
-.IP
-lookup disable \fB-nolookup\fR mode.
-.IP
-input:str set \fB-input\fR to "str", empty to disable.
-.IP
-grabkbd enable \fB-grabkbd\fR mode.
-.IP
-nograbkbd disable \fB-grabkbd\fR mode.
-.IP
-grabptr enable \fB-grabptr\fR mode.
-.IP
-nograbptr disable \fB-grabptr\fR mode.
-.IP
-grabalways enable \fB-grabalways\fR mode.
-.IP
-nograbalways disable \fB-grabalways\fR mode.
-.IP
-grablocal:n set \fB-grablocal\fR to n.
-.IP
-client_input:str set the K, M, B \fB-input\fR on a per-client
-basis. select which client as for
-disconnect, e.g. client_input:host:MB
-or client_input:0x2:K
-.IP
-accept:cmd set \fB-accept\fR "cmd" (empty to disable).
-.IP
-afteraccept:cmd set \fB-afteraccept\fR (empty to disable).
-.IP
-gone:cmd set \fB-gone\fR "cmd" (empty to disable).
-.IP
-noshm enable \fB-noshm\fR mode.
-.IP
-shm disable \fB-noshm\fR mode (i.e. use shm).
-.IP
-flipbyteorder enable \fB-flipbyteorder\fR mode, you may need
-to set noshm for this to do something.
-.IP
-noflipbyteorder disable \fB-flipbyteorder\fR mode.
-.IP
-onetile enable \fB-onetile\fR mode. (you may need to
-set shm for this to do something)
-.IP
-noonetile disable \fB-onetile\fR mode.
-.IP
-solid enable \fB-solid\fR mode
-.IP
-nosolid disable \fB-solid\fR mode.
-.IP
-solid_color:color set \fB-solid\fR color (and apply it).
-.IP
-blackout:str set \fB-blackout\fR "str" (empty to disable).
-See \fB-blackout\fR for the form of "str"
-(basically: WxH+X+Y,...)
-Use "+WxH+X+Y" to append a single
-rectangle use "-WxH+X+Y" to delete one
-.IP
-xinerama enable \fB-xinerama\fR mode. (if applicable)
-.IP
-noxinerama disable \fB-xinerama\fR mode.
-.IP
-xtrap enable \fB-xtrap\fR input mode(if applicable)
-.IP
-noxtrap disable \fB-xtrap\fR input mode.
-.IP
-xrandr enable \fB-xrandr\fR mode. (if applicable)
-.IP
-noxrandr disable \fB-xrandr\fR mode.
-.IP
-xrandr_mode:mode set the \fB-xrandr\fR mode to "mode".
-.IP
-rotate:mode set the \fB-rotate\fR mode to "mode".
-.IP
-padgeom:WxH set \fB-padgeom\fR to WxH (empty to disable)
-If WxH is "force" or "do" the padded
-geometry fb is immediately applied.
-.IP
-quiet enable \fB-quiet\fR mode.
-.IP
-noquiet disable \fB-quiet\fR mode.
-.IP
-modtweak enable \fB-modtweak\fR mode.
-.IP
-nomodtweak enable \fB-nomodtweak\fR mode.
-.IP
-xkb enable \fB-xkb\fR modtweak mode.
-.IP
-noxkb disable \fB-xkb\fR modtweak mode.
-.IP
-capslock enable \fB-capslock\fR mode.
-.IP
-nocapslock disable \fB-capslock\fR mode.
-.IP
-skip_lockkeys enable \fB-skip_lockkeys\fR mode.
-.IP
-noskip_lockkeys disable \fB-skip_lockkeys\fR mode.
-.IP
-skip_keycodes:str enable \fB-xkb\fR \fB-skip_keycodes\fR "str".
-.IP
-sloppy_keys enable \fB-sloppy_keys\fR mode.
-.IP
-nosloppy_keys disable \fB-sloppy_keys\fR mode.
-.IP
-skip_dups enable \fB-skip_dups\fR mode.
-.IP
-noskip_dups disable \fB-skip_dups\fR mode.
-.IP
-add_keysyms enable \fB-add_keysyms\fR mode.
-.IP
-noadd_keysyms stop adding keysyms. those added will
-still be removed at exit.
-.IP
-clear_mods enable \fB-clear_mods\fR mode and clear them.
-.IP
-noclear_mods disable \fB-clear_mods\fR mode.
-.IP
-clear_keys enable \fB-clear_keys\fR mode and clear them.
-.IP
-noclear_keys disable \fB-clear_keys\fR mode.
-.IP
-clear_locks do the clear_locks action.
-.IP
-clear_all do the clear_all action.
-.IP
-keystate have x11vnc print current keystate.
-.IP
-remap:str set \fB-remap\fR "str" (empty to disable).
-See \fB-remap\fR for the form of "str"
-(basically: key1-key2,key3-key4,...)
-Use "+key1-key2" to append a single
-keymapping, use "-key1-key2" to delete.
-.IP
-norepeat enable \fB-norepeat\fR mode.
-.IP
-repeat disable \fB-norepeat\fR mode.
-.IP
-nofb enable \fB-nofb\fR mode.
-.IP
-fb disable \fB-nofb\fR mode.
-.IP
-bell enable bell (if supported).
-.IP
-nobell disable bell.
-.IP
-sendbell ring the bell now.
-.IP
-nosel enable \fB-nosel\fR mode.
-.IP
-sel disable \fB-nosel\fR mode.
-.IP
-noprimary enable \fB-noprimary\fR mode.
-.IP
-primary disable \fB-noprimary\fR mode.
-.IP
-nosetprimary enable \fB-nosetprimary\fR mode.
-.IP
-setprimary disable \fB-nosetprimary\fR mode.
-.IP
-noclipboard enable \fB-noclipboard\fR mode.
-.IP
-clipboard disable \fB-noclipboard\fR mode.
-.IP
-nosetclipboard enable \fB-nosetclipboard\fR mode.
-.IP
-setclipboard disable \fB-nosetclipboard\fR mode.
-.IP
-seldir:str set \fB-seldir\fR to "str"
-.IP
-resend_cutbuffer resend the most recent CUTBUFFER0 copy
-.IP
-resend_clipboard resend the most recent CLIPBOARD copy
-.IP
-resend_primary resend the most recent PRIMARY copy
-.IP
-cursor:mode enable \fB-cursor\fR "mode".
-.IP
-show_cursor enable showing a cursor.
-.IP
-noshow_cursor disable showing a cursor. (same as
-"nocursor")
-.IP
-cursor_drag enable cursor changes during drag.
-.IP
-nocursor_drag disable cursor changes during drag.
-.IP
-arrow:n set \fB-arrow\fR to alternate n.
-.IP
-xfixes enable xfixes cursor shape mode.
-.IP
-noxfixes disable xfixes cursor shape mode.
-.IP
-alphacut:n set \fB-alphacut\fR to n.
-.IP
-alphafrac:f set \fB-alphafrac\fR to f.
-.IP
-alpharemove enable \fB-alpharemove\fR mode.
-.IP
-noalpharemove disable \fB-alpharemove\fR mode.
-.IP
-alphablend disable \fB-noalphablend\fR mode.
-.IP
-noalphablend enable \fB-noalphablend\fR mode.
-.IP
-cursorshape disable \fB-nocursorshape\fR mode.
-.IP
-nocursorshape enable \fB-nocursorshape\fR mode.
-.IP
-cursorpos disable \fB-nocursorpos\fR mode.
-.IP
-nocursorpos enable \fB-nocursorpos\fR mode.
-.IP
-xwarp enable \fB-xwarppointer\fR mode.
-.IP
-noxwarp disable \fB-xwarppointer\fR mode.
-.IP
-always_inject enable \fB-always_inject\fR mode.
-.IP
-noalways_inject disable \fB-always_inject\fR mode.
-.IP
-buttonmap:str set \fB-buttonmap\fR "str", empty to disable
-.IP
-dragging disable \fB-nodragging\fR mode.
-.IP
-nodragging enable \fB-nodragging\fR mode.
-.IP
-ncache reenable \fB-ncache\fR mode.
-.IP
-noncache disable \fB-ncache\fR mode.
-.IP
-ncache_size:n set \fB-ncache\fR size to n.
-.IP
-ncache_cr enable \fB-ncache_cr\fR mode.
-.IP
-noncache_cr disable \fB-ncache_cr\fR mode.
-.IP
-ncache_no_moveraise enable no_moveraise mode.
-.IP
-noncache_no_moveraise disable no_moveraise mode.
-.IP
-ncache_no_dtchange enable ncache_no_dtchange mode.
-.IP
-noncache_no_dtchange disable ncache_no_dtchange mode.
-.IP
-ncache_old_wm enable ncache_old_wm mode.
-.IP
-noncache_old_wm disable ncache_old_wm mode.
-.IP
-ncache_no_rootpixmap enable ncache_no_rootpixmap.
-.IP
-noncache_no_rootpixmap disable ncache_no_rootpixmap.
-.IP
-ncache_reset_rootpixmap recheck the root pixmap, ncrp
-.IP
-ncache_keep_anims enable ncache_keep_anims.
-.IP
-noncache_keep_anims disable ncache_keep_anims.
-.IP
-ncache_pad:n set \fB-ncache_pad\fR to n.
-.IP
-wireframe enable \fB-wireframe\fR mode. same as "wf"
-.IP
-nowireframe disable \fB-wireframe\fR mode. same as "nowf"
-.IP
-wireframe:str enable \fB-wireframe\fR mode string.
-.IP
-wireframe_mode:str enable \fB-wireframe\fR mode string.
-.IP
-wireframelocal enable wireframelocal. same as "wfl"
-.IP
-nowireframe disable wireframelocal. same as "nowfl"
-.IP
-wirecopyrect:str set \fB-wirecopyrect\fR string. same as "wcr:"
-.IP
-scrollcopyrect:str set \fB-scrollcopyrect\fR string. same "scr"
-.IP
-noscrollcopyrect disable \fB-scrollcopyrect__mode_.\fR "noscr"
-.IP
-scr_area:n set \fB-scr_area\fR to n
-.IP
-scr_skip:list set \fB-scr_skip\fR to "list"
-.IP
-scr_inc:list set \fB-scr_inc\fR to "list"
-.IP
-scr_keys:list set \fB-scr_keys\fR to "list"
-.IP
-scr_term:list set \fB-scr_term\fR to "list"
-.IP
-scr_keyrepeat:str set \fB-scr_keyrepeat\fR to "str"
-.IP
-scr_parms:str set \fB-scr_parms\fR parameters.
-.IP
-fixscreen:str set \fB-fixscreen\fR to "str".
-.IP
-noxrecord disable all use of RECORD extension.
-.IP
-xrecord enable use of RECORD extension.
-.IP
-reset_record reset RECORD extension (if avail.)
-.IP
-pointer_mode:n set \fB-pointer_mode\fR to n. same as "pm"
-.IP
-input_skip:n set \fB-input_skip\fR to n.
-.IP
-allinput enable use of \fB-allinput\fR mode.
-.IP
-noallinput disable use of \fB-allinput\fR mode.
-.IP
-input_eagerly enable use of \fB-input_eagerly\fR mode.
-.IP
-noinput_eagerly disable use of \fB-input_eagerly\fR mode.
-.IP
-ssltimeout:n set \fB-ssltimeout\fR to n.
-.IP
-speeds:str set \fB-speeds\fR to str.
-.IP
-wmdt:str set \fB-wmdt\fR to str.
-.IP
-debug_pointer enable \fB-debug_pointer,\fR same as "dp"
-.IP
-nodebug_pointer disable \fB-debug_pointer,\fR same as "nodp"
-.IP
-debug_keyboard enable \fB-debug_keyboard,\fR same as "dk"
-.IP
-nodebug_keyboard disable \fB-debug_keyboard,\fR same as "nodk"
-.IP
-keycode:n inject keystroke 'keycode' (xmodmap \fB-pk)\fR
-.IP
-keycode:n,down inject 'keycode' (down=0,1)
-.IP
-keysym:str inject keystroke 'keysym' (number/name)
-.IP
-keysym:str,down inject 'keysym' (down=0,1)
-.IP
-ptr:x,y,mask inject pointer event x, y, button-mask
-.IP
-fakebuttonevent:button,down direct XTestFakeButtonEvent.
-.IP
-sleep:t sleep floating point time t.
-.IP
-get_xprop:p get X property named 'p'.
-.IP
-set_xprop:p:val set X property named 'p' to 'val'.
-p -> id=NNN:p for hex/dec window id.
-.IP
-wininfo:id get info about X window id. use 'root'
-for root window, use +id for children.
-.IP
-grab_state get state of pointer and keyboard grab.
-.IP
-pointer_pos print XQueryPointer x,y cursor position.
-.IP
-pointer_x print XQueryPointer x cursor position.
-.IP
-pointer_y print XQueryPointer y cursor position.
-.IP
-pointer_same print XQueryPointer ptr on same screen.
-.IP
-pointer_root print XQueryPointer curr ptr rootwin.
-.IP
-pointer_mask print XQueryPointer button and mods mask
-.IP
-mouse_x print x11vnc's idea of cursor position.
-.IP
-mouse_y print x11vnc's idea of cursor position.
-.IP
-noop do nothing.
-.IP
-defer:n set \fB-defer\fR to n ms,same as deferupdate:n
-.IP
-wait:n set \fB-wait\fR to n ms.
-.IP
-extra_fbur:n set \fB-extra_fbur\fR to n.
-.IP
-wait_ui:f set \fB-wait_ui\fR factor to f.
-.IP
-setdefer:n set \fB-setdefer\fR to \fB-2,-1,0,1,\fR or 2.
-.IP
-wait_bog disable \fB-nowait_bog\fR mode.
-.IP
-nowait_bog enable \fB-nowait_bog\fR mode.
-.IP
-slow_fb:f set \fB-slow_fb\fR to f seconds.
-.IP
-xrefresh:f set \fB-xrefresh\fR to f seconds.
-.IP
-readtimeout:n set read timeout to n seconds.
-.IP
-nap enable \fB-nap\fR mode.
-.IP
-nonap disable \fB-nap\fR mode.
-.IP
-sb:n set \fB-sb\fR to n s, same as screen_blank:n
-.IP
-fbpm disable \fB-nofbpm\fR mode.
-.IP
-nofbpm enable \fB-nofbpm\fR mode.
-.IP
-dpms disable \fB-nodpms\fR mode.
-.IP
-nodpms enable \fB-nodpms\fR mode.
-.IP
-forcedpms enable \fB-forcedpms\fR mode.
-.IP
-noforcedpms disable \fB-forcedpms\fR mode.
-.IP
-clientdpms enable \fB-clientdpms\fR mode.
-.IP
-noclientdpms disable \fB-clientdpms\fR mode.
-.IP
-noserverdpms enable \fB-noserverdpms\fR mode.
-.IP
-serverdpms disable \fB-noserverdpms\fR mode.
-.IP
-noultraext enable \fB-noultraext\fR mode.
-.IP
-ultraext disable \fB-noultraext\fR mode.
-.IP
-chatwindow enable local chatwindow mode.
-.IP
-nochatwindow disable local chatwindow mode.
-.IP
-chaton begin chat using local window.
-.IP
-chatoff end chat using local window.
-.IP
-xdamage enable xdamage polling hints.
-.IP
-noxdamage disable xdamage polling hints.
-.IP
-xd_area:A set \fB-xd_area\fR max pixel area to "A"
-.IP
-xd_mem:f set \fB-xd_mem\fR remembrance to "f"
-.IP
-fs:frac set \fB-fs\fR fraction to "frac", e.g. 0.5
-.IP
-gaps:n set \fB-gaps\fR to n.
-.IP
-grow:n set \fB-grow\fR to n.
-.IP
-fuzz:n set \fB-fuzz\fR to n.
-.IP
-snapfb enable \fB-snapfb\fR mode.
-.IP
-nosnapfb disable \fB-snapfb\fR mode.
-.IP
-rawfb:str set \fB-rawfb\fR mode to "str".
-.IP
-uinput_accel:f set uinput_accel to f.
-.IP
-uinput_thresh:n set uinput_thresh to n.
-.IP
-uinput_reset:n set uinput_reset to n ms.
-.IP
-uinput_always:n set uinput_always to 1/0.
-.IP
-progressive:n set LibVNCServer \fB-progressive\fR slice
-height parameter to n.
-.IP
-desktop:str set \fB-desktop\fR name to str for new clients.
-.IP
-rfbport:n set \fB-rfbport\fR to n.
-.IP
-macnosaver enable \fB-macnosaver\fR mode.
-.IP
-macsaver disable \fB-macnosaver\fR mode.
-.IP
-macnowait enable \fB-macnowait\fR mode.
-.IP
-macwait disable \fB-macnowait\fR mode.
-.IP
-macwheel:n set \fB-macwheel\fR to n.
-.IP
-macnoswap enable \fB-macnoswap\fR mouse button mode.
-.IP
-macswap disable \fB-macnoswap\fR mouse button mode.
-.IP
-macnoresize enable \fB-macnoresize\fR mode.
-.IP
-macresize disable \fB-macnoresize\fR mode.
-.IP
-maciconanim:n set \fB-maciconanim\fR to n.
-.IP
-macmenu enable \fB-macmenu\fR mode.
-.IP
-macnomenu disable \fB-macmenu\fR mode.
-.IP
-macuskbd enable \fB-macuskbd\fR mode.
-.IP
-macnouskbd disable \fB-macuskbd\fR mode.
-.IP
-httpport:n set \fB-httpport\fR to n.
-.IP
-httpdir:dir set \fB-httpdir\fR to dir (and enable http).
-.IP
-enablehttpproxy enable \fB-enablehttpproxy\fR mode.
-.IP
-noenablehttpproxy disable \fB-enablehttpproxy\fR mode.
-.IP
-alwaysshared enable \fB-alwaysshared\fR mode.
-.IP
-noalwaysshared disable \fB-alwaysshared\fR mode.
-(may interfere with other options)
-.IP
-nevershared enable \fB-nevershared\fR mode.
-.IP
-nonevershared disable \fB-nevershared\fR mode.
-(may interfere with other options)
-.IP
-dontdisconnect enable \fB-dontdisconnect\fR mode.
-.IP
-nodontdisconnect disable \fB-dontdisconnect\fR mode.
-(may interfere with other options)
-.IP
-debug_xevents enable debugging X events.
-.IP
-nodebug_xevents disable debugging X events.
-.IP
-debug_xdamage enable debugging X DAMAGE mechanism.
-.IP
-nodebug_xdamage disable debugging X DAMAGE mechanism.
-.IP
-debug_wireframe enable debugging wireframe mechanism.
-.IP
-nodebug_wireframe disable debugging wireframe mechanism.
-.IP
-debug_scroll enable debugging scrollcopy mechanism.
-.IP
-nodebug_scroll disable debugging scrollcopy mechanism.
-.IP
-debug_tiles enable \fB-debug_tiles\fR
-.IP
-nodebug_tiles disable \fB-debug_tiles\fR
-.IP
-debug_grabs enable \fB-debug_grabs\fR
-.IP
-nodebug_grabs disable \fB-debug_grabs\fR
-.IP
-debug_sel enable \fB-debug_sel\fR
-.IP
-nodebug_sel disable \fB-debug_sel\fR
-.IP
-debug_ncache enable \fB-debug_ncache\fR
-.IP
-nodebug_ncache disable \fB-debug_ncache\fR
-.IP
-dbg enable \fB-dbg\fR crash shell
-.IP
-nodbg disable \fB-dbg\fR crash shell
-.IP
-.IP
-noremote disable the \fB-remote\fR command processing,
-it cannot be turned back on.
-.IP
-.IP
-bcx_xattach:str This remote control command is for
-use with the BARCO xattach program or the x2x program.
-Both of these programs are for 'pointer and keyboard'
-sharing between separate X displays. In general the
-two displays are usually nearby, e.g. on the same desk,
-and this allows the user to share a single pointer and
-keyboard between them. The user moves the mouse to
-an edge and then the mouse pointer appears to 'jump'
-to the other display screen. Thus it emulates what a
-single X server would do for two screens (e.g. :0.0 and
-:0.1) The illusion of a single Xserver with multiple
-screens is achieved by forwarding events to the 2nd
-one via the XTEST extension.
-.IP
-What the x11vnc bcx_xattach command does is to perform
-some pointer movements to try to INDUCE xattach/x2x
-to 'jump' to the other display. In what follows the
-\'master' display refers to the one that when it has
-\'focus' it is basically doing nothing besides watching
-for the mouse to go over an edge. The 'slave'
-display refers to the one to which the mouse and
-keyboard is redirected to once an edge in the master
-has been crossed. Note that the x11vnc executing the
-bcx_xattach command MUST be the one connected to the
-*master* display.
-.IP
-Also note that when input is being redirected (via
-XTEST) from the master display to the slave display,
-the master display's pointer and keyboard are *grabbed*
-by xattach/x2x. x11vnc can use this info to verify that
-the master/slave mode change has taken place correctly.
-If you specify the "ifneeded" option (see below)
-and the initial grab state is that of the desired
-final state, then no pointer movements are injected
-and "DONE,GRAB_OK" is returned.
-.IP
-"str" must contain one of "up", "down", "left",
-or "right" to indicate the direction of the 'jump'.
-"str" must also contain one of "master_to_slave"
-or "slave_to_master" to indicate the type of mode
-change induced by the jump. Use "M2S" and "S2M"
-as shorter aliases.
-.IP
-"str" may be a "+" separated list of additional
-tuning options. The "shift=n" option indicates an
-offset shift position away from (0,0) (default 20).
-"final=x+y" specifies the final position of the cursor
-at the end of the normal move sequence; default 30+30.
-"extra_move=x+y" means to do one more pointer move
-after "final" to x+y. "dt=n" sets the sleep time
-in milliseconds between pointer moves (default: 40ms)
-"retry=n" specifies the maximum number of retries if
-the grab state change fails. "ifneeded" means to not
-apply the pointer movements if the initial grab state is
-that of the desired final state. "nograbcheck" means
-to not check if the grab state changed as expected and
-only apply the pointer movements (default is to check
-the grab states.)
-.IP
-If you do not specify "up", etc., to bcx_xattach
-nothing will be attempted and the command returns
-the string FAIL,NO_DIRECTION_SPECIFIED. If you do
-not specify "master_to_slave" or "M2S", etc., to
-bcx_xattach nothing will be attempted and the command
-returns the string FAIL,NO_MODE_CHANGE_SPECIFIED.
-.IP
-Otherwise, the returned string will contain "DONE".
-It will be "DONE,GRAB_OK" if the grab state changed
-as expected (or if "ifneeded" was supplied and
-the initial grab state was already the desired
-one.) If the initial grab state was incorrect,
-but the final grab state was correct then it is
-"DONE,GRAB_FAIL_INIT". If the initial grab state
-was correct, but the final grab state was incorrect
-then it is "DONE,GRAB_FAIL_FINAL". If both are
-incorrect it will be "DONE,GRAB_FAIL". Under grab
-failure the string will be followed by ":p1,k1-p2,k2"
-where p1,k1 indicates the initial pointer and keyboard
-grab states and p2,k2 the final ones. If GRAB_FAIL or
-GRAB_FAIL_FINAL occurs, the action will be retried up
-to 3 times; trying to reset the state and sleeping a
-bit between each try. Set retry=n to adjust the number
-of retries, zero to disable retries.
-.IP
-Examples:
-\fB-R\fR bcx_xattach:down+M2S
-\fB-R\fR bcx_xattach:up+S2M
-\fB-R\fR bcx_xattach:up+S2M+nograbcheck+dt=30
-\fB-R\fR bcx_xattach:down+M2S+extra_move=100+100
-.IP
-or use \fB-Q\fR instead of \fB-R\fR to retrieve the result text.
-.IP
-End of the bcx_xattach:str description.
-.IP
-The
-.IR vncconnect (1)
-command from standard VNC
-distributions may also be used if string is prefixed
-with "cmd=" E.g. 'vncconnect cmd=stop'. Under some
-circumstances
-.IR xprop (1)
-can used if it supports \fB-set\fR
-(see the FAQ).
-.IP
-If "\fB-connect\fR \fI/path/to/file\fR" has been supplied to the
-running x11vnc server then that file can be used as a
-communication channel (this is the only way to remote
-control one of many x11vnc's polling the same X display)
-Simply run: 'x11vnc \fB-connect\fR /path/to/file \fB-remote\fR ...'
-or you can directly write to the file via something
-like: "echo cmd=stop > /path/to/file", etc.
-.PP
-\fB-query\fR \fIvariable\fR
-.IP
-Like \fB-remote,\fR except just query the value of
-\fIvariable\fR. "\fB-Q\fR" is an alias for "\fB-query\fR".
-Multiple queries can be done by separating variables
-by commas, e.g. \fB-query\fR var1,var2. The results come
-back in the form ans=var1:value1,ans=var2:value2,...
-to the standard output. If a variable is read-only,
-it comes back with prefix "aro=" instead of "ans=".
-.IP
-Some \fB-remote\fR commands are pure actions that do not make
-sense as variables, e.g. "stop" or "disconnect", in
-these cases the value returned is "N/A". To direct a
-query straight to the X11VNC_REMOTE property or connect
-file use "qry=..." instead of "cmd=..."
-.IP
-ans= stop quit exit shutdown ping resend_cutbuffer
-resend_clipboard resend_primary blacken zero refresh
-reset close disconnect id_cmd id sid waitmapped
-nowaitmapped clip flashcmap noflashcmap shiftcmap
-truecolor notruecolor overlay nooverlay overlay_cursor
-overlay_yescursor nooverlay_nocursor nooverlay_cursor
-nooverlay_yescursor overlay_nocursor 8to24 no8to24
-8to24_opts 24to32 no24to32 visual scale scale_cursor
-viewonly noviewonly shared noshared forever noforever
-once timeout tightfilexfer notightfilexfer ultrafilexfer
-noultrafilexfer rfbversion deny lock nodeny unlock avahi
-mdns zeroconf noavahi nomdns nozeroconf connect proxy
-allowonce allow noipv6 ipv6 noipv4 ipv4 no6 6 localhost
-nolocalhost listen lookup nolookup accept afteraccept
-gone shm noshm flipbyteorder noflipbyteorder onetile
-noonetile solid_color solid nosolid blackout xinerama
-noxinerama xtrap noxtrap xrandr noxrandr xrandr_mode
-rotate padgeom quiet q noquiet modtweak nomodtweak xkb
-noxkb capslock nocapslock skip_lockkeys noskip_lockkeys
-skip_keycodes sloppy_keys nosloppy_keys skip_dups
-noskip_dups add_keysyms noadd_keysyms clear_mods
-noclear_mods clear_keys noclear_keys clear_all
-clear_locks keystate remap repeat norepeat fb nofb bell
-nobell sendbell sel nosel primary noprimary setprimary
-nosetprimary clipboard noclipboard setclipboard
-nosetclipboard seldir cursorshape nocursorshape
-cursorpos nocursorpos cursor_drag nocursor_drag cursor
-show_cursor noshow_cursor nocursor arrow xfixes noxfixes
-xdamage noxdamage xd_area xd_mem alphacut alphafrac
-alpharemove noalpharemove alphablend noalphablend
-xwarppointer xwarp noxwarppointer noxwarp always_inject
-noalways_inject buttonmap dragging nodragging ncache_cr
-noncache_cr ncache_no_moveraise noncache_no_moveraise
-ncache_no_dtchange noncache_no_dtchange
-ncache_no_rootpixmap noncache_no_rootpixmap
-ncache_reset_rootpixmap ncrp ncache_keep_anims
-noncache_keep_anims ncache_old_wm noncache_old_wm
-ncache_pad ncache noncache ncache_size debug_ncache
-nodebug_ncache wireframe_mode wireframe wf nowireframe
-nowf wireframelocal wfl nowireframelocal nowfl
-wirecopyrect wcr nowirecopyrect nowcr scr_area
-scr_skip scr_inc scr_keys scr_term scr_keyrepeat
-scr_parms scrollcopyrect scr noscrollcopyrect
-noscr fixscreen noxrecord xrecord reset_record
-pointer_mode pm input_skip allinput noallinput
-input_eagerly noinput_eagerly input grabkbd nograbkbd
-grabptr nograbptr grabalways nograbalways grablocal
-client_input ssltimeout speeds wmdt debug_pointer dp
-nodebug_pointer nodp debug_keyboard dk nodebug_keyboard
-nodk keycode keysym ptr fakebuttonevent sleep get_xprop
-set_xprop wininfo bcx_xattach deferupdate defer
-setdefer extra_fbur wait_ui wait_bog nowait_bog
-slow_fb xrefresh wait readtimeout nap nonap sb
-screen_blank fbpm nofbpm dpms nodpms clientdpms
-noclientdpms forcedpms noforcedpms noserverdpms
-serverdpms noultraext ultraext chatwindow nochatwindow
-chaton chatoff fs gaps grow fuzz snapfb nosnapfb
-rawfb uinput_accel uinput_thresh uinput_reset
-uinput_always progressive rfbport http nohttp httpport
-httpdir enablehttpproxy noenablehttpproxy alwaysshared
-noalwaysshared nevershared noalwaysshared dontdisconnect
-nodontdisconnect desktop debug_xevents nodebug_xevents
-debug_xevents debug_xdamage nodebug_xdamage
-debug_xdamage debug_wireframe nodebug_wireframe
-debug_wireframe debug_scroll nodebug_scroll debug_scroll
-debug_tiles dbt nodebug_tiles nodbt debug_tiles
-debug_grabs nodebug_grabs debug_sel nodebug_sel dbg
-nodbg macnosaver macsaver nomacnosaver macnowait macwait
-nomacnowait macwheel macnoswap macswap nomacnoswap
-macnoresize macresize nomacnoresize maciconanim macmenu
-macnomenu nomacmenu macuskbd nomacuskbd noremote
-.IP
-aro= noop display vncdisplay icon_mode autoport
-loop loopbg desktopname guess_desktop guess_dbus
-http_url auth xauth users rootshift clipshift scale_str
-scaled_x scaled_y scale_numer scale_denom scale_fac_x
-scale_fac_y scaling_blend scaling_nomult4 scaling_pad
-scaling_interpolate inetd privremote unsafe safer nocmds
-passwdfile unixpw unixpw_nis unixpw_list ssl ssl_pem
-sslverify stunnel stunnel_pem https httpsredir usepw
-using_shm logfile o flag rmflag rc norc h help V version
-lastmod bg sigpipe threads readrate netrate netlatency
-pipeinput clients client_count pid ext_xtest ext_xtrap
-ext_xrecord ext_xkb ext_xshm ext_xinerama ext_overlay
-ext_xfixes ext_xdamage ext_xrandr rootwin num_buttons
-button_mask mouse_x mouse_y grab_state pointer_pos
-pointer_x pointer_y pointer_same pointer_root
-pointer_mask bpp depth indexed_color dpy_x dpy_y wdpy_x
-wdpy_y off_x off_y cdpy_x cdpy_y coff_x coff_y rfbauth
-passwd viewpasswd
-.PP
-\fB-QD\fR \fIvariable\fR
-.IP
-Just like \fB-query\fR variable, but returns the default
-value for that parameter (no running x11vnc server
-is consulted)
-.PP
-\fB-sync\fR
-.IP
-By default \fB-remote\fR commands are run asynchronously, that
-is, the request is posted and the program immediately
-exits. Use \fB-sync\fR to have the program wait for an
-acknowledgement from the x11vnc server that command was
-processed (somehow). On the other hand \fB-query\fR requests
-are always processed synchronously because they have
-to wait for the answer.
-.IP
-Also note that if both \fB-remote\fR and \fB-query\fR requests are
-supplied on the command line, the \fB-remote\fR is processed
-first (synchronously: no need for \fB-sync),\fR and then
-the \fB-query\fR request is processed in the normal way.
-This allows for a reliable way to see if the \fB-remote\fR
-command was processed by querying for any new settings.
-Note however that there is timeout of a few seconds
-(see the next paragraph) so if the x11vnc takes longer
-than that to process the requests the requester will
-think that a failure has taken place.
-.IP
-The default is to wait 3.5 seconds. Or if cmd=stop
-only 1.0 seconds. If cmd matches 'script:' then it
-will wait up to 10.0 seconds. Set X11VNC_SYNC_TIMEOUT
-to the number of seconds you want it to wait.
-.PP
-\fB-query_retries\fR \fIstr\fR
-.IP
-If a query fails to get a response from an x11vnc
-server, retry up to n times. \fIstr\fR is specified as
-n[:t][/match] Optionally the delay between tries may
-be specified by "t" a floating point time (default
-0.5 seconds.) Note: the response is not checked for
-validity or whether it corresponds to the query sent.
-The query "ping:mystring" may be used to help uniquely
-identify the query. Optionally, a matching string after
-a "/" will be used to check the result text. Up to
-n retries will take place until the matching string is
-found in the output text. If the match string is never
-found the program's exit code is 1; if the match is
-found it exits with 0. Note that there may be stdout
-printed for each retry (i.e. multiple lines printed
-out to stdout.)
-Example: \fB-query_retries\fR 4:1.5/grab_state
-.PP
-\fB-remote_prefix\fR \fIstr\fR
-.IP
-Enable a remote-control communication channel for
-connected VNC clients. str is a non-empty string. If a
-VNC client sends rfbCutText having the prefix \fIstr\fR
-then the part after it is processed as though it were
-sent via 'x11vnc \fB-remote\fR ...'. If it begins with
-neither 'cmd=' nor 'qry=' then 'qry=' is assumed.
-Any corresponding output text for that remote control
-command is sent back to all client as rfbCutText.
-The returned output is also prefixed with \fIstr\fR.
-Example: \fB-remote_prefix\fR DO_THIS:
-.IP
-Note that enabling \fB-remote_prefix\fR allows the remote
-VNC viewers to run x11vnc \fB-remote\fR commands. Do not
-use this option if they are not to be trusted.
-.PP
-\fB-noremote,\fR \fB-yesremote\fR
-.IP
-Do not process any remote control commands or queries.
-Do process remote control commands or queries.
-Default: \fB-yesremote\fR
-.IP
-A note about security wrt remote control commands.
-If someone can connect to the X display and change
-the property X11VNC_REMOTE, then they can remotely
-control x11vnc. Normally access to the X display is
-protected. Note that if they can modify X11VNC_REMOTE
-on the X server, they have enough permissions to also
-run their own x11vnc and thus have complete control
-of the desktop. If the "\fB-connect\fR \fI/path/to/file\fR"
-channel is being used, obviously anyone who can write
-to /path/to/file can remotely control x11vnc. So be
-sure to protect the X display and that file's write
-permissions. See \fB-privremote\fR below.
-.IP
-If you are paranoid and do not think \fB-noremote\fR is
-enough, to disable the X11VNC_REMOTE property channel
-completely use \fB-novncconnect,\fR or use the \fB-safer\fR option
-that shuts many things off.
-.PP
-\fB-unsafe\fR
-.IP
-A few remote commands are disabled by default
-(currently: id:pick, accept:<cmd>, gone:<cmd>, and
-rawfb:setup:<cmd>) because they are associated with
-running external programs. If you specify \fB-unsafe,\fR then
-these remote-control commands are allowed. Note that
-you can still specify these parameters on the command
-line, they just cannot be invoked via remote-control.
-.PP
-\fB-safer\fR
-.IP
-Equivalent to: \fB-novncconnect\fR \fB-noremote\fR and prohibiting
-\fB-gui\fR and the \fB-connect\fR file. Shuts off communcation
-channels.
-.PP
-\fB-privremote\fR
-.IP
-Perform some sanity checks and disable remote-control
-commands if it appears that the X DISPLAY and/or
-connectfile can be accessed by other users. Once
-remote-control is disabled it cannot be turned back on.
-.PP
-\fB-nocmds\fR
-.IP
-No external commands (e.g.
-.IR system (3)
-,
-.IR popen (3)
-,
-.IR exec (3)
-)
-will be run at all.
-.PP
-\fB-allowedcmds\fR \fIlist\fR
-.IP
-\fIlist\fR contains a comma separated list of the only
-external commands that can be run. The full list of
-associated options is:
-.IP
-stunnel, ssl, unixpw, WAIT, zeroconf, id, accept,
-afteraccept, gone, pipeinput, v4l-info, rawfb-setup,
-dt, gui, ssh, storepasswd, passwdfile, custom_passwd,
-findauth, crash.
-.IP
-See each option's help to learn the associated external
-command. Note that the \fB-nocmds\fR option takes precedence
-and disables all external commands.
-.PP
-\fB-deny_all\fR
-.IP
-For use with \fB-remote\fR nodeny: start out denying all
-incoming clients until "\fB-remote\fR \fInodeny\fR" is used to
-let them in.
-.PP
-These options are passed to LibVNCServer:
-.PP
-\fB-rfbport\fR \fIport\fR
-.IP
-TCP port for RFB protocol
-.PP
-\fB-rfbwait\fR \fItime\fR
-.IP
-max time in ms to wait for RFB client
-.PP
-\fB-rfbauth\fR \fIpasswd-file\fR
-.IP
-use authentication on RFB protocol
-(use 'x11vnc \fB-storepasswd\fR pass file' to create a password file)
-.PP
-\fB-rfbversion\fR \fI3.x\fR
-.IP
-Set the version of the RFB we choose to advertise
-.PP
-\fB-permitfiletransfer\fR
-.IP
-permit file transfer support
-.PP
-\fB-passwd\fR \fIplain-password\fR
-.IP
-use authentication
-(use plain-password as password, USE AT YOUR RISK)
-.PP
-\fB-deferupdate\fR \fItime\fR
-.IP
-time in ms to defer updates (default 40)
-.PP
-\fB-deferptrupdate\fR \fItime\fR
-.IP
-time in ms to defer pointer updates (default none)
-.PP
-\fB-desktop\fR \fIname\fR
-.IP
-VNC desktop name (default "LibVNCServer")
-.PP
-\fB-alwaysshared\fR
-.IP
-always treat new clients as shared
-.PP
-\fB-nevershared\fR
-.IP
-never treat new clients as shared
-.PP
-\fB-dontdisconnect\fR
-.IP
-don't disconnect existing clients when a new non-shared
-connection comes in (refuse new connection instead)
-.PP
-\fB-httpdir\fR \fIdir-path\fR
-.IP
-enable http server using dir-path home
-.PP
-\fB-httpport\fR \fIportnum\fR
-.IP
-use portnum for http connection
-.PP
-\fB-enablehttpproxy\fR
-.IP
-enable http proxy support
-.PP
-\fB-progressive\fR \fIheight\fR
-.IP
-enable progressive updating for slow links
-.PP
-\fB-listen\fR \fIipaddr\fR
-.IP
-listen for connections only on network interface with
-addr ipaddr. '-listen localhost' and hostname work too.
-.PP
-libvncserver-tight-extension options:
-.PP
-\fB-disablefiletransfer\fR
-.IP
-disable file transfer
-.PP
-\fB-ftproot\fR \fIstring\fR
-.IP
-set ftp root
-.SH "FILES"
-.IR $HOME/.x11vncrc ,
-.IR $HOME/.Xauthority
-.SH "ENVIRONMENT"
-.IR DISPLAY ,
-.IR XAUTHORITY ,
-.IR HOME
-.PP
-The following are set for the auxiliary commands
-run by \fB-accept\fR, \fB-gone\fR and other cases:
-.PP
-.IR RFB_CLIENT_IP ,
-.IR RFB_CLIENT_PORT ,
-.IR RFB_SERVER_IP ,
-.IR RFB_SERVER_PORT ,
-.IR RFB_X11VNC_PID ,
-.IR RFB_CLIENT_ID ,
-.IR RFB_CLIENT_COUNT ,
-.IR RFB_MODE
-.IR RFB_STATE
-.IR RFB_LOGIN_VIEWONLY
-.IR RFB_LOGIN_TIME
-.IR RFB_CURRENT_TIME
-.IR RFB_USERNAME
-.IR RFB_SSL_CLIENT_CERT
-.SH "SEE ALSO"
-.IR vncviewer (1),
-.IR vncpasswd (1),
-.IR vncconnect (1),
-.IR vncserver (1),
-.IR Xvnc (1),
-.IR xev (1),
-.IR xdpyinfo (1),
-.IR xwininfo (1),
-.IR xprop (1),
-.IR xmodmap (1),
-.IR xrandr (1),
-.IR Xserver (1),
-.IR xauth (1),
-.IR xhost (1),
-.IR Xsecurity (7),
-.IR xmessage (1),
-.IR XGetImage (3X11),
-.IR ipcrm (1),
-.IR inetd (1),
-.IR xdm (1),
-.IR gdm (1),
-.IR kdm (1),
-.IR ssh (1),
-.IR stunnel (8),
-.IR su (1),
-.IR http://www.tightvnc.com ,
-.IR http://www.realvnc.com ,
-.IR http://www.karlrunge.com/x11vnc/ ,
-.IR http://www.karlrunge.com/x11vnc/#faq
-.SH AUTHORS
-x11vnc was written by Karl J. Runge <runge@karlrunge.com>,
-it is part of the LibVNCServer project <http://sf.net/projects/libvncserver>.
-This manual page is based one the one written by Ludovic Drolez
-<ldrolez@debian.org>, for the Debian project (both may be used by others).
OpenPOWER on IntegriCloud