summaryrefslogtreecommitdiffstats
path: root/x11vnc/help.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/help.c')
-rw-r--r--x11vnc/help.c113
1 files changed, 87 insertions, 26 deletions
diff --git a/x11vnc/help.c b/x11vnc/help.c
index 90dddfd..5eb80cc 100644
--- a/x11vnc/help.c
+++ b/x11vnc/help.c
@@ -467,6 +467,12 @@ void print_help(int mode) {
"-forever Keep listening for more connections rather than exiting\n"
" as soon as the first client(s) disconnect. Same as -many\n"
"\n"
+" To get the standard non-shared VNC behavior where when\n"
+" a new VNC client connects the existing VNC client is\n"
+" dropped use: -nevershared -forever This method can\n"
+" also be used to guard against hung TCP connections that\n"
+" do not go away.\n"
+"\n"
"-loop Create an outer loop restarting the x11vnc process\n"
" whenever it terminates. -bg and -inetd are ignored\n"
" in this mode (however see -loopbg below).\n"
@@ -574,6 +580,11 @@ void print_help(int mode) {
" may need to start avahi-daemon and open udp port 5353\n"
" in your firewall.\n"
"\n"
+" You can set X11VNC_AVAHI_NAME, X11VNC_AVAHI_HOST,\n"
+" and/or X11VNC_AVAHI_PORT environment variables\n"
+" to override the default values. For example:\n"
+" -env X11VNC_AVAHI_NAME=wally\n"
+"\n"
" If the avahi API cannot be found at build time, a helper\n"
" program like avahi-publish(1) or dns-sd(1) will be tried\n"
"\n"
@@ -1212,13 +1223,13 @@ void print_help(int mode) {
" virtual terminal of the X server.\n"
"-listdpy Have the FINDDISPLAY program list all of your displays\n"
" (i.e. all the X displays on the local machine that you\n"
-" have access rights to).\n"
+" have access rights to). x11vnc then exits.\n"
"\n"
"-findauth [disp] Apply the -find/-finddpy heuristics to try to guess\n"
" the XAUTHORITY file for DISPLAY 'disp'. If 'disp'\n"
" is not supplied, then the value in the -display on\n"
" the cmdline is used; failing that $DISPLAY is used;\n"
-" and failing that \":0\" is used.\n"
+" and failing that \":0\" is used. x11vnc then exits.\n"
"\n"
" If nothing is printed out, that means no XAUTHORITY was\n"
" found for 'disp'; i.e. failure. If \"XAUTHORITY=\"\n"
@@ -1454,8 +1465,19 @@ void print_help(int mode) {
" if the viewer-side supplied value is not completely\n"
" composed of alphanumeric or '_' or '-' characters.\n"
"\n"
+" User preferences file: Instead of having the user type\n"
+" in geom=WxH,... etc. every time he logs in to find\n"
+" or create his X session, if you set FD_USERPREFS to\n"
+" a string that does not contain the \"/\" character,\n"
+" then the user's home directory is prepended to that\n"
+" string and if the file exists its first line is read\n"
+" and appended to any options he supplied at the login:\n"
+" prompt. For example -env FD_USERPREFS=.x11vnc_create\n"
+" and the user put \"geom=1600x1200\" in his\n"
+" ~/.x11vnc_create file.\n"
+"\n"
" To troubleshoot the FINDCREATEDISPLAY mechanism,\n"
-" set the following env. var. to an ouput log file,\n"
+" set the following env. var. to an output log file,\n"
" e.g -env CREATE_DISPLAY_OUTPUT=/tmp/mydebug.txt\n"
"\n"
" To disable the option setting set the environment\n"
@@ -1544,6 +1566,8 @@ void print_help(int mode) {
"\n"
" It will start looking for an open display number at :20\n"
" Override via X11VNC_CREATE_STARTING_DISPLAY_NUMBER=n\n"
+" By default 80 X displays are allowed (i.e. going to :99)\n"
+" Override via X11VNC_CREATE_MAX_DISPLAYS=n\n"
"\n"
" By default FINDCREATEDISPLAY will try Xvfb and then\n"
" Xdummy:\n"
@@ -2066,6 +2090,7 @@ void print_help(int mode) {
"\n"
"-sslGenCA [dir] Generate your own Certificate Authority private key,\n"
" certificate, and other files in directory [dir].\n"
+" x11vnc then exits.\n"
"\n"
" If [dir] is not supplied, a -ssldir setting is used,\n"
" or otherwise ~/.vnc/certs is used.\n"
@@ -2076,7 +2101,7 @@ void print_help(int mode) {
" in PATH.\n"
"\n"
" After the CA files and directories are created the\n"
-" command exits; the VNC server is not run.\n"
+" x11vnc command exits; the VNC server is not run.\n"
"\n"
" You will be prompted for information to put into the CA\n"
" certificate. The info does not have to be accurate just\n"
@@ -2104,8 +2129,8 @@ void print_help(int mode) {
" -sslGenCA. The openssl(1) program must be installed\n"
" on the system and available in PATH.\n"
"\n"
-" After the Certificate is generated the command exits;\n"
-" the VNC server is not run.\n"
+" After the Certificate is generated x11vnc exits; the\n"
+" VNC server is not run.\n"
"\n"
" The type of key to be generated is the string \"type\".\n"
" It is either \"server\" (i.e. for use by x11vnc) or\n"
@@ -2225,7 +2250,7 @@ void print_help(int mode) {
" scp ~/.vnc/certs/clients/roger.pem somehost:.\n"
" rm ~/.vnc/certs/clients/roger.pem\n"
"\n"
-" x11vnc is then started with the the option -sslverify\n"
+" x11vnc is then started with the option -sslverify\n"
" ~/.vnc/certs/clients/roger.crt (or simply -sslverify\n"
" roger), and on the viewer user on somehost could do\n"
" for example:\n"
@@ -2248,7 +2273,7 @@ void print_help(int mode) {
"\n"
" The openssl(1) program must be installed on the system\n"
" and available in PATH. After the Key file is encrypted\n"
-" the command exits; the VNC server is not run.\n"
+" the x11vnc command exits; the VNC server is not run.\n"
"\n"
" Examples:\n"
" x11vnc -sslEncKey /path/to/foo.pem\n"
@@ -2260,6 +2285,9 @@ void print_help(int mode) {
" The openssl(1) program must be in PATH. Basically the\n"
" command \"openssl x509 -text\" is run on the pem.\n"
"\n"
+" After the info is printed the x11vnc command exits;\n"
+" the VNC server is not run.\n"
+"\n"
" The \"SAVE\" notation described under -ssl applies\n"
" as well.\n"
"\n"
@@ -2285,13 +2313,13 @@ void print_help(int mode) {
" also be lowercase, e.g. \"list\".\n"
"\n"
"-sslDelCert pem Prompts you to delete all .crt .pem .key .req files\n"
-" associated with [pem]. \"SAVE\" and lookups as in\n"
-" -sslCertInfo apply as well.\n"
+" associated with [pem]. x11vnc then exits. \"SAVE\"\n"
+" and lookups as in -sslCertInfo apply as well.\n"
"\n"
"-sslScripts Prints out both the 'genCA' and 'genCert' x11vnc\n"
" openssl wrapper scripts for you to examine, modify, etc.\n"
-" The scripts are printed to stdout and then the program\n"
-" exits.\n"
+" The scripts are printed to stdout and then the x11vnc\n"
+" program exits.\n"
"\n"
"\n"
"-stunnel [pem] Use the stunnel(8) (stunnel.mirt.net) to provide an\n"
@@ -2860,6 +2888,9 @@ void print_help(int mode) {
" just use 1 shm tile for polling. Limits shm segments\n"
" used to 3.\n"
"\n"
+" To disable any automatic shm reduction set the\n"
+" env. var. X11VNC_NO_LIMIT_SHM.\n"
+"\n"
"-solid [color] To improve performance, when VNC clients are connected\n"
" try to change the desktop background to a solid color.\n"
" The [color] is optional: the default color is \"cyan4\".\n"
@@ -3109,7 +3140,7 @@ void print_help(int mode) {
" the wire and are applied correctly to the x11vnc-side\n"
" X server. Note this mode probably won't do what you\n"
" want in -nomodtweak mode. Also, a kludge for KP_n\n"
-" digits is always done it this mode: they are mapped to\n"
+" digits is always done in this mode: they are mapped to\n"
" regular digit keysyms. See also -capslock above.\n"
" The default is -noskip_lockkeys.\n"
"\n"
@@ -3392,6 +3423,34 @@ void print_help(int mode) {
" enabled by default if XINERAMA is found to be active.\n"
" To prevent this, use -noxwarppointer.\n"
"\n"
+"-always_inject Even if there is no displacement (dx = dy = 0) for a\n"
+" VNC mouse event force the pointer to the indicated x,y\n"
+" position anyway. Recent (2009) gui toolkits (gnome)\n"
+" have problems with x11vnc's original mouse input\n"
+" injection method. So x11vnc's mouse input injection\n"
+" method has been modified. To regain the OLD behavior\n"
+" use this option: -always_inject. Then x11vnc will\n"
+" always force positioning the mouse to the x,y position\n"
+" even if that position has not changed since the previous\n"
+" VNC input event.\n"
+"\n"
+" The first place this problem was noticed was in gnome\n"
+" terminal: if you pressed and released mouse button 3, a\n"
+" menu was posted and then its first element 'New Terminal\n"
+" Window' was activated. This was because x11vnc injected\n"
+" the mouse position twice: once on ButtonPress and again\n"
+" on ButtonRelease. The toolkit interpreted the 2nd one\n"
+" as mouse motion even though the mouse hadn't moved.\n"
+" So now by default x11vnc tries to avoid injecting the\n"
+" 2nd one.\n"
+"\n"
+" Note that with the new default x11vnc will be oblivious\n"
+" to applications moving the pointer (warping) or the\n"
+" user at the physical display moving it. So it might,\n"
+" e.g., inject ButtonRelease at the wrong position.\n"
+" If this (or similar scenarios) causes problems in your\n"
+" environment, specify -always_inject for the old method.\n"
+"\n"
"-buttonmap string String to remap mouse buttons. Format: IJK-LMN, this\n"
" maps buttons I -> L, etc., e.g. -buttonmap 13-31\n"
"\n"
@@ -3851,7 +3910,7 @@ void print_help(int mode) {
" the whole-server grabbing application expects mouse or\n"
" keyboard input before releasing the grab. It is usually\n"
" a window manager that does this. x11vnc takes care to\n"
-" avoid the the problem, but if caught x11vnc will freeze.\n"
+" avoid the problem, but if caught x11vnc will freeze.\n"
" Without -grab_buster, the only solution is to go the\n"
" physical display and give it some input to satisfy the\n"
" grabbing app. Or manually kill and restart the window\n"
@@ -4689,7 +4748,7 @@ void print_help(int mode) {
"-macuskbd For the native MacOSX server, use the original\n"
" keystroke insertion code based on a US keyboard.\n"
"\n"
-"-gui [gui-opts] Start up a simple tcl/tk gui based on the the remote\n"
+"-gui [gui-opts] Start up a simple tcl/tk gui based on the remote\n"
" control options -remote/-query described below.\n"
" Requires the \"wish\" program to be installed on the\n"
" machine. \"gui-opts\" is not required: the default\n"
@@ -4819,9 +4878,9 @@ void print_help(int mode) {
" x11vnc server. \"-R\" and \"-r\" are aliases for\n"
" \"-remote\". After the remote control command is\n"
" sent to the running server the 'x11vnc -remote ...'\n"
-" command exits. You can often use the -query command\n"
-" (see below) to see if the x11vnc server processed your\n"
-" -remote command.\n"
+" x11vnc command exits. You can often use the -query\n"
+" command (see below) to see if the x11vnc server\n"
+" processed your -remote command.\n"
"\n"
" The default communication channel is that of X\n"
" properties (specifically X11VNC_REMOTE), and so this\n"
@@ -5082,6 +5141,8 @@ void print_help(int mode) {
" nocursorpos enable -nocursorpos mode.\n"
" xwarp enable -xwarppointer mode.\n"
" noxwarp disable -xwarppointer mode.\n"
+" always_inject enable -always_inject mode.\n"
+" noalways_inject disable -always_inject mode.\n"
" buttonmap:str set -buttonmap \"str\", empty to disable\n"
" dragging disable -nodragging mode.\n"
" nodragging enable -nodragging mode.\n"
@@ -5404,11 +5465,11 @@ void print_help(int mode) {
" nosetprimary clipboard noclipboard setclipboard\n"
" nosetclipboard seldir cursorshape nocursorshape\n"
" cursorpos nocursorpos cursor_drag nocursor_drag cursor\n"
-" show_cursor noshow_cursor nocursor arrow xfixes\n"
-" noxfixes xdamage noxdamage xd_area xd_mem alphacut\n"
-" alphafrac alpharemove noalpharemove alphablend\n"
-" noalphablend xwarppointer xwarp noxwarppointer\n"
-" noxwarp buttonmap dragging nodragging ncache_cr\n"
+" show_cursor noshow_cursor nocursor arrow xfixes noxfixes\n"
+" xdamage noxdamage xd_area xd_mem alphacut alphafrac\n"
+" alpharemove noalpharemove alphablend noalphablend\n"
+" xwarppointer xwarp noxwarppointer noxwarp always_inject\n"
+" noalways_inject buttonmap dragging nodragging ncache_cr\n"
" noncache_cr ncache_no_moveraise noncache_no_moveraise\n"
" ncache_no_dtchange noncache_no_dtchange\n"
" ncache_no_rootpixmap noncache_no_rootpixmap\n"
@@ -5830,7 +5891,7 @@ void nopassword_warning_msg(int gotloc) {
char str4[] =
"#@ @#\n"
"#@ To disable this warning use the -nopw option, or put @#\n"
-"#@ the setting in your ~/.x11vncrc file. @#\n"
+"#@ 'nopw' on a line in your ~/.x11vncrc file. @#\n"
"#@ @#\n"
"#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#\n"
"###############################################################\n"
@@ -5845,7 +5906,7 @@ void nopassword_warning_msg(int gotloc) {
fprintf(stderr, "%s", str1);
fflush(stderr);
#if !PASSWD_REQUIRED
- usleep(1000 * 1000);
+ usleep(750 * 1000);
#endif
if (!quiet) {
fprintf(stderr, "%s", str2);
@@ -5858,7 +5919,7 @@ void nopassword_warning_msg(int gotloc) {
}
fflush(stderr);
#if !PASSWD_REQUIRED
- usleep(500 * 1000);
+ usleep(250 * 1000);
#endif
}