x11vnc(1) - allow VNC connections to real X11 displays version: 0.9.12, lastmod: 2010-09-09
-display disp

       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 disp.

       See the description below of the "-display WAIT:..."  extensions, where alias  "-find"  will  find
       the user's display automatically, and "-create" will create a Xvfb session if no session is found.
-auth file

       Set  the X authority file to be file, equivalent to setting the XAUTHORITY environment variable to
       file before startup.  Same as -xauth file.  See Xsecurity(7) , xauth(1) man pages for more info.

       Use '-auth guess' to have x11vnc use its -findauth mechanism (described below) to try to guess the
       XAUTHORITY filename and use it.

       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 -env FD_XDM=1 -auth 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 -auth guess fails.
-N

       If the X display is :N, try to set the VNC display to also be  :N  This  just  sets  the  -rfbport
       option  to  5900+N  The program will exit immediately if that port is not available. The -N option
       only works with normal -display usage, e.g. :0 or :8, -N is  ignored  in  the  -display  WAIT:...,
       -create, -find, -svc, -redirect, etc modes.
-autoport n

       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.
-rfbport str

       The VNC port to listen on (a LibVNCServer  option),  e.g.   5900,  5901,  etc.   If  specified  as
       "-rfbport PROMPT" then the x11vnc -gui is used to prompt the user to enter the port number.
-6
-no6

       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".)
-noipv6

       Do  not try to use IPv6 for any listening or connecting sockets.  This includes both the listening
       service port(s) and outgoing connections from -connect, -connect_or_exit, or -proxy.  Use this  if
       you are having problems due to IPv6.
-noipv4

       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.
-reopen

       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.)

       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.
-reflect host:N

       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  -shared  (use
       -noshared as a later option to disable). See the discussion below under -rawfb vnc:host:N for more
       details.
-id windowid

       Show the X window corresponding to windowid 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 -xrandr
       mechanism is used to track resizes.  Use xwininfo(1) to get the window id, or use  "-id  pick"  to
       have  x11vnc  run  xwininfo(1) for you and extract the id.  The -id option is useful for exporting
       very simple applications (e.g. the current view on a webcam).
-sid windowid

       As -id, 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.
-appshare

       Simple  application  sharing  based on the -id/-sid mechanism.  Every new toplevel window that the
       application creates induces a new viewer window  via  a  reverse  connection.   The  -id/-sid  and
       -connect options are required.  Run 'x11vnc -appshare -help' for more info.
-clip WxH+X+Y

       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 -id/-sid 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.

       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).
-flashcmap

       In 8bpp indexed color, let the installed colormap flash as the pointer moves from window to window
       (slow).  Also try the -8to24 option to avoid flash altogether.
-shiftcmap n

       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.  n 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: -shiftcmap 240
-notruecolor

       For 8bpp displays, force indexed color (i.e. a colormap) even if  it  looks  like  8bpp  TrueColor
       (rare problem).
-advertise_truecolor

       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.
-visual n

       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 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 -noshm when
       using this option (so XGetImage may automatically translate the pixel data).
-overlay

       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).

       Currently -overlay only works on Solaris via XReadScreen(3X11) and IRIX using 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 "-su" argument to Xsun (in
       /etc/dt/config/Xservers).

       Use -overlay 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  -overlay  is  used.   Another  use of -overlay is to enable showing the exact mouse cursor
       shape (details below).

       Under -overlay, performance will be  somewhat  slower  due  to  the  extra  image  transformations
       required.   For optimal performance do not use -overlay, 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 -use24 or -visual options).
-overlay_nocursor

       Sets -overlay, but does not try to draw the exact mouse cursor shape using the overlay mechanism.
-8to24 [opts]
-24to32

       Very  rare  problem: if the framebuffer (X display or -rawfb) 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.

       In the case of -rawfb 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 "-noshm -visual TrueColor:32".
       (If better performance is needed for the latter, feel free to ask).
-scale fraction
-geometry WxH

       Same as -scale WxH
-scale_cursor frac

       By default if -scale 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
       -scale_cursor the cursor will be scaled by that factor.  When using -scale mode to keep the cursor
       at its "natural" size use "-scale_cursor 1".  Most of the ":" scaling options apply here as well.
-viewonly

       All VNC clients can only watch (default off).
-shared

       VNC display is shared, i.e. more than one viewer can connect at the same time (default off).
-once

       Exit after the first successfully connected viewer disconnects, opposite of -forever. This is  the
       Default.
-forever

       Keep listening for more connections rather than exiting as soon as the first client(s) disconnect.
       Same as -many

       To get the standard non-shared VNC behavior where when a new VNC client connects the existing  VNC
       client is dropped use:  -nevershared -forever   This method can also be used to guard against hung
       TCP connections that do not go away.
