x11vnc: -nap is now the default, version str 0.7.1.

pull/1/head
runge 19 years ago
parent 5c13bd0cd4
commit b70fcb448e

@ -1,3 +1,7 @@
2005-02-21 Karl Runge <runge@karlrunge.com>
* -nap is now the default, disable with -nonap
* set version to 0.7.1, word tune -help, etc.
2005-02-14 Karl Runge <runge@karlrunge.com> 2005-02-14 Karl Runge <runge@karlrunge.com>
* cleanup -users stuff, add "lurk=" mode * cleanup -users stuff, add "lurk=" mode
* support cde in -solid * support cde in -solid

@ -1,5 +1,5 @@
x11vnc README file Date: Mon Feb 14 14:23:56 EST 2005 x11vnc README file Date: Mon Feb 21 22:41:53 EST 2005
The following information is taken from these URLs: The following information is taken from these URLs:
@ -594,8 +594,6 @@ ls -l ./x11vnc/x11vnc
Please feel free to [45]contact me if you have any questions, Please feel free to [45]contact me if you have any questions,
problems, or comments about x11vnc, etc. problems, or comments about x11vnc, etc.
[PayPal]
_________________________________________________________________ _________________________________________________________________
x11vnc FAQ: x11vnc FAQ:
@ -1927,9 +1925,34 @@ x11vnc -logfile $HOME/.x11vnc.log -rfbauth $HOME/.vnc/passwd -forever -bg
killed immediately after the user logs in. Here are [154]full details killed immediately after the user logs in. Here are [154]full details
on how to configure gdm on how to configure gdm
If you do not want to deal with the display manager startup scripts, Here is an example what we did on a vanilla install of Solaris:
Make the directory /etc/dt/config:
mkdir -p /etc/dt/config
Copy over the Xconfig file for customization:
cp /usr/dt/config/Xconfig /etc/dt/config/Xconfig
Edit /etc/dt/config/Xconfig and uncomment the line:
Dtlogin*grabServer: False
Next, copy over Xsetup for customization:
cp /usr/dt/config/Xsetup /etc/dt/config/Xsetup
Edit /etc/dt/config/Xsetup and at the bottom put a line like:
/usr/local/bin/x11vnc -forever -o /var/tmp/x11vnc.log -bg
(tweaked to your local setup and preferences, a password via -rfbauth,
etc. would be a very good idea).
Restart the X server and dtlogin:
/etc/init.d/dtlogin stop
/etc/init.d/dtlogin start
(or reboot or maybe just restart the X session).
If you do not want to deal with any display manager startup scripts,
here is a kludgey script that can be run manually or out of a boot here is a kludgey script that can be run manually or out of a boot
file like rc.local. [155]x11vnc_loop It will need some local file like rc.local: [155]x11vnc_loop It will need some local
customization before running. Because the XAUTHORITY auth file must be customization before running. Because the XAUTHORITY auth file must be
guessed by this script, use of the display manager script above is guessed by this script, use of the display manager script above is
preferred. preferred.
@ -2908,6 +2931,9 @@ ied)
If you don't want to hear the beeps use the -nobell option. If you If you don't want to hear the beeps use the -nobell option. If you
want to hear the audio from the remote applications, consider trying a want to hear the audio from the remote applications, consider trying a
redirector such as esd. redirector such as esd.
_________________________________________________________________
[PayPal]
References References
@ -3090,8 +3116,7 @@ x11vnc: a VNC server for real X displays
Here are all of x11vnc command line options: Here are all of x11vnc command line options:
% x11vnc -opts (see below for -help long descriptions) % x11vnc -opts (see below for -help long descriptions)
x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-02-1 x11vnc: allow VNC connections to real X11 displays. 0.7.1 lastmod: 2005-02-22
4
x11vnc options: x11vnc options:
-display disp -auth file -display disp -auth file
@ -3133,16 +3158,16 @@ x11vnc options:
-input_skip n -speeds rd,bw,lat -input_skip n -speeds rd,bw,lat
-debug_pointer -debug_keyboard -debug_pointer -debug_keyboard
-defer time -wait time -defer time -wait time
-nap -sb time -nap -nonap
-sigpipe string -threads -sb time -sigpipe string
-nothreads -fs f -threads -nothreads
-gaps n -grow n -fs f -gaps n
-fuzz n -snapfb -grow n -fuzz n
-gui [gui-opts] -remote command -snapfb -gui [gui-opts]
-query variable -sync -remote command -query variable
-noremote -unsafe -sync -noremote
-safer -deny_all -unsafe -safer
-deny_all
libvncserver options: libvncserver options:
-rfbport port TCP port for RFB protocol -rfbport port TCP port for RFB protocol
@ -3166,8 +3191,7 @@ libvncserver options:
% x11vnc -help % x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-02-1 x11vnc: allow VNC connections to real X11 displays. 0.7.1 lastmod: 2005-02-22
4
Typical usage is: Typical usage is:
@ -3188,7 +3212,7 @@ the name of the machine running x11vnc and N is XXXX - 5900, i.e. usually
"vncviewer hostname:0". "vncviewer hostname:0".
By default x11vnc will not allow the screen to be shared and it will exit By default x11vnc will not allow the screen to be shared and it will exit
as soon as a client disconnects. See -shared and -forever below to override as soon as the client disconnects. See -shared and -forever below to override
these protections. See the FAQ on how to tunnel the VNC connection through these protections. See the FAQ on how to tunnel the VNC connection through
an encrypted channel such as ssh(1). an encrypted channel such as ssh(1).
@ -3199,7 +3223,7 @@ For additional info see: http://www.karlrunge.com/x11vnc/
Rudimentary config file support: if the file $HOME/.x11vncrc exists then each Rudimentary config file support: if the file $HOME/.x11vncrc exists then each
line in it is treated as a single command line option. Disable with -norc. line in it is treated as a single command line option. Disable with -norc.
For each option name, the leading character "-" is not required. E.g. a For each option name, the leading character "-" is not required. E.g. a
line that is either "nap" or "-nap" may be used and are equivalent. line that is either "forever" or "-forever" may be used and are equivalent.
Likewise "wait 100" or "-wait 100" are acceptable and equivalent lines. Likewise "wait 100" or "-wait 100" are acceptable and equivalent lines.
The "#" character comments out to the end of the line in the usual way. The "#" character comments out to the end of the line in the usual way.
Leading and trailing whitespace is trimmed off. Lines may be continued with Leading and trailing whitespace is trimmed off. Lines may be continued with
@ -3235,7 +3259,7 @@ Options:
-flashcmap In 8bpp indexed color, let the installed colormap flash -flashcmap In 8bpp indexed color, let the installed colormap flash
as the pointer moves from window to window (slow). as the pointer moves from window to window (slow).
-notruecolor For 8bpp displays, force indexed color (i.e. a colormap) -notruecolor For 8bpp displays, force indexed color (i.e. a colormap)
even if it looks like 8bpp TrueColor. (rare problem) even if it looks like 8bpp TrueColor (rare problem).
-visual n Experimental option: probably does not do what you -visual n Experimental option: probably does not do what you
think. It simply *forces* the visual used for the think. It simply *forces* the visual used for the
framebuffer; this may be a bad thing... (e.g. messes framebuffer; this may be a bad thing... (e.g. messes
@ -3243,8 +3267,8 @@ Options:
and for some workarounds. n may be a decimal number, and for some workarounds. n may be a decimal number,
or 0x hex. Run xdpyinfo(1) for the values. One may or 0x hex. Run xdpyinfo(1) for the values. One may
also use "TrueColor", etc. see <X11/X.h> for a list. also use "TrueColor", etc. see <X11/X.h> for a list.
If the string ends in ":m" for better or for worse If the string ends in ":m" the for better or for
the visual depth is forced to be m. worse the visual depth is forced to be m.
-overlay Handle multiple depth visuals on one screen, e.g. 8+24 -overlay Handle multiple depth visuals on one screen, e.g. 8+24
and 24+8 overlay visuals (the 32 bits per pixel are and 24+8 overlay visuals (the 32 bits per pixel are
packed with 8 for PseudoColor and 24 for TrueColor). packed with 8 for PseudoColor and 24 for TrueColor).
@ -3272,7 +3296,7 @@ Options:
For optimal performance do not use -overlay, but rather For optimal performance do not use -overlay, but rather
configure the X server so that the default visual is configure the X server so that the default visual is
depth 24 TrueColor and try to have all apps use that depth 24 TrueColor and try to have all apps use that
visual (some apps have -use24 or -visual options). visual (e.g. some apps have -use24 or -visual options).
-overlay_nocursor Sets -overlay, but does not try to draw the exact mouse -overlay_nocursor Sets -overlay, but does not try to draw the exact mouse
cursor shape using the overlay mechanism. cursor shape using the overlay mechanism.
@ -3349,15 +3373,16 @@ Options:
effect (all input is discarded). effect (all input is discarded).
-viewpasswd string Supply a 2nd password for view-only logins. The -passwd -viewpasswd string Supply a 2nd password for view-only logins. The -passwd
(full-access) password must also be supplied. (full-access) password must also be supplied.
-passwdfile filename Specify libvncserver -passwd via the first line of -passwdfile filename Specify libvncserver -passwd via the first line of the
the file "filename" instead of via command line. file "filename" instead of via command line (where
If a second non blank line exists in the file it others might see it via ps(1)). If a second non blank
is taken as a view-only password (i.e. -viewpasswd) line exists in the file it is taken as a view-only
To supply an empty password for either field use the password (i.e. -viewpasswd) To supply an empty password
string "__EMPTY__". Note: -passwdfile is a simple for either field the string "__EMPTY__" may be used.
plaintext passwd, see also -rfbauth and -storepasswd Note: -passwdfile is a simple plaintext passwd, see
below for obfuscated passwords. Neither should be also -rfbauth and -storepasswd below for obfuscated
readable by others. VNC password files. Neither file should be readable
by others.
-storepasswd pass file Store password "pass" as the VNC password in the -storepasswd pass file Store password "pass" as the VNC password in the
file "file". Once the password is stored the file "file". Once the password is stored the
program exits. Use the password via "-rfbauth file" program exits. Use the password via "-rfbauth file"
@ -3427,21 +3452,21 @@ Options:
in -accept. Unlike -accept, the command return code in -accept. Unlike -accept, the command return code
is not interpreted by x11vnc. Example: -gone 'xlock &' is not interpreted by x11vnc. Example: -gone 'xlock &'
-users list If x11vnc is started as root (say from inetd(1) or -users list If x11vnc is started as root (say from inetd(1) or from
from display managers xdm(1), gdm(1), etc), then as display managers xdm(1), gdm(1), etc), then as soon
soon as possible after connections to the display are as possible after connections to the X display are
established try to switch to one of the users in the established try to switch to one of the users in the
comma separated "list". If x11vnc is not running as comma separated "list". If x11vnc is not running as
root this option is ignored. root this option is ignored.
Why use this option? In general it is not needed Why use this option? In general it is not needed since
since x11vnc is already connected to the display and x11vnc is already connected to the X display and can
can perform its primary functions. The option was perform its primary functions. The option was added
added to make some of the *external* utility commands to make some of the *external* utility commands x11vnc
x11vnc occasionally runs work properly. In particular occasionally runs work properly. In particular under
under GNOME and KDE to implement the "-solid color" GNOME and KDE to implement the "-solid color" feature
feature external commands (gconftool-2 and dcop) must be external commands (gconftool-2 and dcop) must be run
run as the user owning the desktop session. Since this as the user owning the desktop session. Since this
option switches userid it also affects the userid used option switches userid it also affects the userid used
to run the processes for the -accept and -gone options. to run the processes for the -accept and -gone options.
It also affects the ability to read files for options It also affects the ability to read files for options
@ -3462,16 +3487,16 @@ Options:
Under display managers it may be a long time before Under display managers it may be a long time before
the switch succeeds (i.e. a user logs in). To make the switch succeeds (i.e. a user logs in). To make
it switch immediately regardless if the display it switch immediately regardless if the display
can be reopened prefix the username with the + can be reopened prefix the username with the "+"
character. E.g. "-users +bob" or "-users +nobody". character. E.g. "-users +bob" or "-users +nobody".
The latter (i.e. switching immediately to user The latter (i.e. switching immediately to user
"nobody") is probably the only use of this option "nobody") is probably the only use of this option
that increases security. that increases security.
To immediately switch to a user *before* connections to To immediately switch to a user *before* connections
the display are made or any files opened use the "=" to the X display are made or any files opened use the
character: "-users =bob". That user needs to be able "=" character: "-users =bob". That user needs to
to open the display of course. be able to open the X display of course.
The special user "guess=" means to examine the utmpx The special user "guess=" means to examine the utmpx
database (see who(1)) looking for a user attached to database (see who(1)) looking for a user attached to
@ -3484,12 +3509,13 @@ Options:
database as well. So it "lurks" waiting for anyone database as well. So it "lurks" waiting for anyone
to log into an X session and then connects to it. to log into an X session and then connects to it.
Specify a list of users after the = to limit which Specify a list of users after the = to limit which
users will be tried. If the first user in the list users will be tried. To enable a difference searching
is something like ":0" or ":0-2" that indicates a mode, if the first user in the list is something like
range of DISPLAY numbers that will be tried (regardless ":0" or ":0-2" that indicates a range of DISPLAY
of whether they are in the utmpx database) for all numbers that will be tried (regardless of whether
users that are logged in. Examples: "-users lurk=" they are in the utmpx database) for all users that
and "-users lurk=:0-1,bob,mary" are logged in. Examples: "-users lurk=" and also
"-users lurk=:0-1,bob,mary"
Be especially careful using the "guess=" and "lurk=" Be especially careful using the "guess=" and "lurk="
modes. They are not recommended for use on machines modes. They are not recommended for use on machines
@ -3516,7 +3542,7 @@ Options:
and classic X (i.e. with the background image on the and classic X (i.e. with the background image on the
root window). The "gconftool-2" and "dcop" external root window). The "gconftool-2" and "dcop" external
commands are run for GNOME and KDE respectively. commands are run for GNOME and KDE respectively.
Other desktops won't work, e.g. XFCE (send us the Other desktops won't work, e.g. Xfce (send us the
corresponding commands if you find them). If x11vnc is corresponding commands if you find them). If x11vnc is
running as root (inetd(1) or gdm(1)), the -users option running as root (inetd(1) or gdm(1)), the -users option
may be needed for GNOME and KDE. If x11vnc guesses may be needed for GNOME and KDE. If x11vnc guesses
@ -3529,6 +3555,7 @@ Options:
glued together via XINERAMA, and that screen is glued together via XINERAMA, and that screen is
non-rectangular this option will try to guess the non-rectangular this option will try to guess the
areas to black out (if your system has libXinerama). areas to black out (if your system has libXinerama).
In general on XINERAMA displays you may need to use the In general on XINERAMA displays you may need to use the
-xwarppointer option if the mouse pointer misbehaves. -xwarppointer option if the mouse pointer misbehaves.
@ -3541,16 +3568,16 @@ Options:
'xrandr -q' for more info. [mode] is optional and 'xrandr -q' for more info. [mode] is optional and
described below. described below.
Since watching for XRANDR events and errors increases Since watching for XRANDR events and trapping errors
polling overhead, only use this option if XRANDR changes increases polling overhead, only use this option if
are expected. For example on a rotatable screen PDA or XRANDR changes are expected. For example on a rotatable
laptop, or using a XRANDR-aware Desktop where you resize screen PDA or laptop, or using a XRANDR-aware Desktop
often. It is best to be viewing with a vncviewer that where you resize often. It is best to be viewing with a
supports the NewFBSize encoding, since it knows how to vncviewer that supports the NewFBSize encoding, since it
react to screen size changes. Otherwise, libvncserver knows how to react to screen size changes. Otherwise,
tries to do so something reasonable for viewers that libvncserver tries to do so something reasonable for
cannot do this (portions of the screen may be clipped, viewers that cannot do this (portions of the screen
unused, etc). may be clipped, unused, etc).
"mode" defaults to "resize", which means create a "mode" defaults to "resize", which means create a
new, resized, framebuffer and hope all viewers can cope new, resized, framebuffer and hope all viewers can cope
@ -3566,7 +3593,7 @@ Options:
that do not support NewFBSize and one wants to make that do not support NewFBSize and one wants to make
sure the initial viewer geometry will be big enough sure the initial viewer geometry will be big enough
to handle all subsequent resizes (e.g. under -xrandr, to handle all subsequent resizes (e.g. under -xrandr,
-remote id:windowid, rescaling, etc. -remote id:windowid, rescaling, etc.)
-o logfile Write stderr messages to file "logfile" instead of -o logfile Write stderr messages to file "logfile" instead of
to the terminal. Same as "-logfile file". To append to the terminal. Same as "-logfile file". To append
@ -3575,7 +3602,7 @@ Options:
-norc Do not process any .x11vncrc file for options. -norc Do not process any .x11vncrc file for options.
-h, -help Print this help text. -h, -help Print this help text.
-?, -opts Only list the x11vnc options. -?, -opts Only list the x11vnc options.
-V, -version Print program version (last modification date). -V, -version Print program version and last modification date.
-q Be quiet by printing less informational output to -q Be quiet by printing less informational output to
stderr. Same as -quiet. stderr. Same as -quiet.
@ -3606,11 +3633,11 @@ Options:
reverse problem it tries to solve: Keysym -> Keycode(s) reverse problem it tries to solve: Keysym -> Keycode(s)
when ambiguities exist (more than one Keycode per when ambiguities exist (more than one Keycode per
Keysym). Run 'xmodmap -pk' to see your keymapping. Keysym). Run 'xmodmap -pk' to see your keymapping.
E.g. "-skip_keycodes 94,114" Example: "-skip_keycodes 94,114"
-add_keysyms If a Keysym is received from a VNC viewer and -add_keysyms If a Keysym is received from a VNC viewer and
that Keysym does not exist in the X server, then that Keysym does not exist in the X server, then
add the Keysym to the X server's keyboard mapping. add the Keysym to the X server's keyboard mapping.
Added Keysyms will be removed when exiting. Added Keysyms will be removed when x11vnc exits.
-clear_mods At startup and exit clear the modifier keys by sending -clear_mods At startup and exit clear the modifier keys by sending
KeyRelease for each one. The Lock modifiers are skipped. KeyRelease for each one. The Lock modifiers are skipped.
Used to clear the state if the display was accidentally Used to clear the state if the display was accidentally
@ -3623,10 +3650,10 @@ Options:
or hex value) separated by a space. If no file named or hex value) separated by a space. If no file named
"string" exists, it is instead interpreted as this "string" exists, it is instead interpreted as this
form: key1-key2,key3-key4,... See <X11/keysymdef.h> form: key1-key2,key3-key4,... See <X11/keysymdef.h>
header file for a list of Keysym names, or use header file for a list of Keysym names, or use xev(1).
xev(1). To map a key to a button click, use the To map a key to a button click, use the fake Keysyms
fake Keysyms "Button1", ..., etc. E.g. "-remap "Button1", ..., etc. E.g: "-remap Super_R-Button2"
Super_R-Button2" (useful for pasting on a laptop) (useful for pasting on a laptop)
-norepeat Option -norepeat disables X server key auto repeat -norepeat Option -norepeat disables X server key auto repeat
-repeat when VNC clients are connected. This works around a -repeat when VNC clients are connected. This works around a
repeating keystrokes bug (triggered by long processing repeating keystrokes bug (triggered by long processing
@ -3681,9 +3708,9 @@ Options:
Note that under XFIXES cursors with transparency (alpha Note that under XFIXES cursors with transparency (alpha
channel) will not be exactly represented and one may channel) will not be exactly represented and one may
find Overlay may be preferable. See also the -alphacut find Overlay preferable. See also the -alphacut and
and -alphafrac options below as fudge factors to try -alphafrac options below as fudge factors to try to
to improve the situation for cursors with transparency improve the situation for cursors with transparency
for a given theme. for a given theme.
The "mode" string can be used to fine-tune the The "mode" string can be used to fine-tune the
@ -3872,8 +3899,9 @@ Options:
(deferUpdateTime) Default: 30 (deferUpdateTime) Default: 30
-wait time Time in ms to pause between screen polls. Used to cut -wait time Time in ms to pause between screen polls. Used to cut
down on load. Default: 30 down on load. Default: 30
-nap Monitor activity and if low take longer naps between -nap Monitor activity and if it is low take longer naps
polls to really cut down load when idle. Default: off -nonap 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) -sb time Time in seconds after NO activity (e.g. screen blank)
to really throttle down the screen polls (i.e. sleep to really throttle down the screen polls (i.e. sleep
for about 1.5 secs). Use 0 to disable. Default: 60 for about 1.5 secs). Use 0 to disable. Default: 60
@ -3990,7 +4018,7 @@ Options:
The following -remote/-R commands are supported: The following -remote/-R commands are supported:
stop terminate the server, same as "quit" stop terminate the server, same as "quit"
"exit" or "shutdown" "exit" or "shutdown".
ping see if the x11vnc server responds. ping see if the x11vnc server responds.
Return is: ans=ping:<xdisplay> Return is: ans=ping:<xdisplay>
blacken try to push a black fb update to all blacken try to push a black fb update to all

@ -477,7 +477,7 @@ if {$beginner_mode} {
set helptext(gui) " set helptext(gui) "
tkx11vnc is a simple frontend to x11vnc. It is currently running in tkx11vnc is a simple frontend to x11vnc. It is currently running in
\"ez\" or \"simple\" mode. For many more options run it in normal \"ez\" or \"simple\" mode. For many more options run it in normal
mode buy toggling \"Misc -> simple_gui\". mode by toggling \"Misc -> simple_gui\".
All menu items have a (?) button one can click on to get more information All menu items have a (?) button one can click on to get more information
about the option or command. about the option or command.
@ -666,6 +666,7 @@ proc active_when_starting {item} {
proc help_win {item} { proc help_win {item} {
global helptext helpremote menu_var global helptext helpremote menu_var
global query_ans query_aro global query_ans query_aro
global beginner_mode
set ok 0 set ok 0
set text "Help on $item:\n\n" set text "Help on $item:\n\n"
@ -686,7 +687,9 @@ proc help_win {item} {
} elseif {[active_when_starting $item]} { } elseif {[active_when_starting $item]} {
append text " + Can be set at x11vnc startup.\n"; append text " + Can be set at x11vnc startup.\n";
} else { } else {
append text " - Cannot be set at x11vnc startup.\n"; if {! $beginner_mode} {
append text " - Cannot be set at x11vnc startup.\n";
}
} }
append text "\n" append text "\n"

@ -483,7 +483,7 @@
" set helptext(gui) \"\n" " set helptext(gui) \"\n"
"tkx11vnc is a simple frontend to x11vnc. It is currently running in\n" "tkx11vnc is a simple frontend to x11vnc. It is currently running in\n"
"\\\"ez\\\" or \\\"simple\\\" mode. For many more options run it in normal\n" "\\\"ez\\\" or \\\"simple\\\" mode. For many more options run it in normal\n"
"mode buy toggling \\\"Misc -> simple_gui\\\".\n" "mode by toggling \\\"Misc -> simple_gui\\\".\n"
"\n" "\n"
"All menu items have a (?) button one can click on to get more information\n" "All menu items have a (?) button one can click on to get more information\n"
"about the option or command.\n" "about the option or command.\n"
@ -672,6 +672,7 @@
"proc help_win {item} {\n" "proc help_win {item} {\n"
" global helptext helpremote menu_var\n" " global helptext helpremote menu_var\n"
" global query_ans query_aro\n" " global query_ans query_aro\n"
" global beginner_mode\n"
"\n" "\n"
" set ok 0\n" " set ok 0\n"
" set text \"Help on $item:\\n\\n\"\n" " set text \"Help on $item:\\n\\n\"\n"
@ -692,7 +693,9 @@
" } elseif {[active_when_starting $item]} {\n" " } elseif {[active_when_starting $item]} {\n"
" append text \" + Can be set at x11vnc startup.\\n\";\n" " append text \" + Can be set at x11vnc startup.\\n\";\n"
" } else {\n" " } else {\n"
" append text \" - Cannot be set at x11vnc startup.\\n\";\n" " if {! $beginner_mode} {\n"
" append text \" - Cannot be set at x11vnc startup.\\n\";\n"
" }\n"
" }\n" " }\n"
" append text \"\\n\"\n" " append text \"\\n\"\n"
"\n" "\n"

@ -2,7 +2,7 @@
.TH X11VNC "1" "February 2005" "x11vnc " "User Commands" .TH X11VNC "1" "February 2005" "x11vnc " "User Commands"
.SH NAME .SH NAME
x11vnc - allow VNC connections to real X11 displays x11vnc - allow VNC connections to real X11 displays
version: 0.7.1pre, lastmod: 2005-02-14 version: 0.7.1, lastmod: 2005-02-22
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...
@ -27,7 +27,7 @@ the name of the machine running x11vnc and N is XXXX - 5900, i.e. usually
"vncviewer hostname:0". "vncviewer hostname:0".
.PP .PP
By default x11vnc will not allow the screen to be shared and it will exit By default x11vnc will not allow the screen to be shared and it will exit
as soon as a client disconnects. See \fB-shared\fR and \fB-forever\fR below to override as soon as the client disconnects. See \fB-shared\fR and \fB-forever\fR below to override
these protections. See the FAQ on how to tunnel the VNC connection through these protections. See the FAQ on how to tunnel the VNC connection through
an encrypted channel such as an encrypted channel such as
.IR ssh (1). .IR ssh (1).
@ -38,7 +38,7 @@ and http://www.karlrunge.com/x11vnc/#faq
Rudimentary config file support: if the file $HOME/.x11vncrc exists then each Rudimentary config file support: if the file $HOME/.x11vncrc exists then each
line in it is treated as a single command line option. Disable with \fB-norc.\fR line in it is treated as a single command line option. Disable with \fB-norc.\fR
For each option name, the leading character "-" is not required. E.g. a For each option name, the leading character "-" is not required. E.g. a
line that is either "nap" or "\fB-nap\fR" may be used and are equivalent. line that is either "forever" or "\fB-forever\fR" may be used and are equivalent.
Likewise "wait 100" or "\fB-wait\fR \fI100\fR" are acceptable and equivalent lines. Likewise "wait 100" or "\fB-wait\fR \fI100\fR" are acceptable and equivalent lines.
The "#" character comments out to the end of the line in the usual way. The "#" character comments out to the end of the line in the usual way.
Leading and trailing whitespace is trimmed off. Lines may be continued with Leading and trailing whitespace is trimmed off. Lines may be continued with
@ -97,7 +97,7 @@ as the pointer moves from window to window (slow).
\fB-notruecolor\fR \fB-notruecolor\fR
.IP .IP
For 8bpp displays, force indexed color (i.e. a colormap) For 8bpp displays, force indexed color (i.e. a colormap)
even if it looks like 8bpp TrueColor. (rare problem) even if it looks like 8bpp TrueColor (rare problem).
.PP .PP
\fB-visual\fR \fIn\fR \fB-visual\fR \fIn\fR
.IP .IP
@ -110,8 +110,8 @@ or 0x hex. Run
.IR xdpyinfo (1) .IR xdpyinfo (1)
for the values. One may for the values. One may
also use "TrueColor", etc. see <X11/X.h> for a list. also use "TrueColor", etc. see <X11/X.h> for a list.
If the string ends in ":m" for better or for worse If the string ends in ":m" the for better or for
the visual depth is forced to be m. worse the visual depth is forced to be m.
.PP .PP
\fB-overlay\fR \fB-overlay\fR
.IP .IP
@ -144,7 +144,7 @@ due to the extra image transformations required.
For optimal performance do not use \fB-overlay,\fR but rather For optimal performance do not use \fB-overlay,\fR but rather
configure the X server so that the default visual is configure the X server so that the default visual is
depth 24 TrueColor and try to have all apps use that depth 24 TrueColor and try to have all apps use that
visual (some apps have \fB-use24\fR or \fB-visual\fR options). visual (e.g. some apps have \fB-use24\fR or \fB-visual\fR options).
.PP .PP
\fB-overlay_nocursor\fR \fB-overlay_nocursor\fR
.IP .IP
@ -272,15 +272,18 @@ Supply a 2nd password for view-only logins. The \fB-passwd\fR
.PP .PP
\fB-passwdfile\fR \fIfilename\fR \fB-passwdfile\fR \fIfilename\fR
.IP .IP
Specify libvncserver \fB-passwd\fR via the first line of Specify libvncserver \fB-passwd\fR via the first line of the
the file \fIfilename\fR instead of via command line. file \fIfilename\fR instead of via command line (where
If a second non blank line exists in the file it others might see it via
is taken as a view-only password (i.e. \fB-viewpasswd)\fR .IR ps (1)
To supply an empty password for either field use the ). If a second non blank
string "__EMPTY__". Note: \fB-passwdfile\fR is a simple line exists in the file it is taken as a view-only
plaintext passwd, see also \fB-rfbauth\fR and \fB-storepasswd\fR password (i.e. \fB-viewpasswd)\fR To supply an empty password
below for obfuscated passwords. Neither should be for either field the string "__EMPTY__" may be used.
readable by others. Note: \fB-passwdfile\fR is a simple plaintext passwd, see
also \fB-rfbauth\fR and \fB-storepasswd\fR below for obfuscated
VNC password files. Neither file should be readable
by others.
.PP .PP
\fB-storepasswd\fR \fIpass\fR \fIfile\fR \fB-storepasswd\fR \fIpass\fR \fIfile\fR
.IP .IP
@ -372,25 +375,25 @@ is not interpreted by x11vnc. Example: \fB-gone\fR 'xlock &'
.IP .IP
If x11vnc is started as root (say from If x11vnc is started as root (say from
.IR inetd (1) .IR inetd (1)
or or from
from display managers display managers
.IR xdm (1) .IR xdm (1)
, ,
.IR gdm (1) .IR gdm (1)
, etc), then as , etc), then as soon
soon as possible after connections to the display are as possible after connections to the X display are
established try to switch to one of the users in the established try to switch to one of the users in the
comma separated \fIlist\fR. If x11vnc is not running as comma separated \fIlist\fR. If x11vnc is not running as
root this option is ignored. root this option is ignored.
.IP .IP
Why use this option? In general it is not needed Why use this option? In general it is not needed since
since x11vnc is already connected to the display and x11vnc is already connected to the X display and can
can perform its primary functions. The option was perform its primary functions. The option was added
added to make some of the *external* utility commands to make some of the *external* utility commands x11vnc
x11vnc occasionally runs work properly. In particular occasionally runs work properly. In particular under
under GNOME and KDE to implement the "\fB-solid\fR \fIcolor\fR" GNOME and KDE to implement the "\fB-solid\fR \fIcolor\fR" feature
feature external commands (gconftool-2 and dcop) must be external commands (gconftool-2 and dcop) must be run
run as the user owning the desktop session. Since this as the user owning the desktop session. Since this
option switches userid it also affects the userid used option switches userid it also affects the userid used
to run the processes for the \fB-accept\fR and \fB-gone\fR options. to run the processes for the \fB-accept\fR and \fB-gone\fR options.
It also affects the ability to read files for options It also affects the ability to read files for options
@ -411,16 +414,16 @@ to user "fred". What happens next?
Under display managers it may be a long time before Under display managers it may be a long time before
the switch succeeds (i.e. a user logs in). To make the switch succeeds (i.e. a user logs in). To make
it switch immediately regardless if the display it switch immediately regardless if the display
can be reopened prefix the username with the + can be reopened prefix the username with the "+"
character. E.g. "\fB-users\fR \fI+bob\fR" or "\fB-users\fR \fI+nobody\fR". character. E.g. "\fB-users\fR \fI+bob\fR" or "\fB-users\fR \fI+nobody\fR".
The latter (i.e. switching immediately to user The latter (i.e. switching immediately to user
"nobody") is probably the only use of this option "nobody") is probably the only use of this option
that increases security. that increases security.
.IP .IP
To immediately switch to a user *before* connections to To immediately switch to a user *before* connections
the display are made or any files opened use the "=" to the X display are made or any files opened use the
character: "\fB-users\fR \fI=bob\fR". That user needs to be able "=" character: "\fB-users\fR \fI=bob\fR". That user needs to
to open the display of course. be able to open the X display of course.
.IP .IP
The special user "guess=" means to examine the utmpx The special user "guess=" means to examine the utmpx
database (see database (see
@ -435,12 +438,13 @@ means to try to guess the DISPLAY from the utmpx login
database as well. So it "lurks" waiting for anyone database as well. So it "lurks" waiting for anyone
to log into an X session and then connects to it. to log into an X session and then connects to it.
Specify a list of users after the = to limit which Specify a list of users after the = to limit which
users will be tried. If the first user in the list users will be tried. To enable a difference searching
is something like ":0" or ":0-2" that indicates a mode, if the first user in the list is something like
range of DISPLAY numbers that will be tried (regardless ":0" or ":0-2" that indicates a range of DISPLAY
of whether they are in the utmpx database) for all numbers that will be tried (regardless of whether
users that are logged in. Examples: "\fB-users\fR \fIlurk=\fR" they are in the utmpx database) for all users that
and "\fB-users\fR \fIlurk=:0-1,bob,mary\fR" are logged in. Examples: "\fB-users\fR \fIlurk=\fR" and also
"\fB-users\fR \fIlurk=:0-1,bob,mary\fR"
.IP .IP
Be especially careful using the "guess=" and "lurk=" Be especially careful using the "guess=" and "lurk="
modes. They are not recommended for use on machines modes. They are not recommended for use on machines
@ -477,7 +481,7 @@ Currently this option only works on GNOME, KDE, CDE,
and classic X (i.e. with the background image on the and classic X (i.e. with the background image on the
root window). The "gconftool-2" and "dcop" external root window). The "gconftool-2" and "dcop" external
commands are run for GNOME and KDE respectively. commands are run for GNOME and KDE respectively.
Other desktops won't work, e.g. XFCE (send us the Other desktops won't work, e.g. Xfce (send us the
corresponding commands if you find them). If x11vnc is corresponding commands if you find them). If x11vnc is
running as root ( running as root (
.IR inetd (1) .IR inetd (1)
@ -500,6 +504,7 @@ If your screen is composed of multiple monitors
glued together via XINERAMA, and that screen is glued together via XINERAMA, and that screen is
non-rectangular this option will try to guess the non-rectangular this option will try to guess the
areas to black out (if your system has libXinerama). areas to black out (if your system has libXinerama).
.IP
In general on XINERAMA displays you may need to use the In general on XINERAMA displays you may need to use the
\fB-xwarppointer\fR option if the mouse pointer misbehaves. \fB-xwarppointer\fR option if the mouse pointer misbehaves.
.PP .PP
@ -516,16 +521,16 @@ manpage and run
\'xrandr \fB-q'\fR for more info. [mode] is optional and \'xrandr \fB-q'\fR for more info. [mode] is optional and
described below. described below.
.IP .IP
Since watching for XRANDR events and errors increases Since watching for XRANDR events and trapping errors
polling overhead, only use this option if XRANDR changes increases polling overhead, only use this option if
are expected. For example on a rotatable screen PDA or XRANDR changes are expected. For example on a rotatable
laptop, or using a XRANDR-aware Desktop where you resize screen PDA or laptop, or using a XRANDR-aware Desktop
often. It is best to be viewing with a vncviewer that where you resize often. It is best to be viewing with a
supports the NewFBSize encoding, since it knows how to vncviewer that supports the NewFBSize encoding, since it
react to screen size changes. Otherwise, libvncserver knows how to react to screen size changes. Otherwise,
tries to do so something reasonable for viewers that libvncserver tries to do so something reasonable for
cannot do this (portions of the screen may be clipped, viewers that cannot do this (portions of the screen
unused, etc). may be clipped, unused, etc).
.IP .IP
"mode" defaults to "resize", which means create a "mode" defaults to "resize", which means create a
new, resized, framebuffer and hope all viewers can cope new, resized, framebuffer and hope all viewers can cope
@ -544,7 +549,7 @@ real one. This is intended for use with vncviewers
that do not support NewFBSize and one wants to make that do not support NewFBSize and one wants to make
sure the initial viewer geometry will be big enough sure the initial viewer geometry will be big enough
to handle all subsequent resizes (e.g. under \fB-xrandr,\fR to handle all subsequent resizes (e.g. under \fB-xrandr,\fR
\fB-remote\fR id:windowid, rescaling, etc. \fB-remote\fR id:windowid, rescaling, etc.)
.PP .PP
\fB-o\fR \fIlogfile\fR \fB-o\fR \fIlogfile\fR
.IP .IP
@ -567,7 +572,7 @@ Print this help text.
.PP .PP
\fB-V,\fR \fB-version\fR \fB-V,\fR \fB-version\fR
.IP .IP
Print program version (last modification date). Print program version and last modification date.
.PP .PP
\fB-q\fR \fB-q\fR
.IP .IP
@ -615,14 +620,14 @@ to \fB-xkb\fR mode. Use this option to help x11vnc in the
reverse problem it tries to solve: Keysym -> Keycode(s) reverse problem it tries to solve: Keysym -> Keycode(s)
when ambiguities exist (more than one Keycode per when ambiguities exist (more than one Keycode per
Keysym). Run 'xmodmap \fB-pk'\fR to see your keymapping. Keysym). Run 'xmodmap \fB-pk'\fR to see your keymapping.
E.g. "\fB-skip_keycodes\fR \fI94,114\fR" Example: "\fB-skip_keycodes\fR \fI94,114\fR"
.PP .PP
\fB-add_keysyms\fR \fB-add_keysyms\fR
.IP .IP
If a Keysym is received from a VNC viewer and If a Keysym is received from a VNC viewer and
that Keysym does not exist in the X server, then that Keysym does not exist in the X server, then
add the Keysym to the X server's keyboard mapping. add the Keysym to the X server's keyboard mapping.
Added Keysyms will be removed when exiting. Added Keysyms will be removed when x11vnc exits.
.PP .PP
\fB-clear_mods\fR \fB-clear_mods\fR
.IP .IP
@ -644,11 +649,11 @@ Format is one pair of Keysyms per line (can be name
or hex value) separated by a space. If no file named or hex value) separated by a space. If no file named
\fIstring\fR exists, it is instead interpreted as this \fIstring\fR exists, it is instead interpreted as this
form: key1-key2,key3-key4,... See <X11/keysymdef.h> form: key1-key2,key3-key4,... See <X11/keysymdef.h>
header file for a list of Keysym names, or use header file for a list of Keysym names, or use
.IR xev (1). .IR xev (1).
To map a key to a button click, use the To map a key to a button click, use the fake Keysyms
fake Keysyms "Button1", ..., etc. E.g. "-remap "Button1", ..., etc. E.g: "\fB-remap\fR \fISuper_R-Button2\fR"
Super_R-Button2" (useful for pasting on a laptop) (useful for pasting on a laptop)
.PP .PP
\fB-norepeat,\fR \fB-repeat\fR \fB-norepeat,\fR \fB-repeat\fR
.IP .IP
@ -719,9 +724,9 @@ option below.
.IP .IP
Note that under XFIXES cursors with transparency (alpha Note that under XFIXES cursors with transparency (alpha
channel) will not be exactly represented and one may channel) will not be exactly represented and one may
find Overlay may be preferable. See also the \fB-alphacut\fR find Overlay preferable. See also the \fB-alphacut\fR and
and \fB-alphafrac\fR options below as fudge factors to try \fB-alphafrac\fR options below as fudge factors to try to
to improve the situation for cursors with transparency improve the situation for cursors with transparency
for a given theme. for a given theme.
.IP .IP
The "mode" string can be used to fine-tune the The "mode" string can be used to fine-tune the
@ -964,8 +969,12 @@ down on load. Default: 30
.PP .PP
\fB-nap\fR \fB-nap\fR
.IP .IP
Monitor activity and if low take longer naps between Monitor activity and if it is low take longer naps
polls to really cut down load when idle. Default: off .PP
\fB-nonap\fR
.IP
between screen polls to really cut down load when idle.
Default: take naps
.PP .PP
\fB-sb\fR \fItime\fR \fB-sb\fR \fItime\fR
.IP .IP
@ -1109,7 +1118,7 @@ Please report reproducible bugs.
The following \fB-remote/-R\fR commands are supported: The following \fB-remote/-R\fR commands are supported:
.IP .IP
stop terminate the server, same as "quit" stop terminate the server, same as "quit"
"exit" or "shutdown" "exit" or "shutdown".
.IP .IP
ping see if the x11vnc server responds. ping see if the x11vnc server responds.
Return is: ans=ping:<xdisplay> Return is: ans=ping:<xdisplay>

@ -290,7 +290,7 @@ static int xdamage_base_event_type;
#endif #endif
/* date +'lastmod: %Y-%m-%d' */ /* date +'lastmod: %Y-%m-%d' */
char lastmod[] = "0.7.1pre lastmod: 2005-02-14"; char lastmod[] = "0.7.1 lastmod: 2005-02-22";
/* X display info */ /* X display info */
@ -657,8 +657,8 @@ int defer_update = 30; /* deferUpdateTime ms to wait before sends. */
int screen_blank = 60; /* number of seconds of no activity to throttle */ int screen_blank = 60; /* number of seconds of no activity to throttle */
/* down the screen polls. zero to disable. */ /* down the screen polls. zero to disable. */
int take_naps = 0; int take_naps = 1; /* -nap/-nonap */
int naptile = 3; /* tile change threshold per poll to take a nap */ int naptile = 4; /* tile change threshold per poll to take a nap */
int napfac = 4; /* time = napfac*waitms, cut load with extra waits */ int napfac = 4; /* time = napfac*waitms, cut load with extra waits */
int napmax = 1500; /* longest nap in ms. */ int napmax = 1500; /* longest nap in ms. */
int ui_skip = 10; /* see watchloop. negative means ignore input */ int ui_skip = 10; /* see watchloop. negative means ignore input */
@ -16411,7 +16411,7 @@ static void print_help(int mode) {
"\"vncviewer hostname:0\".\n" "\"vncviewer hostname:0\".\n"
"\n" "\n"
"By default x11vnc will not allow the screen to be shared and it will exit\n" "By default x11vnc will not allow the screen to be shared and it will exit\n"
"as soon as a client disconnects. See -shared and -forever below to override\n" "as soon as the client disconnects. See -shared and -forever below to override\n"
"these protections. See the FAQ on how to tunnel the VNC connection through\n" "these protections. See the FAQ on how to tunnel the VNC connection through\n"
"an encrypted channel such as ssh(1).\n" "an encrypted channel such as ssh(1).\n"
"\n" "\n"
@ -16422,7 +16422,7 @@ static void print_help(int mode) {
"Rudimentary config file support: if the file $HOME/.x11vncrc exists then each\n" "Rudimentary config file support: if the file $HOME/.x11vncrc exists then each\n"
"line in it is treated as a single command line option. Disable with -norc.\n" "line in it is treated as a single command line option. Disable with -norc.\n"
"For each option name, the leading character \"-\" is not required. E.g. a\n" "For each option name, the leading character \"-\" is not required. E.g. a\n"
"line that is either \"nap\" or \"-nap\" may be used and are equivalent.\n" "line that is either \"forever\" or \"-forever\" may be used and are equivalent.\n"
"Likewise \"wait 100\" or \"-wait 100\" are acceptable and equivalent lines.\n" "Likewise \"wait 100\" or \"-wait 100\" are acceptable and equivalent lines.\n"
"The \"#\" character comments out to the end of the line in the usual way.\n" "The \"#\" character comments out to the end of the line in the usual way.\n"
"Leading and trailing whitespace is trimmed off. Lines may be continued with\n" "Leading and trailing whitespace is trimmed off. Lines may be continued with\n"
@ -16458,7 +16458,7 @@ static void print_help(int mode) {
"-flashcmap In 8bpp indexed color, let the installed colormap flash\n" "-flashcmap In 8bpp indexed color, let the installed colormap flash\n"
" as the pointer moves from window to window (slow).\n" " as the pointer moves from window to window (slow).\n"
"-notruecolor For 8bpp displays, force indexed color (i.e. a colormap)\n" "-notruecolor For 8bpp displays, force indexed color (i.e. a colormap)\n"
" even if it looks like 8bpp TrueColor. (rare problem)\n" " even if it looks like 8bpp TrueColor (rare problem).\n"
"-visual n Experimental option: probably does not do what you\n" "-visual n Experimental option: probably does not do what you\n"
" think. It simply *forces* the visual used for the\n" " think. It simply *forces* the visual used for the\n"
" framebuffer; this may be a bad thing... (e.g. messes\n" " framebuffer; this may be a bad thing... (e.g. messes\n"
@ -16466,8 +16466,8 @@ static void print_help(int mode) {
" and for some workarounds. n may be a decimal number,\n" " and for some workarounds. n may be a decimal number,\n"
" or 0x hex. Run xdpyinfo(1) for the values. One may\n" " or 0x hex. Run xdpyinfo(1) for the values. One may\n"
" also use \"TrueColor\", etc. see <X11/X.h> for a list.\n" " also use \"TrueColor\", etc. see <X11/X.h> for a list.\n"
" If the string ends in \":m\" for better or for worse\n" " If the string ends in \":m\" the for better or for\n"
" the visual depth is forced to be m.\n" " worse the visual depth is forced to be m.\n"
"-overlay Handle multiple depth visuals on one screen, e.g. 8+24\n" "-overlay Handle multiple depth visuals on one screen, e.g. 8+24\n"
" and 24+8 overlay visuals (the 32 bits per pixel are\n" " and 24+8 overlay visuals (the 32 bits per pixel are\n"
" packed with 8 for PseudoColor and 24 for TrueColor).\n" " packed with 8 for PseudoColor and 24 for TrueColor).\n"
@ -16495,7 +16495,7 @@ static void print_help(int mode) {
" For optimal performance do not use -overlay, but rather\n" " For optimal performance do not use -overlay, but rather\n"
" configure the X server so that the default visual is\n" " configure the X server so that the default visual is\n"
" depth 24 TrueColor and try to have all apps use that\n" " depth 24 TrueColor and try to have all apps use that\n"
" visual (some apps have -use24 or -visual options).\n" " visual (e.g. some apps have -use24 or -visual options).\n"
"-overlay_nocursor Sets -overlay, but does not try to draw the exact mouse\n" "-overlay_nocursor Sets -overlay, but does not try to draw the exact mouse\n"
" cursor shape using the overlay mechanism.\n" " cursor shape using the overlay mechanism.\n"
"\n" "\n"
@ -16572,15 +16572,16 @@ static void print_help(int mode) {
" effect (all input is discarded).\n" " effect (all input is discarded).\n"
"-viewpasswd string Supply a 2nd password for view-only logins. The -passwd\n" "-viewpasswd string Supply a 2nd password for view-only logins. The -passwd\n"
" (full-access) password must also be supplied.\n" " (full-access) password must also be supplied.\n"
"-passwdfile filename Specify libvncserver -passwd via the first line of\n" "-passwdfile filename Specify libvncserver -passwd via the first line of the\n"
" the file \"filename\" instead of via command line.\n" " file \"filename\" instead of via command line (where\n"
" If a second non blank line exists in the file it\n" " others might see it via ps(1)). If a second non blank\n"
" is taken as a view-only password (i.e. -viewpasswd)\n" " line exists in the file it is taken as a view-only\n"
" To supply an empty password for either field use the\n" " password (i.e. -viewpasswd) To supply an empty password\n"
" string \"__EMPTY__\". Note: -passwdfile is a simple\n" " for either field the string \"__EMPTY__\" may be used.\n"
" plaintext passwd, see also -rfbauth and -storepasswd\n" " Note: -passwdfile is a simple plaintext passwd, see\n"
" below for obfuscated passwords. Neither should be\n" " also -rfbauth and -storepasswd below for obfuscated\n"
" readable by others.\n" " VNC password files. Neither file should be readable\n"
" by others.\n"
"-storepasswd pass file Store password \"pass\" as the VNC password in the\n" "-storepasswd pass file Store password \"pass\" as the VNC password in the\n"
" file \"file\". Once the password is stored the\n" " file \"file\". Once the password is stored the\n"
" program exits. Use the password via \"-rfbauth file\"\n" " program exits. Use the password via \"-rfbauth file\"\n"
@ -16650,21 +16651,21 @@ static void print_help(int mode) {
" in -accept. Unlike -accept, the command return code\n" " in -accept. Unlike -accept, the command return code\n"
" is not interpreted by x11vnc. Example: -gone 'xlock &'\n" " is not interpreted by x11vnc. Example: -gone 'xlock &'\n"
"\n" "\n"
"-users list If x11vnc is started as root (say from inetd(1) or\n" "-users list If x11vnc is started as root (say from inetd(1) or from\n"
" from display managers xdm(1), gdm(1), etc), then as\n" " display managers xdm(1), gdm(1), etc), then as soon\n"
" soon as possible after connections to the display are\n" " as possible after connections to the X display are\n"
" established try to switch to one of the users in the\n" " established try to switch to one of the users in the\n"
" comma separated \"list\". If x11vnc is not running as\n" " comma separated \"list\". If x11vnc is not running as\n"
" root this option is ignored.\n" " root this option is ignored.\n"
" \n" " \n"
" Why use this option? In general it is not needed\n" " Why use this option? In general it is not needed since\n"
" since x11vnc is already connected to the display and\n" " x11vnc is already connected to the X display and can\n"
" can perform its primary functions. The option was\n" " perform its primary functions. The option was added\n"
" added to make some of the *external* utility commands\n" " to make some of the *external* utility commands x11vnc\n"
" x11vnc occasionally runs work properly. In particular\n" " occasionally runs work properly. In particular under\n"
" under GNOME and KDE to implement the \"-solid color\"\n" " GNOME and KDE to implement the \"-solid color\" feature\n"
" feature external commands (gconftool-2 and dcop) must be\n" " external commands (gconftool-2 and dcop) must be run\n"
" run as the user owning the desktop session. Since this\n" " as the user owning the desktop session. Since this\n"
" option switches userid it also affects the userid used\n" " option switches userid it also affects the userid used\n"
" to run the processes for the -accept and -gone options.\n" " to run the processes for the -accept and -gone options.\n"
" It also affects the ability to read files for options\n" " It also affects the ability to read files for options\n"
@ -16685,16 +16686,16 @@ static void print_help(int mode) {
" Under display managers it may be a long time before\n" " Under display managers it may be a long time before\n"
" the switch succeeds (i.e. a user logs in). To make\n" " the switch succeeds (i.e. a user logs in). To make\n"
" it switch immediately regardless if the display\n" " it switch immediately regardless if the display\n"
" can be reopened prefix the username with the +\n" " can be reopened prefix the username with the \"+\"\n"
" character. E.g. \"-users +bob\" or \"-users +nobody\".\n" " character. E.g. \"-users +bob\" or \"-users +nobody\".\n"
" The latter (i.e. switching immediately to user\n" " The latter (i.e. switching immediately to user\n"
" \"nobody\") is probably the only use of this option\n" " \"nobody\") is probably the only use of this option\n"
" that increases security.\n" " that increases security.\n"
" \n" " \n"
" To immediately switch to a user *before* connections to\n" " To immediately switch to a user *before* connections\n"
" the display are made or any files opened use the \"=\"\n" " to the X display are made or any files opened use the\n"
" character: \"-users =bob\". That user needs to be able\n" " \"=\" character: \"-users =bob\". That user needs to\n"
" to open the display of course.\n" " be able to open the X display of course.\n"
" \n" " \n"
" The special user \"guess=\" means to examine the utmpx\n" " The special user \"guess=\" means to examine the utmpx\n"
" database (see who(1)) looking for a user attached to\n" " database (see who(1)) looking for a user attached to\n"
@ -16707,12 +16708,13 @@ static void print_help(int mode) {
" database as well. So it \"lurks\" waiting for anyone\n" " database as well. So it \"lurks\" waiting for anyone\n"
" to log into an X session and then connects to it.\n" " to log into an X session and then connects to it.\n"
" Specify a list of users after the = to limit which\n" " Specify a list of users after the = to limit which\n"
" users will be tried. If the first user in the list\n" " users will be tried. To enable a difference searching\n"
" is something like \":0\" or \":0-2\" that indicates a\n" " mode, if the first user in the list is something like\n"
" range of DISPLAY numbers that will be tried (regardless\n" " \":0\" or \":0-2\" that indicates a range of DISPLAY\n"
" of whether they are in the utmpx database) for all\n" " numbers that will be tried (regardless of whether\n"
" users that are logged in. Examples: \"-users lurk=\"\n" " they are in the utmpx database) for all users that\n"
" and \"-users lurk=:0-1,bob,mary\"\n" " are logged in. Examples: \"-users lurk=\" and also\n"
" \"-users lurk=:0-1,bob,mary\"\n"
" \n" " \n"
" Be especially careful using the \"guess=\" and \"lurk=\"\n" " Be especially careful using the \"guess=\" and \"lurk=\"\n"
" modes. They are not recommended for use on machines\n" " modes. They are not recommended for use on machines\n"
@ -16739,7 +16741,7 @@ static void print_help(int mode) {
" and classic X (i.e. with the background image on the\n" " and classic X (i.e. with the background image on the\n"
" root window). The \"gconftool-2\" and \"dcop\" external\n" " root window). The \"gconftool-2\" and \"dcop\" external\n"
" commands are run for GNOME and KDE respectively.\n" " commands are run for GNOME and KDE respectively.\n"
" Other desktops won't work, e.g. XFCE (send us the\n" " Other desktops won't work, e.g. Xfce (send us the\n"
" corresponding commands if you find them). If x11vnc is\n" " corresponding commands if you find them). If x11vnc is\n"
" running as root (inetd(1) or gdm(1)), the -users option\n" " running as root (inetd(1) or gdm(1)), the -users option\n"
" may be needed for GNOME and KDE. If x11vnc guesses\n" " may be needed for GNOME and KDE. If x11vnc guesses\n"
@ -16752,6 +16754,7 @@ static void print_help(int mode) {
" glued together via XINERAMA, and that screen is\n" " glued together via XINERAMA, and that screen is\n"
" non-rectangular this option will try to guess the\n" " non-rectangular this option will try to guess the\n"
" areas to black out (if your system has libXinerama).\n" " areas to black out (if your system has libXinerama).\n"
"\n"
" In general on XINERAMA displays you may need to use the\n" " In general on XINERAMA displays you may need to use the\n"
" -xwarppointer option if the mouse pointer misbehaves.\n" " -xwarppointer option if the mouse pointer misbehaves.\n"
"\n" "\n"
@ -16764,16 +16767,16 @@ static void print_help(int mode) {
" 'xrandr -q' for more info. [mode] is optional and\n" " 'xrandr -q' for more info. [mode] is optional and\n"
" described below.\n" " described below.\n"
"\n" "\n"
" Since watching for XRANDR events and errors increases\n" " Since watching for XRANDR events and trapping errors\n"
" polling overhead, only use this option if XRANDR changes\n" " increases polling overhead, only use this option if\n"
" are expected. For example on a rotatable screen PDA or\n" " XRANDR changes are expected. For example on a rotatable\n"
" laptop, or using a XRANDR-aware Desktop where you resize\n" " screen PDA or laptop, or using a XRANDR-aware Desktop\n"
" often. It is best to be viewing with a vncviewer that\n" " where you resize often. It is best to be viewing with a\n"
" supports the NewFBSize encoding, since it knows how to\n" " vncviewer that supports the NewFBSize encoding, since it\n"
" react to screen size changes. Otherwise, libvncserver\n" " knows how to react to screen size changes. Otherwise,\n"
" tries to do so something reasonable for viewers that\n" " libvncserver tries to do so something reasonable for\n"
" cannot do this (portions of the screen may be clipped,\n" " viewers that cannot do this (portions of the screen\n"
" unused, etc).\n" " may be clipped, unused, etc).\n"
"\n" "\n"
" \"mode\" defaults to \"resize\", which means create a\n" " \"mode\" defaults to \"resize\", which means create a\n"
" new, resized, framebuffer and hope all viewers can cope\n" " new, resized, framebuffer and hope all viewers can cope\n"
@ -16789,7 +16792,7 @@ static void print_help(int mode) {
" that do not support NewFBSize and one wants to make\n" " that do not support NewFBSize and one wants to make\n"
" sure the initial viewer geometry will be big enough\n" " sure the initial viewer geometry will be big enough\n"
" to handle all subsequent resizes (e.g. under -xrandr,\n" " to handle all subsequent resizes (e.g. under -xrandr,\n"
" -remote id:windowid, rescaling, etc.\n" " -remote id:windowid, rescaling, etc.)\n"
"\n" "\n"
"-o logfile Write stderr messages to file \"logfile\" instead of\n" "-o logfile Write stderr messages to file \"logfile\" instead of\n"
" to the terminal. Same as \"-logfile file\". To append\n" " to the terminal. Same as \"-logfile file\". To append\n"
@ -16798,7 +16801,7 @@ static void print_help(int mode) {
"-norc Do not process any .x11vncrc file for options.\n" "-norc Do not process any .x11vncrc file for options.\n"
"-h, -help Print this help text.\n" "-h, -help Print this help text.\n"
"-?, -opts Only list the x11vnc options.\n" "-?, -opts Only list the x11vnc options.\n"
"-V, -version Print program version (last modification date).\n" "-V, -version Print program version and last modification date.\n"
"\n" "\n"
"-q Be quiet by printing less informational output to\n" "-q Be quiet by printing less informational output to\n"
" stderr. Same as -quiet.\n" " stderr. Same as -quiet.\n"
@ -16833,11 +16836,11 @@ static void print_help(int mode) {
" reverse problem it tries to solve: Keysym -> Keycode(s)\n" " reverse problem it tries to solve: Keysym -> Keycode(s)\n"
" when ambiguities exist (more than one Keycode per\n" " when ambiguities exist (more than one Keycode per\n"
" Keysym). Run 'xmodmap -pk' to see your keymapping.\n" " Keysym). Run 'xmodmap -pk' to see your keymapping.\n"
" E.g. \"-skip_keycodes 94,114\"\n" " Example: \"-skip_keycodes 94,114\"\n"
"-add_keysyms If a Keysym is received from a VNC viewer and\n" "-add_keysyms If a Keysym is received from a VNC viewer and\n"
" that Keysym does not exist in the X server, then\n" " that Keysym does not exist in the X server, then\n"
" add the Keysym to the X server's keyboard mapping.\n" " add the Keysym to the X server's keyboard mapping.\n"
" Added Keysyms will be removed when exiting.\n" " Added Keysyms will be removed when x11vnc exits.\n"
#if 0 #if 0
"-xkbcompat Ignore the XKEYBOARD extension. Use as a workaround for\n" "-xkbcompat Ignore the XKEYBOARD extension. Use as a workaround for\n"
" some keyboard mapping problems. E.g. if you are using\n" " some keyboard mapping problems. E.g. if you are using\n"
@ -16858,10 +16861,10 @@ static void print_help(int mode) {
" or hex value) separated by a space. If no file named\n" " or hex value) separated by a space. If no file named\n"
" \"string\" exists, it is instead interpreted as this\n" " \"string\" exists, it is instead interpreted as this\n"
" form: key1-key2,key3-key4,... See <X11/keysymdef.h>\n" " form: key1-key2,key3-key4,... See <X11/keysymdef.h>\n"
" header file for a list of Keysym names, or use\n" " header file for a list of Keysym names, or use xev(1).\n"
" xev(1). To map a key to a button click, use the\n" " To map a key to a button click, use the fake Keysyms\n"
" fake Keysyms \"Button1\", ..., etc. E.g. \"-remap\n" " \"Button1\", ..., etc. E.g: \"-remap Super_R-Button2\"\n"
" Super_R-Button2\" (useful for pasting on a laptop)\n" " (useful for pasting on a laptop)\n"
"-norepeat Option -norepeat disables X server key auto repeat\n" "-norepeat Option -norepeat disables X server key auto repeat\n"
"-repeat when VNC clients are connected. This works around a\n" "-repeat when VNC clients are connected. This works around a\n"
" repeating keystrokes bug (triggered by long processing\n" " repeating keystrokes bug (triggered by long processing\n"
@ -16916,9 +16919,9 @@ static void print_help(int mode) {
" \n" " \n"
" Note that under XFIXES cursors with transparency (alpha\n" " Note that under XFIXES cursors with transparency (alpha\n"
" channel) will not be exactly represented and one may\n" " channel) will not be exactly represented and one may\n"
" find Overlay may be preferable. See also the -alphacut\n" " find Overlay preferable. See also the -alphacut and\n"
" and -alphafrac options below as fudge factors to try\n" " -alphafrac options below as fudge factors to try to\n"
" to improve the situation for cursors with transparency\n" " improve the situation for cursors with transparency\n"
" for a given theme.\n" " for a given theme.\n"
"\n" "\n"
" The \"mode\" string can be used to fine-tune the\n" " The \"mode\" string can be used to fine-tune the\n"
@ -17107,8 +17110,9 @@ static void print_help(int mode) {
" (deferUpdateTime) Default: %d\n" " (deferUpdateTime) Default: %d\n"
"-wait time Time in ms to pause between screen polls. Used to cut\n" "-wait time Time in ms to pause between screen polls. Used to cut\n"
" down on load. Default: %d\n" " down on load. Default: %d\n"
"-nap Monitor activity and if low take longer naps between\n" "-nap Monitor activity and if it is low take longer naps\n"
" polls to really cut down load when idle. Default: %s\n" "-nonap between screen polls to really cut down load when idle.\n"
" Default: %s\n"
"-sb time Time in seconds after NO activity (e.g. screen blank)\n" "-sb time Time in seconds after NO activity (e.g. screen blank)\n"
" to really throttle down the screen polls (i.e. sleep\n" " to really throttle down the screen polls (i.e. sleep\n"
" for about 1.5 secs). Use 0 to disable. Default: %d\n" " for about 1.5 secs). Use 0 to disable. Default: %d\n"
@ -17225,7 +17229,7 @@ static void print_help(int mode) {
" The following -remote/-R commands are supported:\n" " The following -remote/-R commands are supported:\n"
"\n" "\n"
" stop terminate the server, same as \"quit\"\n" " stop terminate the server, same as \"quit\"\n"
" \"exit\" or \"shutdown\"\n" " \"exit\" or \"shutdown\".\n"
" ping see if the x11vnc server responds.\n" " ping see if the x11vnc server responds.\n"
" Return is: ans=ping:<xdisplay>\n" " Return is: ans=ping:<xdisplay>\n"
" blacken try to push a black fb update to all\n" " blacken try to push a black fb update to all\n"
@ -17579,7 +17583,7 @@ static void print_help(int mode) {
ui_skip, ui_skip,
defer_update, defer_update,
waitms, waitms,
take_naps ? "on":"off", take_naps ? "take naps":"no naps",
screen_blank, screen_blank,
use_threads ? "-threads":"-nothreads", use_threads ? "-threads":"-nothreads",
fs_frac, fs_frac,
@ -18278,6 +18282,8 @@ int main(int argc, char* argv[]) {
waitms = atoi(argv[++i]); waitms = atoi(argv[++i]);
} else if (!strcmp(arg, "-nap")) { } else if (!strcmp(arg, "-nap")) {
take_naps = 1; take_naps = 1;
} else if (!strcmp(arg, "-nonap")) {
take_naps = 0;
} else if (!strcmp(arg, "-sb")) { } else if (!strcmp(arg, "-sb")) {
CHECK_ARGC CHECK_ARGC
screen_blank = atoi(argv[++i]); screen_blank = atoi(argv[++i]);
@ -18663,7 +18669,7 @@ int main(int argc, char* argv[]) {
fprintf(stderr, " logfile: %s\n", logfile ? logfile fprintf(stderr, " logfile: %s\n", logfile ? logfile
: "null"); : "null");
fprintf(stderr, " logappend: %d\n", logfile_append); fprintf(stderr, " logappend: %d\n", logfile_append);
fprintf(stderr, " rc_file: %s\n", rc_rcfile ? rc_rcfile fprintf(stderr, " rc_file: \"%s\"\n", rc_rcfile ? rc_rcfile
: "null"); : "null");
fprintf(stderr, " norc: %d\n", rc_norc); fprintf(stderr, " norc: %d\n", rc_norc);
fprintf(stderr, " bg: %d\n", bg); fprintf(stderr, " bg: %d\n", bg);

Loading…
Cancel
Save