diff options
author | runge <runge> | 2007-01-31 15:41:42 +0000 |
---|---|---|
committer | runge <runge> | 2007-01-31 15:41:42 +0000 |
commit | 1b9082bc8739e5ab186092ca1dcff1736eb91c0e (patch) | |
tree | 9d2a267bcbba93aed87634838c9ac10f36363210 /x11vnc/help.c | |
parent | 1f8da9bde3b7de272228872410143f076662ae13 (diff) | |
download | libtdevnc-1b9082bc8739e5ab186092ca1dcff1736eb91c0e.tar.gz libtdevnc-1b9082bc8739e5ab186092ca1dcff1736eb91c0e.zip |
x11vnc: -reflect, -N. -ncache, FINDDISPLAY, FINDCREATEDISPLAY, improvements. MODTWEAK_LOWEST workaround.
Diffstat (limited to 'x11vnc/help.c')
-rw-r--r-- | x11vnc/help.c | 176 |
1 files changed, 140 insertions, 36 deletions
diff --git a/x11vnc/help.c b/x11vnc/help.c index 1d73b15..d7b2ebc 100644 --- a/x11vnc/help.c +++ b/x11vnc/help.c @@ -55,10 +55,10 @@ void print_help(int mode) { " and http://www.karlrunge.com/x11vnc/#faq\n" "\n" "\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" -"For each option name, the leading character \"-\" is not required. E.g. a\n" -"line that is either \"forever\" or \"-forever\" may be used and are equivalent.\n" +"Config file support: if the file $HOME/.x11vncrc exists then each line in\n" +"it is treated as a single command line option. Disable with -norc. For\n" +"each option name, the leading character \"-\" is not required. E.g. a line\n" +"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" "The \"#\" character comments out to the end of the line in the usual way\n" "(backslash it for a literal). Leading and trailing whitespace is trimmed off.\n" @@ -77,7 +77,23 @@ void print_help(int mode) { " before startup. Same as -xauth file. See Xsecurity(7),\n" " xauth(1) man pages for more info.\n" "\n" -"-id windowid Show the window corresponding to \"windowid\" not\n" +"-N If the X display is :N, try to set the VNC display\n" +" to also be :N This just sets the -rfbport option\n" +" to 5900+N. The program will exit immediately if that\n" +" port is not available.\n" +"\n" +"-reflect host:N Instead of connecting to and polling an X display,\n" +" connect to the remote VNC server host:N and be a\n" +" reflector/repeater for it. This is useful for trying\n" +" to manage the case of many simultaneous VNC viewers\n" +" (e.g. classroom broadcasting) where, e.g. you put\n" +" a repeater on each network switch, etc, to improve\n" +" performance by distributing the load and network\n" +" traffic. Implies -shared (use -noshared as a later\n" +" option to disable). See the discussion below under\n" +" -rawfb vnc:host:N for more details.\n" +"\n" +"-id windowid Show the X window corresponding to \"windowid\" not\n" " the entire display. New windows like popup menus,\n" " transient toplevels, etc, may not be seen or may be\n" " clipped. Disabling SaveUnders or BackingStore in the\n" @@ -789,15 +805,16 @@ void print_help(int mode) { " in PATH and have run \"Xdummy -install\" once to create\n" " the shared library. Xdummy requires root permission\n" " and only works on Linux. Xvfb is available on most\n" -" platforms.\n" +" platforms and does not require root.\n" "\n" " When x11vnc exits (i.e. user disconnects) the X server\n" -" session stays running in the background. Presumably the\n" -" FINDDISPLAY will find it next time. The user must exit\n" -" the X session in the usual way for it to terminate.\n" +" session stays running in the background. Presumably\n" +" the FINDDISPLAY will find it next time. The user must\n" +" exit the X session in the usual way for it to terminate\n" +" (or kill the X server process if all else fails).\n" "\n" " So this is a somewhat odd mode for x11vnc in that it\n" -" will start up and poll virtual X servers. This can\n" +" will start up and poll virtual X servers! This can\n" " be used from, say, inetd(8) to provide a means of\n" " definitely getting a desktop (either real or virtual)\n" " on the machine. E.g. a desktop service:\n" @@ -812,10 +829,24 @@ void print_help(int mode) { " Use WAIT:cmd=FINDCREATEDISPLAY-print to print out the\n" " script used. You can specify the preferred order via\n" " e.g., WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb,X and/or\n" -" leave out ones you do not want. The the extra case \"X\"\n" -" means try to start up a real, hardware X server using\n" -" xinit(1). If there is already an X server running the\n" -" X case may only work on Linux (see startx(1)).\n" +" leave out ones you do not want. The the extra case\n" +" \"X\" means try to start up a real, hardware X server\n" +" using xinit(1) or startx(1). If there is already an\n" +" X server running the X case may only work on Linux\n" +" (see startx(1)).\n" +"\n" +" If you want the FINDCREATEDISPLAY session to contact an\n" +" XDMCP login manager (xdm/gdm/kdm) on the same machine,\n" +" then use \"Xvfb.xdmcp\" instead of \"Xvfb\", etc.\n" +" The user will have to supply his username and password\n" +" one more time (but he gets to select his desktop type\n" +" so that can be useful). For this to work, you will\n" +" need to enable localhost XDMCP (udp port 177) for the\n" +" display manager. This seems to be:\n" +"\n" +" for gdm in gdm.conf: Enable=true in section [xdmcp]\n" +" for kdm in kdmrc: Enable=true in section [Xdmcp]\n" +" for xdm in xdm-config: DisplayManager.requestPort: 177\n" "\n" #ifndef NO_SSL_OR_UNIXPW "-ssl [pem] Use the openssl library (www.openssl.org) to provide a\n" @@ -1691,6 +1722,15 @@ void print_help(int mode) { " identical keyboards). Also useful in resolving cases\n" " where a Keysym is bound to multiple keys (e.g. \"<\" + \">\"\n" " and \",\" + \"<\" keys). Default: %s\n" +"\n" +" On some HP-UX systems it is been noted that they have\n" +" an odd keymapping where a single keycode will have a\n" +" keysym, e.g. \"#\", up to three times. You can check\n" +" via \"xmodmap -pk\" or the -dk option. The failure\n" +" is when you try to type \"#\" it yields \"3\". If you\n" +" see this problem try setting the environment variable\n" +" MODTWEAK_LOWEST=1 to see if it helps.\n" +"\n" "-xkb When in modtweak mode, use the XKEYBOARD extension (if\n" "-noxkb the X display supports it) to do the modifier tweaking.\n" " This is powerful and should be tried if there are still\n" @@ -2021,6 +2061,10 @@ void print_help(int mode) { " for rapid retrieval. So a W x H frambuffer is expanded\n" " to a W x (n+1)*H one. Use 0 to disable. Default: XXX.\n" "\n" +" For this and the other -ncache* options below you can\n" +" abbreviate \"-ncache\" with \"-nc\". Also, \"-nonc\"\n" +" is the same as \"-ncache 0\"\n" +"\n" " This is an experimental option, currently implemented\n" " in an awkward way in that in the VNC Viewer you can\n" " see the cache contents if you scroll down, etc. So you\n" @@ -2081,7 +2125,21 @@ void print_help(int mode) { "\n" "-ncache_no_rootpixmap In -ncache mode, do not try to snapshot the desktop\n" " background to use in guessing or reconstructing window\n" -" save-unders..\n" +" save-unders.\n" +"\n" +"-ncache_keep_anims In -ncache mode, do not try to disable window\n" +" manager animations and other effects (that usually\n" +" degrade ncache performance or cause painting errors).\n" +" The default is to try to disable them on KDE (but not\n" +" GNOME) when VNC clients are connected.\n" +"\n" +" For other window managers or desktops that provide\n" +" animations, effects, compositing, translucency,\n" +" etc. that interfere with the -ncache method you will\n" +" have to disable them manually.\n" +"\n" +"-ncache_old_wm In -ncache mode, enable some heuristics for old style\n" +" window managers such as fvwm and twm.\n" "\n" "-ncache_pad n In -ncache mode, pad each window with n pixels for the\n" " caching rectangles. This can be used to try to improve\n" @@ -2703,6 +2761,10 @@ void print_help(int mode) { " the framebuffer device is opened and keystrokes (and\n" " possibly mouse events) are inserted into the console.\n" "\n" +" If the string begins with \"vnc\", see the VNC HOST\n" +" discussion below where the framebuffer is taken as that\n" +" of another remote VNC server.\n" +"\n" " Optional suffixes are \":R/G/B\" and \"+O\" to specify\n" " red, green, and blue masks and an offset into the\n" " memory object. If the masks are not provided x11vnc\n" @@ -2723,6 +2785,7 @@ void print_help(int mode) { " -rawfb video0\n" " -rawfb video -pipeinput VID\n" " -rawfb console\n" +" -rawfb vnc:somehost:0\n" "\n" " (see ipcs(1) and fbset(1) for the first two examples)\n" "\n" @@ -2893,6 +2956,44 @@ void print_help(int mode) { " -rawfb console:/dev/nonstd\n" " -rawfb console -pipeinput UINPUT:accel=4.0\n" "\n" +" VNC HOST: if the -rawfb string is of the form\n" +" \"vnc:host:N\" then the VNC display \"N\" on the remote\n" +" VNC server \"host\" is connected to (i.e. x11vnc acts as\n" +" a VNC client itself) and that framebuffer is exported.\n" +"\n" +" This mode is really only of use if you are trying\n" +" to improve performance in the case of many (e.g. >\n" +" 10) simultaneous VNC viewers, and you try a divide\n" +" and conquer scheme to reduce bandwidth and improve\n" +" responsiveness.\n" +"\n" +" For example, if there will be 64 simultaneous VNC\n" +" viewers this can lead to a lot of redundant VNC traffic\n" +" to and from the server host:N, extra CPU usage,\n" +" and all viewers response can be reduced by having\n" +" to wait for writes to the slowest client to finish.\n" +" However, if you set up 8 reflectors/repeaters started\n" +" with option -rawfb vnc:host:N, then there are only\n" +" 8 connections to host:N. Each repeater then handles\n" +" 8 vnc viewer connections thereby spreading the load\n" +" around. In classroom broadcast usage, try to put the\n" +" repeaters on different switches. This mode is the same\n" +" as -reflect host:N. Replace \"host:N\" by \"listen\"\n" +" or \"listen:port\" for a reverse connection.\n" +"\n" +" Overall performance will not be as good as a single\n" +" direct connection because, among other things,\n" +" there is an additional level of framebuffer polling\n" +" and pointer motion can still induce many changes per\n" +" second that must be propagated. Tip: if the remote VNC\n" +" is x11vnc doing wireframing, or an X display that does\n" +" wireframing that gives much better response than opaque\n" +" window dragging. Consider the -nodragging option if\n" +" the problem is severe.\n" +"\n" +" The VNC HOST mode implies -shared. Use -noshared as\n" +" a subsequent cmdline option to disable sharing.\n" +"\n" "-freqtab file For use with \"-rawfb video\" for TV tuner devices to\n" " specify station frequencies. Instead of using the built\n" " in ntsc-cable-us mapping of station number to frequency,\n" @@ -2995,7 +3096,7 @@ void print_help(int mode) { " If the uinput device has an absolute pointer (as opposed\n" " to a normal mouse that is a relative pointer) you can\n" " specify the option \"abs\". Note that a touchpad\n" -" on a laptop is an absolute device t some degree.\n" +" on a laptop is an absolute device to some degree.\n" " This (usually) avoids all the problems with mouse\n" " acceleration. If x11vnc has trouble deducing the size\n" " of the device, use \"abs=WxH\". Furthermore, if the\n" @@ -3355,6 +3456,8 @@ void print_help(int mode) { " ncache_no_rootpixmap enable ncache_no_rootpixmap.\n" " noncache_no_rootpixmap disable ncache_no_rootpixmap.\n" " ncache_reset_rootpixmap recheck the root pixmap\n" +" ncache_keep_anims enable ncache_keep_anims.\n" +" noncache_keep_anims disable ncache_keep_anims.\n" " wireframe enable -wireframe mode. same as \"wf\"\n" " nowireframe disable -wireframe mode. same as \"nowf\"\n" " wireframe:str enable -wireframe mode string.\n" @@ -3505,26 +3608,27 @@ void print_help(int mode) { " listen lookup nolookup accept afteraccept gone shm\n" " noshm flipbyteorder noflipbyteorder onetile noonetile\n" " solid_color solid nosolid blackout xinerama noxinerama\n" -" xtrap noxtrap xrandr noxrandr xrandr_mode rotate padgeom\n" -" quiet q noquiet modtweak nomodtweak xkb noxkb capslock\n" -" nocapslock skip_lockkeys noskip_lockkeys skip_keycodes\n" -" sloppy_keys nosloppy_keys skip_dups noskip_dups\n" -" add_keysyms noadd_keysyms clear_mods noclear_mods\n" -" clear_keys noclear_keys remap repeat norepeat fb nofb\n" -" bell nobell sel nosel primary noprimary setprimary\n" -" 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" -" noncache_cr ncache_no_moveraise noncache_no_moveraise\n" -" ncache_no_dtchange noncache_no_dtchange\n" -" ncache_no_rootpixmap noncache_no_rootpixmap\n" -" ncache_reset_rootpixmap ncache noncache ncache_size\n" -" wireframe_mode wireframe wf nowireframe nowf\n" +" xtrap noxtrap xrandr noxrandr xrandr_mode rotate\n" +" padgeom quiet q noquiet modtweak nomodtweak xkb noxkb\n" +" capslock nocapslock skip_lockkeys noskip_lockkeys\n" +" skip_keycodes sloppy_keys nosloppy_keys skip_dups\n" +" noskip_dups add_keysyms noadd_keysyms clear_mods\n" +" noclear_mods clear_keys noclear_keys remap repeat\n" +" norepeat fb nofb bell nobell sel nosel primary\n" +" noprimary setprimary nosetprimary clipboard noclipboard\n" +" setclipboard nosetclipboard seldir cursorshape\n" +" nocursorshape cursorpos nocursorpos cursor_drag\n" +" nocursor_drag cursor show_cursor noshow_cursor\n" +" nocursor arrow xfixes noxfixes xdamage noxdamage\n" +" xd_area xd_mem alphacut alphafrac alpharemove\n" +" noalpharemove alphablend noalphablend xwarppointer\n" +" xwarp noxwarppointer noxwarp buttonmap dragging\n" +" nodragging ncache_cr noncache_cr ncache_no_moveraise\n" +" noncache_no_moveraise ncache_no_dtchange\n" +" noncache_no_dtchange ncache_no_rootpixmap\n" +" noncache_no_rootpixmap ncache_reset_rootpixmap\n" +" ncache_keep_anims noncache_keep_anims ncache noncache\n" +" ncache_size wireframe_mode wireframe wf nowireframe nowf\n" " wireframelocal wfl nowireframelocal nowfl wirecopyrect\n" " wcr nowirecopyrect nowcr scr_area scr_skip scr_inc\n" " scr_keys scr_term scr_keyrepeat scr_parms scrollcopyrect\n" |