-loop

       Create an outer loop restarting the x11vnc process whenever it terminates.   -bg  and  -inetd  are
       ignored in this mode (however see -loopbg below).

       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).

       Use, e.g., -loop100 to sleep 100 millisecs between restarts, etc.  Default is 2000ms (i.e. 2 secs)
       Use, e.g. -loop300,5 to sleep 300 ms and only loop 5 times.

       If  -loopbg  (plus  any  numbers)  is  specified instead, the "-bg" option is implied and the mode
       approximates 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 -display WAIT:..,
       -svc, and -connect can make use of this "poor man's" inetd mode.  The default wait time  is  500ms
       in this mode.  This usage could use useful:  -svc -bg -loopbg
-timeout n

       Exit unless a client connects within the first n seconds after startup.

       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.

       For  reverse  connections  via -connect or -connect_or_exit a timeout of n seconds will be set for
       all reverse connects.  If the connect timeout alarm goes off, x11vnc will exit immediately.
-sleepin n

       At startup sleep n seconds before proceeding (e.g. to allow redirs and listening clients to  start
       up)

       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.
-inetd

       Launched by inetd(8): stdio instead of listening socket.  Note: if you are not redirecting  stderr
       to  a  log  file  (via  shell  2> or -o option) you MUST also specify the -q option, otherwise the
       stderr goes to the viewer which will cause it to abort.  Specifying both -inetd and -q and  no  -o
       will automatically close the stderr.
-tightfilexfer

       Enable  the TightVNC file transfer extension. Note that that when the -viewonly 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.

       IMPORTANT: please understand if -tightfilexfer 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 -users
       option, then VNC Viewers that connect are able to do filetransfer reads and writes as *root*.

       Also, tightfilexfer is disabled in -unixpw mode.
-ultrafilexfer

       Note: to enable UltraVNC filetransfer and to get it to work you  probably  need  to  supply  these
       LibVNCServer  options: "-rfbversion 3.6 -permitfiletransfer" "-ultrafilexfer" is an alias for this
       combination.

       IMPORTANT: please understand if -ultrafilexfer 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 -users
       option, then VNC Viewers that connect are able to do filetransfer reads and writes as *root*.

       Note that sadly you cannot do both -tightfilexfer and -ultrafilexfer 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.
