diff --git a/prepare_x11vnc_dist.sh b/prepare_x11vnc_dist.sh index b8fc4e4..9090099 100644 --- a/prepare_x11vnc_dist.sh +++ b/prepare_x11vnc_dist.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION="0.9" +VERSION="0.9.1" cd "$(dirname "$0")" diff --git a/x11vnc/README b/x11vnc/README index 92f7bff..b5338b9 100644 --- a/x11vnc/README +++ b/x11vnc/README @@ -1,5 +1,5 @@ -x11vnc README file Date: Wed Apr 18 18:46:50 EDT 2007 +x11vnc README file Date: Wed Apr 18 22:27:25 EDT 2007 The following information is taken from these URLs: @@ -403,7 +403,7 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer. The x11vnc package is the subset of the libvncserver package needed to build the x11vnc program. Also, you can get a copy of my latest, - bleeding edge [72]x11vnc-0.9.tar.gz tarball to build the most up to + bleeding edge [72]x11vnc-0.9.1.tar.gz tarball to build the most up to date one. Precompiled Binaries/Packages: See the [73]FAQ below for information @@ -435,13 +435,13 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer. Building x11vnc: If your OS has libjpeg.so and libz.so in standard locations you can - build as follows (example given for the 0.8.4 release of x11vnc: - replace with the version you downloaded): + build as follows (example given for the 0.9 release of x11vnc: replace + with the version you downloaded): (un-tar the x11vnc+libvncserver tarball) -# gzip -dc x11vnc-0.8.4.tar.gz | tar -xvf - +# gzip -dc x11vnc-0.9.tar.gz | tar -xvf - (cd to the source directory) -# cd x11vnc-0.8.4 +# cd x11vnc-0.9 (run configure and then run make) # ./configure @@ -657,13 +657,14 @@ make I don't have any formal beta-testers for the releases of x11vnc, so I'd appreciate any additional testing very much. - Thanks to those who suggested features and helped beta test x11vnc - 0.8.4 released in Feb 2007! + Thanks to those who suggested features and helped beta test x11vnc 0.9 + released in Apr 2007! - Please help test and debug the 0.9 version for release sometime in - Spring 2007. + Please help test and debug the 0.9.1 version for release sometime in + Summer 2007. - The version 0.9 beta tarball is kept here: [91]x11vnc-0.9.tar.gz + The version 0.9.1 beta tarball is kept here: + [91]x11vnc-0.9.1.tar.gz There are also some Linux, Solaris, Mac OS X, and other OS test binaries [92]here. Please kick the tires and report bugs, performance @@ -678,7 +679,7 @@ make [97]Enhanced TightVNC Viewer (SSVNC) page. - Here are some features that will appear in the 0.9 release: + Here are some features that will appear in the 0.9.1 release: * [98]Viewer-side pixmap caching. This one will benefit from much testing. A large area of pixels (at least 2-3 times as big as the framebuffer itself; the bigger the better... default is 12X) is @@ -690,6 +691,9 @@ make "-ncache 12". The unix Enhanced TightVNC Viewer [99]ssvnc has a nice [100]-ycrop option to help hide the pixel cache area from view. + + + Here are some features that appeared in the 0.9 release: * [101]VNC Service advertising via mDNS / ZeroConf / BonJour with the [102]Avahi client library. Enable via "[103]-avahi". * Implementations of UltraVNC's TextChat, SingleWindow, and @@ -7320,7 +7324,7 @@ References 69. http://sourceforge.net/projects/libvncserver/ 70. http://sourceforge.net/project/showfiles.php?group_id=32584&package_id=119006&release_id=483129 71. http://sourceforge.net/project/shownotes.php?release_id=483129&group_id=32584 - 72. http://www.karlrunge.com/x11vnc/x11vnc-0.9.tar.gz + 72. http://www.karlrunge.com/x11vnc/x11vnc-0.9.1.tar.gz 73. http://www.karlrunge.com/x11vnc/index.html#faq-binaries 74. http://www.tightvnc.com/download.html 75. http://www.realvnc.com/download-free.html @@ -7339,7 +7343,7 @@ References 88. http://www.karlrunge.com/x11vnc/index.html#faq-solaris251build 89. http://www.karlrunge.com/x11vnc/index.html#faq-macosx 90. http://www.karlrunge.com/x11vnc/index.html#faq-ssl-tunnel-int - 91. http://www.karlrunge.com/x11vnc/x11vnc-0.9.tar.gz + 91. http://www.karlrunge.com/x11vnc/x11vnc-0.9.1.tar.gz 92. http://www.karlrunge.com/x11vnc/bins 93. mailto:xvml-beta@karlrunge.com 94. http://www.karlrunge.com/x11vnc/index.html#faq-ssl-tunnel-int @@ -10519,7 +10523,7 @@ x11vnc: a VNC server for real X displays Here are all of x11vnc command line options: % x11vnc -opts (see below for -help long descriptions) -x11vnc: allow VNC connections to real X11 displays. 0.9 lastmod: 2007-04-18 +x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-18 x11vnc options: -display disp -auth file -N @@ -10568,35 +10572,38 @@ x11vnc options: -alphacut n -alphafrac fraction -alpharemove -noalphablend -nocursorshape -cursorpos -nocursorpos -xwarppointer -noxwarppointer - -buttonmap string -nodragging -wireframe [str] - -nowireframe -nowireframelocal -wirecopyrect mode - -nowirecopyrect -debug_wireframe -scrollcopyrect mode - -noscrollcopyrect -scr_area n -scr_skip list - -scr_inc list -scr_keys list -scr_term list - -scr_keyrepeat lo-hi -scr_parms string -fixscreen string - -debug_scroll -noxrecord -grab_buster - -nograb_buster -debug_grabs -debug_sel - -pointer_mode n -input_skip n -allinput - -speeds rd,bw,lat -wmdt string -debug_pointer - -debug_keyboard -defer time -wait time - -wait_ui factor -nowait_bog -slow_fb time - -readtimeout n -nap -nonap - -sb time -nofbpm -fbpm - -nodpms -dpms -forcedpms - -clientdpms -noserverdpms -noultraext - -noxdamage -xd_area A -xd_mem f - -sigpipe string -threads -nothreads - -fs f -gaps n -grow n - -fuzz n -debug_tiles -snapfb - -rawfb string -freqtab file -pipeinput cmd - -macnodim -macnosleep -macnosaver - -macnowait -macwheel n -macnoswap - -macnoresize -maciconanim n -macmenu - -gui [gui-opts] -remote command -query variable - -QD variable -sync -noremote - -yesremote -unsafe -safer - -privremote -nocmds -allowedcmds list - -deny_all + -buttonmap string -nodragging -ncache n + -ncache_cr -ncache_no_moveraise -ncache_no_dtchange + -ncache_no_rootpixmap -ncache_keep_anims -ncache_old_wm + -ncache_pad n -wireframe [str] -nowireframe + -nowireframelocal -wirecopyrect mode -nowirecopyrect + -debug_wireframe -scrollcopyrect mode -noscrollcopyrect + -scr_area n -scr_skip list -scr_inc list + -scr_keys list -scr_term list -scr_keyrepeat lo-hi + -scr_parms string -fixscreen string -debug_scroll + -noxrecord -grab_buster -nograb_buster + -debug_grabs -debug_sel -pointer_mode n + -input_skip n -allinput -speeds rd,bw,lat + -wmdt string -debug_pointer -debug_keyboard + -defer time -wait time -wait_ui factor + -nowait_bog -slow_fb time -readtimeout n + -nap -nonap -sb time + -nofbpm -fbpm -nodpms + -dpms -forcedpms -clientdpms + -noserverdpms -noultraext -noxdamage + -xd_area A -xd_mem f -sigpipe string + -threads -nothreads -fs f + -gaps n -grow n -fuzz n + -debug_tiles -snapfb -rawfb string + -freqtab file -pipeinput cmd -macnodim + -macnosleep -macnosaver -macnowait + -macwheel n -macnoswap -macnoresize + -maciconanim n -macmenu -gui [gui-opts] + -remote command -query variable -QD variable + -sync -noremote -yesremote + -unsafe -safer -privremote + -nocmds -allowedcmds list -deny_all + libvncserver options: -rfbport port TCP port for RFB protocol @@ -10630,7 +10637,7 @@ libvncserver-tight-extension options: % x11vnc -help -x11vnc: allow VNC connections to real X11 displays. 0.9 lastmod: 2007-04-18 +x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-18 (type "x11vnc -opts" to just list the options.) @@ -12754,6 +12761,99 @@ Options: text selection, and some menu traversals. It overrides any -pointer_mode setting. +-ncache n Client-side caching scheme. Framebuffer memory "n" + (an integer) times that of the full display is allocated + below the actual framebuffer to cache screen contents + for rapid retrieval. So a W x H frambuffer is expanded + to a W x (n+1)*H one. Use 0 to disable. Default: XXX. + + For this and the other -ncache* options below you can + abbreviate "-ncache" with "-nc". Also, "-nonc" + is the same as "-ncache 0" + + This is an experimental option, currently implemented + in an awkward way in that in the VNC Viewer you can + see the cache contents if you scroll down, etc. So you + will have to set things up so you can't see that region. + If this method is successful, the changes required for + clients to do this less awkwardly will be investigated. + + Note that this mode consumes a huge amount of memory, + both on the x11vnc server side and on the VNC Viewer + side. If n=2 then the amount of RAM used is roughly + tripled for both x11vnc and the VNC Viewer. As a rule + of thumb, note that 1280x1024 at depth 24 is about 5MB + of pixel data. + + For reasonable response when cycling through 4 to 6 + large (e.g. web browser) windows a value n of 6 to 12 + is recommended. (that's right: ~10X more memory...) + + Because of the way window backingstore and saveunders + are implemented, n must be even. It will be incremented + by 1 if it is not. + + This mode also works for native MacOS X, but may not + be as effective as the X version. This is due to a + number of things, one is the drop-shadow compositing + that leaves extra areas that need to be repaired (see + -ncache_pad). Another is the window iconification + animations need to be avoided (see -macicontime). + It appears the that the 'Scale' animation mode gives + better results than the 'Genie' one. Also, window event + detection not as accurate as the X version. + +-ncache_cr In -ncache mode, try to do copyrect opaque window + moves/drags instead of wireframes (this can induce + painting errors). The wireframe will still be used when + moving a window whose save-unders has not yet been set + or has been invalidated. + + Some VNC Viewers provide better response than others + with this option. On Unix, realvnc viewer gives + smoother drags than tightvnc viewer. Response may also + be choppy if the server side machine is too slow. + + Sometimes on very slow modem connections, this actually + gives an improvement because no pixel data at all + (not even the box animation) is sent during the drag. + +-ncache_no_moveraise In -ncache mode, do not assume that moving a window + will cause the window manager to raise it to the top + of the stack. The default is to assume it does, and + so at the beginning of any wireframe, etc, window moves + the window will be pushed to top in the VNC viewer. + +-ncache_no_dtchange In -ncache mode, do not try to guess when the desktop + (viewport) changes to another one (i.e. another + workarea). The default is to try to guess and when + detected try to make the transistion more smoothly. + +-ncache_no_rootpixmap In -ncache mode, do not try to snapshot the desktop + background to use in guessing or reconstructing window + save-unders. + +-ncache_keep_anims In -ncache mode, do not try to disable window + manager animations and other effects (that usually + degrade ncache performance or cause painting errors). + The default is to try to disable them on KDE (but not + GNOME) when VNC clients are connected. + + For other window managers or desktops that provide + animations, effects, compositing, translucency, + etc. that interfere with the -ncache method you will + have to disable them manually. + +-ncache_old_wm In -ncache mode, enable some heuristics for old style + window managers such as fvwm and twm. + +-ncache_pad n In -ncache mode, pad each window with n pixels for the + caching rectangles. This can be used to try to improve + the situation with dropshadows or other compositing + (e.g. MacOS X window manager), although it could make + things worse. The default is 0 on Unix and 24 on + MacOS X. + -wireframe [str] Try to detect window moves or resizes when a mouse -nowireframe button is held down and show a wireframe instead of the full opaque window. This is based completely on diff --git a/x11vnc/x11vnc.1 b/x11vnc/x11vnc.1 index 0b17389..9fb2013 100644 --- a/x11vnc/x11vnc.1 +++ b/x11vnc/x11vnc.1 @@ -2,7 +2,7 @@ .TH X11VNC "1" "April 2007" "x11vnc " "User Commands" .SH NAME x11vnc - allow VNC connections to real X11 displays - version: 0.9, lastmod: 2007-04-18 + version: 0.9.1, lastmod: 2007-04-18 .SH SYNOPSIS .B x11vnc [OPTION]... @@ -2544,6 +2544,115 @@ slow setups, but you lose all visual feedback for drags, text selection, and some menu traversals. It overrides any \fB-pointer_mode\fR setting. .PP +\fB-ncache\fR \fIn\fR +.IP +Client-side caching scheme. Framebuffer memory \fIn\fR +(an integer) times that of the full display is allocated +below the actual framebuffer to cache screen contents +for rapid retrieval. So a W x H frambuffer is expanded +to a W x (n+1)*H one. Use 0 to disable. Default: XXX. +.IP +For this and the other \fB-ncache*\fR options below you can +abbreviate "\fB-ncache\fR" with "\fB-nc\fR". Also, "\fB-nonc\fR" +is the same as "\fB-ncache\fR \fI0\fR" +.IP +This is an experimental option, currently implemented +in an awkward way in that in the VNC Viewer you can +see the cache contents if you scroll down, etc. So you +will have to set things up so you can't see that region. +If this method is successful, the changes required for +clients to do this less awkwardly will be investigated. +.IP +Note that this mode consumes a huge amount of memory, +both on the x11vnc server side and on the VNC Viewer +side. If n=2 then the amount of RAM used is roughly +tripled for both x11vnc and the VNC Viewer. As a rule +of thumb, note that 1280x1024 at depth 24 is about 5MB +of pixel data. +.IP +For reasonable response when cycling through 4 to 6 +large (e.g. web browser) windows a value n of 6 to 12 +is recommended. (that's right: ~10X more memory...) +.IP +Because of the way window backingstore and saveunders +are implemented, n must be even. It will be incremented +by 1 if it is not. +.IP +This mode also works for native MacOS X, but may not +be as effective as the X version. This is due to a +number of things, one is the drop-shadow compositing +that leaves extra areas that need to be repaired (see +\fB-ncache_pad).\fR Another is the window iconification +animations need to be avoided (see \fB-macicontime).\fR +It appears the that the 'Scale' animation mode gives +better results than the 'Genie' one. Also, window event +detection not as accurate as the X version. +.PP +\fB-ncache_cr\fR +.IP +In \fB-ncache\fR mode, try to do copyrect opaque window +moves/drags instead of wireframes (this can induce +painting errors). The wireframe will still be used when +moving a window whose save-unders has not yet been set +or has been invalidated. +.IP +Some VNC Viewers provide better response than others +with this option. On Unix, realvnc viewer gives +smoother drags than tightvnc viewer. Response may also +be choppy if the server side machine is too slow. +.IP +Sometimes on very slow modem connections, this actually +gives an improvement because no pixel data at all +(not even the box animation) is sent during the drag. +.PP +\fB-ncache_no_moveraise\fR +.IP +In \fB-ncache\fR mode, do not assume that moving a window +will cause the window manager to raise it to the top +of the stack. The default is to assume it does, and +so at the beginning of any wireframe, etc, window moves +the window will be pushed to top in the VNC viewer. +.PP +\fB-ncache_no_dtchange\fR +.IP +In \fB-ncache\fR mode, do not try to guess when the desktop +(viewport) changes to another one (i.e. another +workarea). The default is to try to guess and when +detected try to make the transistion more smoothly. +.PP +\fB-ncache_no_rootpixmap\fR +.IP +In \fB-ncache\fR mode, do not try to snapshot the desktop +background to use in guessing or reconstructing window +save-unders. +.PP +\fB-ncache_keep_anims\fR +.IP +In \fB-ncache\fR mode, do not try to disable window +manager animations and other effects (that usually +degrade ncache performance or cause painting errors). +The default is to try to disable them on KDE (but not +GNOME) when VNC clients are connected. +.IP +For other window managers or desktops that provide +animations, effects, compositing, translucency, +etc. that interfere with the \fB-ncache\fR method you will +have to disable them manually. +.PP +\fB-ncache_old_wm\fR +.IP +In \fB-ncache\fR mode, enable some heuristics for old style +window managers such as fvwm and twm. +.PP +\fB-ncache_pad\fR \fIn\fR +.IP +In \fB-ncache\fR mode, pad each window with n pixels for the +caching rectangles. This can be used to try to improve +the situation with dropshadows or other compositing +(e.g. MacOS X window manager), although it could make +things worse. The default is 0 on Unix and 24 on +MacOS X. +.PP \fB-wireframe\fR \fI[str],\fR \fB-nowireframe\fR .IP Try to detect window moves or resizes when a mouse diff --git a/x11vnc/x11vnc.h b/x11vnc/x11vnc.h index 8fbe05e..8689a96 100644 --- a/x11vnc/x11vnc.h +++ b/x11vnc/x11vnc.h @@ -136,7 +136,7 @@ /* these are for delaying features: */ #define xxNO_SSL_OR_UNIXPW -#define NO_NCACHE +#define xxNO_NCACHE /* * Beginning of support for small binary footprint build for embedded diff --git a/x11vnc/x11vnc_defs.c b/x11vnc/x11vnc_defs.c index 98a2719..7b09821 100644 --- a/x11vnc/x11vnc_defs.c +++ b/x11vnc/x11vnc_defs.c @@ -15,7 +15,7 @@ int xtrap_base_event_type = 0; int xdamage_base_event_type = 0; /* date +'lastmod: %Y-%m-%d' */ -char lastmod[] = "0.9 lastmod: 2007-04-18"; +char lastmod[] = "0.9.1 lastmod: 2007-04-18"; /* X display info */