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