-http

       Instead of using -httpdir (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  -ssl  or  -stunnel  the  ssl  classes
       subdirectory is sought.
-http_ssl

       As -http, but force lookup for ssl classes subdir.

       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.
-avahi

       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.

       You can set X11VNC_AVAHI_NAME, X11VNC_AVAHI_HOST, and/or X11VNC_AVAHI_PORT  environment  variables
       to override the default values.  For example: -env X11VNC_AVAHI_NAME=wally

       If  the  avahi  API cannot be found at build time, a helper program like avahi- publish(1) or dns-
       sd(1) will be tried
-mdns

       Same as -avahi.
-zeroconf

       Same as -avahi.
-connect string
-connect      pre=some_string+host:port     -connect     pre128=some_string+host:port     -connect
repeater=ID:1234+host:port -connect repeater=23.45.67.89::5501+host:port

SSVNC notation is also supported:
-connect repeater://host:port+ID:1234
-connect_or_exit str

       As with -connect, except if none of the  reverse  connections  succeed,  then  x11vnc  shuts  down
       immediately

       An easier to type alias for this option is '-coe'

       By  the  way,  if you do not want x11vnc to listen on ANY interface use -rfbport 0  which is handy
       for the -connect_or_exit mode.
-proxy string
-connect localhost:0 -proxy ssh://me@friends-pc:2222
-connect snoopy:0 -proxy ssh://ssh.company.com

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

IPv6: as of x11vnc 0.9.10 the -proxy option should connect to IPv6 hosts properly.  If  there  are
problems  you  can disable IPv6 by setting -DX11VNC_IPV6=0 in CPPFLAGS when configuring.  If there
problems connecting to IPv6 hosts consider a relay like the included inet6to4 script.
-vncconnect, -novncconnect
-localhost
-listen6 str

       When in IPv6 listen mode "-6", listen only on the network interface with  address  str.   It  also
       works  for  link  scope  addresses (fe80::219:dbff:fee5:3f92%eth0) and IPv6 hostname strings (e.g.
       ipv6.google.com.)  Use LibVNCServer -listen option for the IPv4 interface.
-nolookup

       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.
-input string

       Fine tuning of allowed user input.  If string 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. "-input M" means normal users can only move the
       mouse and  "-input KMBCF,M" lets normal users do anything and enables view-only users to move  the
       mouse.   This  option  is  ignored when a global -viewonly is in effect (all input is discarded in
       that case).
-grabkbd

       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 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.
-grabptr

       As -grabkbd, but for the mouse pointer using 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
       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.
-grabalways

       Apply  both -grabkbd and -grabptr even when no VNC viewers are connected.  If you only want one of
       them, use the -R remote control to turn the other back on, e.g. -R nograbptr.
-viewpasswd string

       Supply a 2nd password for view-only logins.  The  -passwd  (full-access)  password  must  also  be
       supplied.
-passwdfile filename
-showrfbauth filename

       Print to the screen the obscured VNC password kept in the rfbauth file filename and then exit.
-unixpw [list]
-unixpw_cmd cmd
-find

       Find the user's display using FINDDISPLAY. This is an alias for "-display WAIT:cmd=FINDDISPLAY".

       Note: if a -display occurs later on the command line it will override the -find setting.

       For this and the next few options see -display WAIT:...  below for all of the details.
-finddpy

       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.
-listdpy
-create

       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   "-display
       WAIT:cmd=FINDCREATEDISPLAY-Xvfb".

       Note: if a -display occurs later on the command line it will override the -create setting.

       SSH NOTE: for both -find and -create you can (should!)  add the "-localhost" option to  force  SSH
       tunnel access.
-xdummy

       As in -create, except Xdummy instead of Xvfb.
-xvnc

       As in -create, except Xvnc instead of Xvfb.
-xvnc_redirect

       As in -create, except Xvnc.redirect instead of Xvfb.
-xdummy_xvfb

       Sets WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb
-create_xsrv str

       Sets  WAIT:cmd=FINDCREATEDISPLAY-<str>   Can  be  on  cmdline after anything that sets WAIT:.. and
       other things (e.g. -svc, -xdmsvc) to adjust the X server list.   Example:  -svc  ...  -create_xsrv
       Xdummy,X
-svc
-svc_xdummy

       As -svc except Xdummy instead of Xvfb.
-svc_xvnc

       As -svc except Xvnc instead of Xvfb.
-svc_xdummy_xvfb

       As -svc with Xdummy,Xvfb.
-xdmsvc

       Display    manager    Terminal    services    mode    based    on   SSL.    Alias   for   -display
       WAIT:cmd=FINDCREATEDISPLAY-Xvfb.xdmcp -unixpw -users unixpw= -ssl SAVE  Also "-xdm_service".

       Note: if a -display, -unixpw, -users, or -ssl occurs later on the command line  it  will  override
       the -xdmsvc setting.

       To  create  a session a user will have to first log in to the -unixpw dialog and then log in again
       to the XDM/GDM/KDM prompt.  Subsequent re-connections will only require the -unixpw password.  See
       the discussion under -display WAIT:... for more details about XDM, etc configuration.

       Remember  to  enable XDMCP in the xdm-config, gdm.conf, or kdmrc configuration file.  See -display
       WAIT: for more info.
-sshxdmsvc

       Display   manager   Terminal   services   mode    based    on    SSH.     Alias    for    -display
       WAIT:cmd=FINDCREATEDISPLAY-Xvfb.xdmcp -localhost.

       The  -localhost  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 -display WAIT:...
       for more details about XDM, etc configuration.

       Remember to enable XDMCP in the xdm-config, gdm.conf, or kdmrc configuration file.   See  -display
       WAIT: for more info.
-unixpw_system_greeter
-redirect port

       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.

       If 0 <= port < 200 it is taken as a VNC display (5900 is added to get the actual port), if port  <
       0 then -port is used.

       Probably the only reason to use the -redirect option is in conjunction with SSL support, e.g. -ssl
       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 "-rfbport port1
       -ssl SAVE -redirect host:port2" can act as a replacement for stunnel(1).

       This mode only allows one redirected connection.  The -forever option does not apply.  Use  -inetd
       or -loop for persistent service.
-display WAIT:...
-vencrypt mode
-anontls mode
-sslonly

       Same  as:  "-vencrypt  never -anontls never"  i.e. it disables the VeNCrypt and ANONTLS encryption
       methods and only allows standard SSL tunneling.  You must also supply the  -ssl  ...  option  (see
       below.)
-dhparams file

       For  some  operations  a set of Diffie Hellman parameters (prime and generator) is needed.  If so,
       use the parameters in file. 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
       -vencrypt and -anontls options to generate a new set each session.  If that is too slow  for  you,
       use -dhparams file to a set you created manually via "openssl dhparam -out file 1024"
-nossl

       Disable the -ssl option (see below). Since -ssl is off by default -nossl would only be used on the
       commandline to unset any *earlier* -ssl option (or -svc...)
-ssl [pem]
-ssltimeout n

       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.

       Note that this value does NOT apply to the *initial* ssl init connection.  The default timeout for
       that is 20sec.  Use -env SSL_INIT_TIMEOUT=n to modify it.
-sslnofail

       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.
-ssldir dir

       Use dir as an alternate ssl certificate and key management toplevel  directory.   The  default  is
       ~/.vnc/certs

       This  directory  is used to store server and other certificates and keys and also other materials.
       E.g. in the simplest case, "-ssl SAVE" will store the x11vnc server cert in dir/server.pem

       Use of alternate directories via -ssldir 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 -ssldir /var/lib/x11vnc-
       certs).

       -ssldir affects nearly all of the other -ssl* options, e.g. -ssl SAVE, -sslGenCert, etc..
-sslverify path
-sslCRL path
-sslGenCert type name
-sslEncKey pem

       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.

       The "SAVE" notation described under -ssl applies as well. (precede this option with -ssldir  [dir]
       to refer a directory besides the default ~/.vnc/certs)

       The  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.

       Examples: x11vnc -sslEncKey /path/to/foo.pem x11vnc -sslEncKey SAVE x11vnc -sslEncKey SAVE-charlie
-sslCertInfo pem
-sslDelCert pem

       Prompts  you  to  delete  all .crt .pem .key .req files associated with [pem].  x11vnc then exits.
       "SAVE" and lookups as in -sslCertInfo apply as well.
-sslScripts

       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.
-stunnel [pem]
-enc cipher:keyfile
-enc aes-cfb@8,16:./my.key

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.

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.
-enc blowfish@-1,16:./my.key

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:
-enc arc4@sha+8,16:./my.key
-https [port]
-http_oneport
-ssh user@host:disp
-usepw

       If  no other password method was supplied on the command line, first look for ~/.vnc/passwd and if
       found use it with -rfbauth;  next,  look  for  ~/.vnc/passwdfile  and  use  it  with  -passwdfile;
       otherwise,  prompt  the  user  for a password to create ~/.vnc/passwd and use it with the -rfbauth
       option.  If none of these succeed x11vnc exits immediately.
-storepasswd pass file

       Store password pass as the VNC password in the file file.  Once the password is stored the program
       exits.  Use the password via "-rfbauth file"

       If  called with no arguments, "x11vnc -storepasswd", 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.
-nopw

       Disable the big warning message when you use x11vnc without some sort of password.
-accept string
-afteraccept string

       As  -accept,  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
       -accept.   Unlike  -accept,  the  command  return  code  is  not  interpreted by x11vnc.  Example:
       -afteraccept 'killall xlock &'
-gone string

       As -accept, 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 -accept.  The "popup" actions apply
       as well.  Unlike -accept, the command return code is not interpreted by  x11vnc.   Example:  -gone
       'xlock &'
-users list
-noshm

       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 -onetile is not sufficient.
-flipbyteorder

       Sometimes needed if remotely polled host has different endianness.  Ignored unless -noshm is set.
-onetile

       Do  not  use  the new copy_tiles() framebuffer mechanism, just use 1 shm tile for polling.  Limits
       shm segments used to 3.

       To disable any automatic shm reduction set the env. var. X11VNC_NO_LIMIT_SHM.
-solid [color]

       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").

       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 ( inetd(8) or gdm(1) ), the  -users  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:".

       Update: -solid no longer works on KDE4.

       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.
-blackout string

       Black out rectangles on the screen. string 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.
-xinerama, -noxinerama

       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: -xinerama

       In general, we have noticed on XINERAMA displays you may need to use the "-xwarppointer" option if
       the  mouse  pointer  misbehaves  and it is enabled by default. Use "-noxwarppointer" if you do not
       want this.
-xtrap

       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 -xtrap to do the keystroke and  mouse  insertion  via
       DEC-XTRAP as well.
-xrandr [mode]

       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 xrandr(1) manpage and run ´xrandr -q' for more info.  [mode]  is  optional  and  described
       below.

       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).

       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 -xrandr mode is enabled.  To disable even
       checking for events supply: -noxrandr.

       "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.
-rotate string
-padgeom WxH

       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 -xrandr, -remote
       id:windowid, rescaling, etc.)

       In -unixpw mode this sets the size of the login screen.  Use "once:WxH" it  ignore  padgeom  after
       the login screen is set up.
-o logfile

       Write  stderr  messages  to file logfile instead of to the terminal.  Same as "-logfile file".  To
       append to the file  use  "-oa  file"  or  "-logappend  file".   If  logfile  contains  the  string
       "%VNCDISPLAY"  it  is  expanded  to the vnc display (the name may need to be guessed at.)  "%HOME"
       works too.
-flag file

       Write the "PORT=NNNN" (e.g. PORT=5900) string to file in addition to stdout.  This option could be
       useful by wrapper script to detect when x11vnc is ready.
-rmflag file

       Remove  file at exit to signal when x11vnc is done.  The file is created at startup if it does not
       already exist or if file 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.
-rc filename

       Use filename instead of $HOME/.x11vncrc for rc file.
-norc

       Do not process any .x11vncrc file for options.
-env VAR=VALUE

       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.
-prog /path/to/x11vnc

       Set the full path to the x11vnc program for cases when it cannot be determined from argv[0]  (e.g.
       tcpd/inetd)
-h, -help

       Print this help text.  -?, -opts              Only list the x11vnc options.
-V, -version

       Print program version and last modification date.
-license

       Print out license information.  Same as -copying and -warranty.
-dbg

       Instead  of  exiting  after  cleaning  up,  run a simple "debug crash shell" when fatal errors are
       trapped.
-q, -quiet

       Be quiet by printing less informational output  to  stderr.  (use  -noquiet  to  undo  an  earlier
       -quiet.)

       The  -quiet option does not eliminate all informational output, it only reduces it.  It is ignored
       in most auxiliary usage modes, e.g. -storepasswd.  To eliminate all output use: 2>/dev/null  1>&2,
       etc.
-v, -verbose

       Print out more information to stderr.
-bg
-modtweak, -nomodtweak

       Option -modtweak 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: -modtweak

       If you are having trouble with with keys and -xkb or -noxkb, and similar things  don't  help,  try
       -nomodtweak.

       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  -pk"  or  the  -dk
       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.
-xkb, -noxkb

       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 -modtweak by itself.  The default is to check whether some common keysyms, e.g.  !,  @,
       [,  are  only  accessible  via -xkb mode and if so then automatically enable the mode.  To disable
       this automatic detection use -noxkb.

       When -xkb 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.
-capslock

       When in -modtweak (the default) or -xkb 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 -skip_lockkeys below).  Also try -nomodtweak for a possible workaround.
-skip_lockkeys, -noskip_lockkeys

       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
       -nomodtweak mode.  Also, a kludge for KP_n digits is always done in this mode: they are mapped  to
       regular digit keysyms.  See also -capslock above.  The default is -noskip_lockkeys.
-skip_keycodes string

       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 -xkb 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  -pk'  to  see  your  keymapping.   Example:
       "-skip_keycodes 94,114"
-sloppy_keys

       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.
-skip_dups, -noskip_dups

       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 -skip_dups 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: -noskip_dups
-add_keysyms, -noadd_keysyms

       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: -add_keysyms
-clear_mods

       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.
-clear_keys

       As  -clear_mods, except try to release ANY pressed key.  Note that this option and -clear_mods can
       interfere with a person typing at the physical keyboard.
-clear_all

       As -clear_keys, except try to release any CapsLock, NumLock, etc. locks as well.
-remap string

       Read Keysym remappings from file named string.  Format is one pair of Keysyms  per  line  (can  be
       name  or  hex  value)  separated  by  a  space.   If  no  file  named string 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 xev(1).

       To  map  a  key to a button click, use the fake Keysyms "Button1", ..., etc. E.g: "-remap Super_R-
       Button2" (useful for pasting on a laptop)

       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:
-remap Super_R-Button4,Menu-Button5 -remap KP_Add-Button4,KP_Enter-Button5
-norepeat, -repeat

       Option -norepeat 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: -norepeat
-nofb

       Ignore video framebuffer: only process keyboard and pointer.  Intended for use  with  Win2VNC  and
       x2vnc dual-monitor setups.
-nobell

       Do  not  watch  for  XBell  events.  (no  beeps will be heard) Note: XBell monitoring requires the
       XKEYBOARD extension.
-nosel

       Do not manage exchange of X selection/cutbuffer between VNC viewers and the X server at all.
-noprimary

       Do not poll the PRIMARY selection for changes to send back to clients.  (PRIMARY is still  set  on
       received changes, however).
-nosetprimary

       Do not set the PRIMARY selection for changes received from VNC clients.
-noclipboard

       Do  not poll the CLIPBOARD selection for changes to send back to clients.  (CLIPBOARD is still set
       on received changes, however).
-nosetclipboard

       Do not set the CLIPBOARD selection for changes received from VNC clients.
-seldir string

       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.
-cursor [mode], -nocursor
-cursor_drag

       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.
-arrow n

       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.
-noxfixes

       Do not use the XFIXES extension to draw the exact cursor shape even if it is available.

       Note:  To work around a crash in Xorg 1.5 and later some people needed to use -noxfixes.  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
       -reopen option for more info and how to use X11VNC_AVOID_WINDOWS=never to disable it.
-alphacut n

       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
-alphafrac fraction

       With the threshold in -alphacut 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
-alpharemove

       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).
-noalphablend

       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  -nocursorshape  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).
-nocursorshape

       Do not use the TightVNC CursorShapeUpdates extension even if  clients  support  it.   See  -cursor
       above.
-cursorpos, -nocursorpos

       Option  -cursorpos  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: -cursorpos
-xwarppointer, -noxwarppointer

       Move  the  pointer with 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.

       It is also sometimes needed on XINERAMA displays and is enabled by default if XINERAMA is found to
       be active.  To prevent this, use -noxwarppointer.
-always_inject
-buttonmap string

       String  to remap mouse buttons.  Format: IJK-LMN, this maps buttons I -> L, etc., e.g.  -buttonmap
       13-31

       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:
-buttonmap 12345-123:Prior::Next:
-buttonmap 12345-123:Up+Up+Up::Down+Down+Down:

See <X11/keysymdef.h> header file for a list of Keysyms, or use the xev(1) program.  Note: mapping
of button clicks to Keysyms may not work if -modtweak or -xkb is needed for the Keysym.

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.

-buttonmap currently does not work on MacOSX console or in -rawfb mode.

Workaround: use -buttonmap 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.
-nodragging

       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 -pointer_mode setting.
-ncache n
-ncache_cr

       In  -ncache  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.

       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.

       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.
-ncache_no_moveraise

       In -ncache 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.
-ncache_no_dtchange

       In -ncache 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.
-ncache_no_rootpixmap

       In -ncache  mode,  do  not  try  to  snapshot  the  desktop  background  to  use  in  guessing  or
       reconstructing window save-unders.
-ncache_keep_anims

       In  -ncache  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.

       For other window managers or desktops that provide animations, effects, compositing, translucency,
       etc. that interfere with the -ncache method you will have to disable them manually.
-ncache_old_wm

       In -ncache mode, enable some heuristics for old style window managers such as fvwm and twm.
-ncache_pad n

       In -ncache 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.
-debug_ncache

       Turn on debugging and profiling output under -ncache.
-wireframe [str], -nowireframe
-nowireframelocal

       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.
-wirecopyrect mode, -nowirecopyrect

       Since the -wireframe 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.

       Shorter aliases:  -wcr [mode]  and -nowcr

       "mode" can be "never" (same as -nowirecopyrect) 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"

       Note:  there  can be painting errors or slow response when using -scale so you may want to disable
       CopyRect in this case "-wirecopyrect never" on the command line or by remote-control.  Or you  can
       also use the "-scale xxx:nocr" scale option.
-debug_wireframe

       Turn  on  debugging  info  printout  for  the  wireframe heuristics.  "-dwf" is an alias.  Specify
       multiple times for more output.
-scrollcopyrect mode, -noscrollcopyrect
-scr_area n

       Set  the minimum area in pixels for a rectangle to be considered for the -scrollcopyrect 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
-scr_skip list

       Skip scroll detection for applications matching the comma separated list of strings in list.  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.

       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 -la"  command
       will provide this info.

       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
-scr_inc list

       Opposite  of  -scr_skip:  this  list is consulted first and if there is a match the window will be
       monitored via RECORD for scrolls irrespective of -scr_skip.  Use -scr_skip '*'  to  skip  anything
       that does not match your -scr_inc.  Use -scr_inc '*' to include everything.
-scr_keys list

       For  keystroke  scroll  detection, only apply the RECORD heuristics to the comma separated list of
       keysyms in list.  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 "-scr mouse" and -scr_parms
       does not work or is too confusing.

       The listed keysyms can be numeric or the keysym names in the <X11/keysymdef.h> header file or from
       the  xev(1) program.  Example: "-scr_keys Up,Down,Return".  One probably wants to have application
       specific lists (e.g. for terminals, etc) but that is too icky to think about for now...

       If list 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.
-scr_term list

       Yet  another  cosmetic  kludge.   Apply  shell/terminal  heuristics to applications matching comma
       separated list (same as for -scr_skip/-scr_inc).  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).

       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"
-scr_keyrepeat lo-hi

       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"
-scr_parms string
-fixscreen string

       Periodically "repair" the screen based on settings in  string.   Hopefully  you  won't  need  this
       option, it is intended for cases when the -scrollcopyrect or -wirecopyrect 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 -scrollcopyrect) instead to manually  request  a
       screen repaint when it is needed.
-debug_scroll

       Turn on debugging info printout for the  scroll  heuristics.   "-ds"  is  an  alias.   Specify  it
       multiple times for more output.
-noxrecord

       Disable any use of the RECORD extension.  This is currently used by the -scrollcopyrect scheme and
       to monitor X server grabs.
-grab_buster, -nograb_buster

       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  -grab_buster, 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 -grab_buster, 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.
-debug_grabs

       Turn on debugging info printout with respect to XGrabServer() deadlock for -scrollcopyrect__mode_.
-debug_sel

       Turn on debugging info printout with respect to PRIMARY, CLIPBOARD, and CUTBUFFER0 selections.
-pointer_mode n

       Various pointer motion update schemes. "-pm" 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 n can be 0 to 4 and selects one of the
       schemes desribed below.

       Note that the -wireframe and -scrollcopyrect__mode_s complement -pointer_mode  by  detecting  (and
       improving) certain periods of "rapid screen change".

       n=0: does the same as -nodragging. (all screen polling is suspended if a mouse button is pressed.)
n=3  is basically a dynamic -nodragging mode: it detects when the mouse motion has paused and then
refreshes the display.

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.

The default n is 2. Note that modes 2, 3, 4 will skip -input_skip keyboard events (but it will not
count  pointer  events).   Also note that these modes are not available in -threads mode which has
its own pointer event handling mechanism.

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 -R pm:4" or the tcl/tk gui
(Tuning -> pointer_mode -> n).
-input_skip n

       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
-allinput

       Have x11vnc read and process all available client input before proceeding.
-input_eagerly

       Similar to -allinput but use the handleEventsEagerly mechanism built into LibVNCServer.
-speeds rd,bw,lat

       x11vnc  tries  to  estimate  some  speed  parameters  that  are  used to optimize scheduling (e.g.
       -pointer_mode 4, -wireframe, -scrollcopyrect) and other things.  Use the  -speeds  option  to  set
       these  manually.   The  triple  rd,bw,lat  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).

       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 -getimage500" 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 ping(1) command can be used.

       For convenience there are some aliases provided, e.g. "-speeds modem".  The aliases  are:  "modem"
       for 6,4,200; "dsl" for 6,100,50; and "lan" for 6,5000,1
-wmdt string

       For  some  features,  e.g.  -wireframe  and  -scrollcopyrect, 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.  string can be
       "gnome", "kde", "cde", "xfce", or "root" (classic X wm).  Anything else is interpreted as "root".
-debug_pointer

       Print debugging output for every pointer event.
-debug_keyboard

       Print debugging output for every keyboard event.

Same as -dp and -dk, respectively.  Use multiple times for more output.
-defer time

       Time in ms to delay sending updates to connected clients (deferUpdateTime)  Default: 20
-wait time

       Time in ms to pause between screen polls.  Used to cut down on load.  Default: 20
-extra_fbur n

       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.
-wait_ui factor

       Factor by which to cut the -wait 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
-setdefer n

       When the -wait_ui 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
-nowait_bog

       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.
-slow_fb time

       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 -wait.
-xrefresh time

       Floating point time in seconds to indicate how often to do the equivalent of xrefresh(1) to  force
       all windows (in the viewable area if -id, -sid, or -clip is used) to repaint themselves.  Use this
       only if applications misbehave by not repainting themselves properly.  See also -noxdamage.
-nap, -nonap

       Monitor activity and if it is low take longer naps between screen polls to really  cut  down  load
       when idle.  Default: take naps
-sb time

       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
-readtimeout n

       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.
-ping n

       Send  a  1x1  framebuffer  update  to  all  clients every n seconds (e.g. to try to keep a network
       connection alive)
-nofbpm, -fbpm

       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.

       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.

       "-nofbpm" means prevent FBPM low power states whenever VNC clients are  connected,  while  "-fbpm"
       means  to  not  monitor  the  FBPM state at all.  See the xset(1) manpage for details.  -nofbpm is
       basically the same as running "xset fbpm force on" periodically.  Default: -fbpm
-nodpms, -dpms

       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.

       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  "-nodpms" 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 "-nodpms" works around it.

       "-nodpms"  means  prevent  DPMS low power states whenever VNC clients are connected, while "-dpms"
       means to not monitor the DPMS state at all.  See the xset(1)  manpage  for  details.   -nodpms  is
       basically the same as running "xset dpms force on" periodically.  Default: -dpms
-forcedpms

       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.

       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.
-clientdpms

       As -forcedpms but only when VNC clients are connected.
-noserverdpms

       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.
-noultraext

       Disable the following UltraVNC extensions: SingleWindow and ServerInput.  The  others  managed  by
       LibVNCServer (textchat, 1/n scaling, rfbEncodingUltra) are not.
-chatwindow

       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)

       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

       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 -chatwindow option on the
       cmdline.

       See  also  the  remote  control  'chaton'  and  'chatoff' actions.  These can also be set from the
       tkx11vnc GUI.
-noxdamage

       Do not use the X DAMAGE extension to detect framebuffer changes even  if  it  is  available.   Use
       -xdamage if your default is to have it off.

       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.

       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:
-xd_area A

       Set the largest DAMAGE rectangle area A (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
-xd_mem f

       Set how long DAMAGE rectangles should be "remembered", f 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).
-sigpipe string

       Broken pipe (SIGPIPE) handling.  string 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.

       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.  "-sigpipe
       ignore:HUP,INT,TERM"  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. "-sig" is an  alias  for  this
       option if you don't like the 'pipe'. Example: -sig ignore:INT,TERM,exit:USR1
-threads, -nothreads
-fs f

       If the fraction of changed tiles in a poll is  greater  than  f,  the  whole  screen  is  updated.
       Default: 0.75
-gaps n

       Heuristic  to  fill  in  gaps  in  rows  or cols of n or less tiles.  Used to improve text paging.
       Default: 4
-grow n

       Heuristic to grow islands of changed tiles n or wider by checking  the  tile  near  the  boundary.
       Default: 3
-fuzz n

       Tolerance in pixels to mark a tiles edges as changed.  Default: 2
-debug_tiles

       Print debugging output for tiles, fb updates, etc.
-snapfb

       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
       -rawfb  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.
-rawfb string
-rawfb shm:210337933@800x600x32:ff/ff00/ff0000
-rawfb map:/dev/fb0@1024x768x32
-rawfb map:/tmp/Xvfb_screen0@640x480x8+3232
-rawfb file:/tmp/my.pnm@250x200x24+37
-rawfb video:<settings>

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.

<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.

The device filename can be  set  too  if  needed  (if  it  does  not  start  with  "video"),  e.g.
fn=/dev/qcam.

The width, height and bpp of the framebuffer can be set via, e.g., w=160,h=120,bpp=16.
-rawfb video:br=80,w=320,h=240,fmt=RGB32,tun=NTSC,sta=47
-freqtab file

       For use with "-rawfb video" 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: "-freqtab /usr/X11R6/share/xawtv/europe-west.list" You can
       make your own freqtab by copying the xawtv format.
-pipeinput cmd
-macnodim

       For the native MacOSX server, disable dimming.
-macnosleep

       For the native MacOSX server, disable display sleep.
-macnosaver

       For the native MacOSX server, disable screensaver.
-macnowait

       For the native MacOSX server, do not wait for the user to switch back to his display.
-macwheel n

       For the native MacOSX server, set the mouse wheel speed to n (default 5).
-macnoswap

       For the native MacOSX server, do not swap mouse buttons 2 and 3.
-macnoresize

       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.
-maciconanim n

       For   the   native   MacOSX  server,  set  n  to  the  number  of  milliseconds  that  the  window
       iconify/deiconify animation takes.  In -ncache mode this value will be used to skip the  animation
       if possible. (default 400)
-macmenu

       For  the  native  MacOSX server, in -ncache client-side caching mode, try to cache pull down menus
       (not perfect because they have animated fades, etc.)
-macuskbd
-env   X11VNC_FONT_BOLD='Helvetica   -16   bold'   -env   X11VNC_FONT_FIXED='Courier   -14'   -env
X11VNC_FONT_REG_SMALL='Helvetica -12'

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.
-remote command
-query variable

       Like -remote, except just query the value of variable.  "-Q" is an alias for  "-query".   Multiple
       queries  can  be  done  by separating variables by commas, e.g. -query 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=".

       Some  -remote  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=..."
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
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
-QD variable

       Just like -query variable, but returns the default value for that  parameter  (no  running  x11vnc
       server is consulted)
-sync

       By default -remote commands are run asynchronously, that is, the request is posted and the program
       immediately exits.  Use -sync to have the program wait for  an  acknowledgement  from  the  x11vnc
       server  that  command  was  processed  (somehow).   On  the  other hand -query requests are always
       processed synchronously because they have to wait for the answer.

       Also note that if both -remote and -query requests are supplied on the command line,  the  -remote
       is processed first (synchronously: no need for -sync), and then the -query request is processed in
       the normal way.  This allows for a reliable way to see if the -remote  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.

       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.
-query_retries str

       If  a  query fails to get a response from an x11vnc server, retry up to n times.  str 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:
       -query_retries 4:1.5/grab_state
-remote_prefix str

       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 str then the part after it is processed
       as though it were sent via 'x11vnc -remote ...'.  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 str.  Example: -remote_prefix
       DO_THIS:

       Note that enabling -remote_prefix allows the remote VNC viewers to run  x11vnc  -remote  commands.
       Do not use this option if they are not to be trusted.
-noremote, -yesremote

       Do  not  process  any  remote  control commands or queries.  Do process remote control commands or
       queries.  Default: -yesremote

       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   "-connect  /path/to/file"  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 -privremote below.

       If you are paranoid and do not think -noremote is enough, to disable  the  X11VNC_REMOTE  property
       channel completely use -novncconnect, or use the -safer option that shuts many things off.
-unsafe

       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
       -unsafe,  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.
-safer

       Equivalent to: -novncconnect -noremote and prohibiting -gui  and  the  -connect  file.  Shuts  off
       communcation channels.
-privremote

       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.
-nocmds

       No external commands (e.g.  system(3) , popen(3) , exec(3) ) will be run at all.
-allowedcmds list

       list contains a comma separated list of the only external commands that can be run.  The full list
       of associated options is:

       stunnel, ssl, unixpw, WAIT, zeroconf, id, accept, afteraccept, gone, pipeinput,  v4l-info,  rawfb-
       setup, dt, gui, ssh, storepasswd, passwdfile, custom_passwd, findauth, crash.

       See  each  option's  help  to learn the associated external command.  Note that the -nocmds option
       takes precedence and disables all external commands.
-deny_all

       For use with -remote nodeny: start out denying all incoming clients until "-remote nodeny" is used
       to let them in.

These options are passed to LibVNCServer:
-rfbport port

       TCP port for RFB protocol
-rfbwait time

       max time in ms to wait for RFB client
-rfbauth passwd-file

       use authentication on RFB protocol (use 'x11vnc -storepasswd pass file' to create a password file)
-rfbversion 3.x

       Set the version of the RFB we choose to advertise
-permitfiletransfer

       permit file transfer support
-passwd plain-password

       use authentication (use plain-password as password, USE AT YOUR RISK)
-deferupdate time

       time in ms to defer updates (default 40)
-deferptrupdate time

       time in ms to defer pointer updates (default none)
-desktop name

       VNC desktop name (default "LibVNCServer")
-alwaysshared

       always treat new clients as shared
-nevershared

       never treat new clients as shared
-dontdisconnect

       don't disconnect existing clients when a new non-shared connection comes in (refuse new connection
       instead)
-httpdir dir-path

       enable http server using dir-path home
-httpport portnum

       use portnum for http connection
-enablehttpproxy

       enable http proxy support
-progressive height

       enable progressive updating for slow links
-listen ipaddr

       listen for connections only on  network  interface  with  addr  ipaddr.  '-listen  localhost'  and
       hostname work too.

libvncserver-tight-extension options:
-disablefiletransfer

       disable file transfer
-ftproot string