sync with new cursor mechanism, -timeout, -noalphablend, try :0 if no other info

pull/1/head
runge 20 years ago
parent 6fb3752bf2
commit d2a0e40e1b

@ -1,3 +1,7 @@
2005-01-23 Karl Runge <runge@karlrunge.com>
* x11vnc: -timeout, -noalphablend. make -R norepeat work.
* sync with new draw cursor mechanism.
2005-01-20 Karl Runge <runge@karlrunge.com> 2005-01-20 Karl Runge <runge@karlrunge.com>
* libvncserver/{cursor.c,rfbserver.c}: fixed the "disappearing cursor" * libvncserver/{cursor.c,rfbserver.c}: fixed the "disappearing cursor"
problem problem

@ -1,3 +1,9 @@
2005-01-23 Karl Runge <runge@karlrunge.com>
* sync with new draw cursor mechanism, keep old way in OLD_TREE.
* add -timeout option, change -alphablend to be default
* -R norepeat now forces the issue (Xsession may turn it back on).
* try :0 if no other info.
2005-01-15 Karl Runge <runge@karlrunge.com> 2005-01-15 Karl Runge <runge@karlrunge.com>
* adjust alpha blending parameters, -alphablend, handle 24bpp. * adjust alpha blending parameters, -alphablend, handle 24bpp.
* add -snapfb snapshot fb, not clear how useful it is.. * add -snapfb snapshot fb, not clear how useful it is..

@ -1,5 +1,5 @@
x11vnc README file Date: Sat Jan 15 23:37:28 EST 2005 x11vnc README file Date: Sun Jan 23 23:48:41 EST 2005
The following information is taken from these URLs: The following information is taken from these URLs:
@ -367,7 +367,7 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
# Build script for Solaris, etc, with gcc, libjpeg and libz in # Build script for Solaris, etc, with gcc, libjpeg and libz in
# non-standard locations. # non-standard locations.
PATH=/path/to/gcc/bin:/usr/ccs/bin:$PATH # set to get gcc PATH=/path/to/gcc/bin:/usr/ccs/bin:$PATH # set to get your gcc
JPEG=/path/to/jpeg # maybe "/usr/local", "/usr/sfw", or "/opt/sfw" JPEG=/path/to/jpeg # maybe "/usr/local", "/usr/sfw", or "/opt/sfw"
ZLIB=/path/to/zlib # maybe "/usr/local", "/usr/sfw", or "/opt/sfw" ZLIB=/path/to/zlib # maybe "/usr/local", "/usr/sfw", or "/opt/sfw"
@ -383,7 +383,9 @@ LDFLAGS="-L $JPEG/lib -R $JPEG/lib -L $ZLIB/lib -R $ZLIB/lib"
CPPFLAGS="$CPPFLAGS -I /usr/openwin/include" CPPFLAGS="$CPPFLAGS -I /usr/openwin/include"
LDFLAGS="$LDFLAGS -L /usr/openwin/lib -R /usr/openwin/lib" LDFLAGS="$LDFLAGS -L /usr/openwin/lib -R /usr/openwin/lib"
# This only applies to Solaris 10 or later (XFIXES and DAMAGE) # This only applies to Solaris 10 or later (XFIXES, DAMAGE, and RANDR)
CPPFLAGS="$CPPFLAGS -I /usr/X11/include"
LDFLAGS="$LDFLAGS -L /usr/X11/lib -R /usr/X11/lib"
LDFLAGS="$LDFLAGS -L /usr/openwin/sfw/lib -R /usr/openwin/sfw/lib" LDFLAGS="$LDFLAGS -L /usr/openwin/sfw/lib -R /usr/openwin/sfw/lib"
# Everything needs to built with _REENTRANT for thread safe errno: # Everything needs to built with _REENTRANT for thread safe errno:
@ -786,42 +788,45 @@ ls -l ./x11vnc/x11vnc
[94]Q-51: When typing I sometimes get double, triple, or more of my [94]Q-51: When typing I sometimes get double, triple, or more of my
keystrokes repeated. I'm sure I only typed them once, what can I do? keystrokes repeated. I'm sure I only typed them once, what can I do?
[95]Q-52: The machine where I run x11vnc has an AltGr key, but the [95]Q-52: The x11vnc -norepeat mode is in effect, but I still get
repeated keystrokes!!
[96]Q-53: The machine where I run x11vnc has an AltGr key, but the
local machine where I run the VNC viewer does not. Is there a way I local machine where I run the VNC viewer does not. Is there a way I
can map a local unused key to send an AltGr? How about a Compose key can map a local unused key to send an AltGr? How about a Compose key
as well? as well?
[96]Q-53: I have a Sun machine I run x11vnc on. Its Sun keyboard has [97]Q-54: I have a Sun machine I run x11vnc on. Its Sun keyboard has
just one Alt key labelled "Alt" and two Meta keys labelled with little just one Alt key labelled "Alt" and two Meta keys labelled with little
diamonds. The machine where I run the VNC viewer only has Alt keys. diamonds. The machine where I run the VNC viewer only has Alt keys.
How can I send a Meta keypress? (e.g. emacs needs this) How can I send a Meta keypress? (e.g. emacs needs this)
[97]Q-54: Can I map a keystroke to a mouse button click on the remote [98]Q-55: Can I map a keystroke to a mouse button click on the remote
machine? machine?
[Screen Related Issues and Features] [Screen Related Issues and Features]
[98]Q-55: The remote display is larger (in number of pixels) than the [99]Q-56: The remote display is larger (in number of pixels) than the
local display I am running the vncviewer on. I don't like the local display I am running the vncviewer on. I don't like the
vncviewer scrollbars, what I can do? vncviewer scrollbars, what I can do?
[99]Q-56: Does x11vnc support server-side framebuffer scaling? (E.g. [100]Q-57: Does x11vnc support server-side framebuffer scaling? (E.g.
to make the desktop smaller). to make the desktop smaller).
[100]Q-57: Does x11vnc work with Xinerama? (i.e. multiple monitors [101]Q-58: Does x11vnc work with Xinerama? (i.e. multiple monitors
joined together to form one big, single screen). joined together to form one big, single screen).
[101]Q-58: Can I use x11vnc on a multi-headed display that is not [102]Q-59: Can I use x11vnc on a multi-headed display that is not
Xinerama (i.e. separate screens :0.0, :0.1, ... for each monitor)? Xinerama (i.e. separate screens :0.0, :0.1, ... for each monitor)?
[102]Q-59: Does x11vnc support the XRANDR (X Resize, Rotate and [103]Q-60: Does x11vnc support the XRANDR (X Resize, Rotate and
Reflection) extension? Whenever I rotate or resize the screen x11vnc Reflection) extension? Whenever I rotate or resize the screen x11vnc
just seems to crash. just seems to crash.
[103]Q-60: Why is the view in my VNC viewer completely black? Or why [104]Q-61: Why is the view in my VNC viewer completely black? Or why
is everything flashing around randomly? is everything flashing around randomly?
[104]Q-61: I use Linux Virtual Consoles (VC's) to implement 'Fast User [105]Q-62: I use Linux Virtual Consoles (VC's) to implement 'Fast User
Switching' between users' sessions (e.g. Betty is on Ctrl-Alt-F7, Switching' between users' sessions (e.g. Betty is on Ctrl-Alt-F7,
Bobby is on Ctrl-Alt-F8, and Sid is on Ctrl-Alt-F1: they use those Bobby is on Ctrl-Alt-F8, and Sid is on Ctrl-Alt-F1: they use those
keystrokes to switch between their sessions). How come the view in a keystrokes to switch between their sessions). How come the view in a
@ -829,7 +834,7 @@ ls -l ./x11vnc/x11vnc
otherwise all messed up unless the X session x11vnc is attached to is otherwise all messed up unless the X session x11vnc is attached to is
in the active VC? in the active VC?
[105]Q-62: I am using x11vnc where my local machine has "popup/hidden [106]Q-63: I am using x11vnc where my local machine has "popup/hidden
taskbars" (e.g. GNOME or MacOS X) and the remote display where x11vnc taskbars" (e.g. GNOME or MacOS X) and the remote display where x11vnc
runs also has "popup/hidden taskbars" (e.g. GNOME). When I move the runs also has "popup/hidden taskbars" (e.g. GNOME). When I move the
mouse to the edge of the screen where the popups happen, the taskbars mouse to the edge of the screen where the popups happen, the taskbars
@ -837,10 +842,10 @@ ls -l ./x11vnc/x11vnc
[Misc: Clipboard, Beeps, etc.] [Misc: Clipboard, Beeps, etc.]
[106]Q-63: Does the Clipboard/Selection get transferred between the [107]Q-64: Does the Clipboard/Selection get transferred between the
vncviewer and the X display? vncviewer and the X display?
[107]Q-64: Why don't I hear the "Beeps" in my X session (e.g. when [108]Q-65: Why don't I hear the "Beeps" in my X session (e.g. when
typing tput bel in an xterm)? typing tput bel in an xterm)?
_________________________________________________________________ _________________________________________________________________
@ -941,7 +946,7 @@ ls -l ./x11vnc/x11vnc
is a workaround for Solaris 2.5.1 (and perhaps earlier): is a workaround for Solaris 2.5.1 (and perhaps earlier):
First use the environment settings (CPPFLAGS, LDFLAGS, etc.) in the First use the environment settings (CPPFLAGS, LDFLAGS, etc.) in the
above [108]Solaris build script to run the configure command. That above [109]Solaris build script to run the configure command. That
should succeed without failure. Then, you have to hand edit the should succeed without failure. Then, you have to hand edit the
autogenerated rfb/rfbconfig.h file in the source tree, and just before autogenerated rfb/rfbconfig.h file in the source tree, and just before
the last #endif at the bottom of that file insert these workaround the last #endif at the bottom of that file insert these workaround
@ -978,18 +983,18 @@ typedef unsigned int in_addr_t;
Q-4: Where can I get a precompiled x11vnc binary for my Operating Q-4: Where can I get a precompiled x11vnc binary for my Operating
System? System?
Hopefully the [109]build steps above and [110]FAQ provide enough info Hopefully the [110]build steps above and [111]FAQ provide enough info
for a painless compile for most environments. Please report problems for a painless compile for most environments. Please report problems
with the x11vnc configure, make, etc. on your system (if your system with the x11vnc configure, make, etc. on your system (if your system
is known to compile other GNU packages successfully). is known to compile other GNU packages successfully).
There are precompiled x11vnc binaries made by other groups available There are precompiled x11vnc binaries made by other groups available
at the following locations: at the following locations:
Debian: (.deb) [111]http://packages.debian.org/x11vnc Debian: (.deb) [112]http://packages.debian.org/x11vnc
Slackware: (.tgz) [112]http://www.linuxpackages.net/ Redhat/Fedora: Slackware: (.tgz) [113]http://www.linuxpackages.net/ Redhat/Fedora:
(.rpm) [113]http://dag.wieers.com/packages/x11vnc/ wwexptools: (.tgz) (.rpm) [114]http://dag.wieers.com/packages/x11vnc/ wwexptools: (.tgz)
[114]http://www.bell-labs.com/project/wwexptools/packages.html The [115]http://www.bell-labs.com/project/wwexptools/packages.html The
last one, wwexptools, provides a variety of Unix binaries (Linux, last one, wwexptools, provides a variety of Unix binaries (Linux,
Solaris, HP-UX, IRIX, ...) with the intent of being compatible on a Solaris, HP-UX, IRIX, ...) with the intent of being compatible on a
wide range of OS releases. Find x11vnc near the bottom of that page wide range of OS releases. Find x11vnc near the bottom of that page
@ -1001,12 +1006,12 @@ typedef unsigned int in_addr_t;
this by looking at the x11vnc output and if it says the encoding for a this by looking at the x11vnc output and if it says the encoding for a
client is "hextile" then likely the fast compression encodings are client is "hextile" then likely the fast compression encodings are
missing. If you want optimal performance on your OS, you should see missing. If you want optimal performance on your OS, you should see
the [115]build notes above for where to download libz and libjpeg, and the [116]build notes above for where to download libz and libjpeg, and
then build everything with gcc. then build everything with gcc.
If the above binaries don't work and building x11vnc on your OS fails If the above binaries don't work and building x11vnc on your OS fails
(and all else fails!) you can try one of my motley collection of (and all else fails!) you can try one of my motley collection of
[116]test binaries. Some may be old, some may have extra debugging [117]test binaries. Some may be old, some may have extra debugging
output, etc. One may work on your OS, but please understand they are output, etc. One may work on your OS, but please understand they are
test/experimental binaries not intended for general usage like the test/experimental binaries not intended for general usage like the
above precompiled ones from 3rd parties. above precompiled ones from 3rd parties.
@ -1028,14 +1033,14 @@ typedef unsigned int in_addr_t;
To obtain VNC viewers for the viewing side (Windows, Mac OS, or Unix) To obtain VNC viewers for the viewing side (Windows, Mac OS, or Unix)
try here: try here:
* [117]http://www.tightvnc.com/download.html * [118]http://www.tightvnc.com/download.html
* [118]http://www.realvnc.com/download-free.html * [119]http://www.realvnc.com/download-free.html
* [119]http://sourceforge.net/projects/cotvnc/ * [120]http://sourceforge.net/projects/cotvnc/
Q-6: How can I see all of x11vnc's command line options and Q-6: How can I see all of x11vnc's command line options and
documentation on how to use them? documentation on how to use them?
Run: x11vnc -help The output is listed [120]here as well. Run: x11vnc -help The output is listed [121]here as well.
Q-7: I don't like typing arcane command line options every time I Q-7: I don't like typing arcane command line options every time I
start x11vnc. What can I do? Is there a config file? Or a GUI? start x11vnc. What can I do? Is there a config file? Or a GUI?
@ -1090,7 +1095,7 @@ display :0
As of Apr/2004 the above fix only works for BSD signal systems (Linux, As of Apr/2004 the above fix only works for BSD signal systems (Linux,
FreeBSD, ...) For SYSV systems there is a workaround in my FreeBSD, ...) For SYSV systems there is a workaround in my
[121]x11vnc.c file. It also has an option -sigpipe exit to have x11vnc [122]x11vnc.c file. It also has an option -sigpipe exit to have x11vnc
clean up and exit upon receiving SIGPIPE. clean up and exit upon receiving SIGPIPE.
[Win2VNC Related] [Win2VNC Related]
@ -1105,16 +1110,16 @@ display :0
secondary display (X11). Then start up Win2VNC on the primary display secondary display (X11). Then start up Win2VNC on the primary display
(Windows) referring it to the secondary display. (Windows) referring it to the secondary display.
This will also work X11 to X11 using [122]x2vnc, however you would This will also work X11 to X11 using [123]x2vnc, however you would
probably just want to avoid VNC and use x2x for that. probably just want to avoid VNC and use x2x for that.
For reference, here are some links to Win2VNC-like programs for For reference, here are some links to Win2VNC-like programs for
multiple monitor setups: multiple monitor setups:
* [123]Original Win2VNC * [124]Original Win2VNC
* [124]Enhanced Win2VNC and [125]sourceforge link * [125]Enhanced Win2VNC and [126]sourceforge link
* [126]x2vnc * [127]x2vnc
* [127]x2x also [128]here * [128]x2x also [129]here
* [129]zvnc (MorphOS) * [130]zvnc (MorphOS)
All of them (except x2x) will work with x11vnc. All of them (except x2x) will work with x11vnc.
@ -1169,7 +1174,7 @@ display :0
visuals of different color depths: e.g. there are both depth 8 and 24 visuals of different color depths: e.g. there are both depth 8 and 24
visuals available at the same time. visuals available at the same time.
You may want to review the [130]previous question regarding 8 bpp You may want to review the [131]previous question regarding 8 bpp
PseudoColor. PseudoColor.
On some hardware (Sun/SPARC, Sgi), the -overlay option discussed a On some hardware (Sun/SPARC, Sgi), the -overlay option discussed a
@ -1206,24 +1211,24 @@ TrueColor defdepth 24
"-cc 4" X server command line option to get a depth 24 default visual. "-cc 4" X server command line option to get a depth 24 default visual.
The -overlay mode: Another option is if the system with overlay The -overlay mode: Another option is if the system with overlay
visuals is a Sun system running Solaris you can use the -overlay visuals is a Sun system running Solaris or Sgi running IRIX you can
x11vnc option (Aug/2004) to have x11vnc use the Solaris use the -overlay x11vnc option (Aug/2004) to have x11vnc use the
XReadScreen(3X11) function to poll the "true view" of the whole screen Solaris XReadScreen(3X11) function to poll the "true view" of the
at depth 24 TrueColor.This is useful for Legacy applications (older whole screen at depth 24 TrueColor. XReadDisplay(3X11) is used on
versions of Cadence CAD apps are mentioned by x11vnc users) that IRIX. This is useful for Legacy applications (older versions of
require the default depth be 8bpp, or will use a 8bpp visual even if Cadence CAD apps are mentioned by x11vnc users) that require the
depth 24 visuals are available, and so the default depth workaround default depth be 8bpp, or will use a 8bpp visual even if depth 24
described in the previous paragraph is not sufficient for these apps. visuals are available, and so the default depth workaround described
The -overlay mode should also work on IRIX machines using in the previous paragraph is not sufficient for these apps.
XReadDisplay(3X11).
Misc. notes on -overlay mode: An amusing by-product of -overlay mode Misc. notes on -overlay mode: An amusing by-product of -overlay mode
is that mouse cursor shape is correct. The -overlay mode may be is that mouse cursor shape is correct. The -overlay mode may be
somewhat slower than normal mode due to the extra framebuffer somewhat slower than normal mode due to the extra framebuffer
manipulations that must be performed. Also, there is a bug in that for manipulations that must be performed. Also, on Solaris there is a bug
some popup menus, the windows they overlap will have painting problems in that for some popup menus, the windows they overlap will have
while the popup is up (a workaround is to disable SaveUnders by painting problems while the popup is up (a workaround is to disable
passing -su to Xsun, e.g. in your /etc/dt/config/Xservers file). SaveUnders by passing -su to Xsun, e.g. in your
/etc/dt/config/Xservers file).
Still not working? Run xwininfo on the application with the messed up Still not working? Run xwininfo on the application with the messed up
colors to verify that the depth of its visual is different from the colors to verify that the depth of its visual is different from the
@ -1246,7 +1251,7 @@ TrueColor defdepth 24
the desired application window. After clicking, it will print out much the desired application window. After clicking, it will print out much
information, including the window id. Also, the visual and depth of information, including the window id. Also, the visual and depth of
the window printed out is often useful in debugging x11vnc the window printed out is often useful in debugging x11vnc
[131]problems. [132]problems.
When using -id windowid, note that some VNC viewers will have problems When using -id windowid, note that some VNC viewers will have problems
rendering screens that have a width that is not a multiple of 4. Try rendering screens that have a width that is not a multiple of 4. Try
@ -1352,7 +1357,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
xauth(1) manpage for more details. xauth(1) manpage for more details.
If the display name needs to be changed between the two hosts, see If the display name needs to be changed between the two hosts, see
[132]this note on the xauth add ... command. [133]this note on the xauth add ... command.
A less secure option is to run something like "xhost +127.0.0.1" to A less secure option is to run something like "xhost +127.0.0.1" to
allow cookie-free local access for x11vnc. allow cookie-free local access for x11vnc.
@ -1361,7 +1366,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
accounts, NFS, etc. you'll need to contact your system administrator accounts, NFS, etc. you'll need to contact your system administrator
to set something up. to set something up.
Not recommended, but as a last resort, you could have x11vnc [133]poll Not recommended, but as a last resort, you could have x11vnc [134]poll
the Xterminal over the network. the Xterminal over the network.
Note: use of Display Manager (gdm, kdm, ...) auth cookie files (i.e. Note: use of Display Manager (gdm, kdm, ...) auth cookie files (i.e.
@ -1429,10 +1434,10 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
-shared option to have x11vnc allow multiple clients to connect -shared option to have x11vnc allow multiple clients to connect
simultaneously. simultaneously.
Recommended additional safety measures include using ssh ([134]see Recommended additional safety measures include using ssh ([135]see
above), stunnel, or a VPN to authenticate and encrypt the viewer above), stunnel, or a VPN to authenticate and encrypt the viewer
connections or to at least use the -rfbauth passwd-file [135]option to connections or to at least use the -rfbauth passwd-file [136]option to
use VNC password protection (or [136]-passwdfile) It is up to you to use VNC password protection (or [137]-passwdfile) It is up to you to
apply these security measures, they will not be done for you apply these security measures, they will not be done for you
automatically. automatically.
@ -1468,7 +1473,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
is "vnc", e.g.: is "vnc", e.g.:
vnc: 192.168.100.3 .example.com vnc: 192.168.100.3 .example.com
Note that if you run x11vnc out of [137]inetd you do not need to build Note that if you run x11vnc out of [138]inetd you do not need to build
x11vnc with libwrap support because the /usr/sbin/tcpd reference in x11vnc with libwrap support because the /usr/sbin/tcpd reference in
/etc/inetd.conf handles the tcp_wrappers stuff. /etc/inetd.conf handles the tcp_wrappers stuff.
@ -1512,7 +1517,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
program to prompt the user whether the client should be accepted or program to prompt the user whether the client should be accepted or
not. This requires that you have xmessage installed and available via not. This requires that you have xmessage installed and available via
PATH. In case it is not already on your system, the xmessage program PATH. In case it is not already on your system, the xmessage program
is available at [138]ftp://ftp.x.org/ is available at [139]ftp://ftp.x.org/
To include view-only decisions for the external commands, prefix the To include view-only decisions for the external commands, prefix the
command something like this: "yes:0,no:*,view:3 mycommand ..." This command something like this: "yes:0,no:*,view:3 mycommand ..." This
@ -1551,7 +1556,7 @@ elif [ $rc = 4 ]; then
fi fi
exit 1 exit 1
Stefan Radman has written a nice dtksh script [139]dtVncPopup for use Stefan Radman has written a nice dtksh script [140]dtVncPopup for use
in CDE environments to do the same sort of thing. Information on how in CDE environments to do the same sort of thing. Information on how
to use it is found at the top of the file. He encourages you to to use it is found at the top of the file. He encourages you to
provide feedback to him to help improve the script. provide feedback to him to help improve the script.
@ -1587,14 +1592,14 @@ exit 1
out for the command winding up in your shell's history file (history out for the command winding up in your shell's history file (history
-c is often a way to clear it). -c is often a way to clear it).
x11vnc also has the [140]-passwdfile and -passwd/-viewpasswd plain x11vnc also has the [141]-passwdfile and -passwd/-viewpasswd plain
text (i.e. not obscured like the -rfbauth VNC passwords) password text (i.e. not obscured like the -rfbauth VNC passwords) password
options. options.
Q-26: How can I tunnel my connection to x11vnc via an encrypted SSH Q-26: How can I tunnel my connection to x11vnc via an encrypted SSH
channel between two Unix machines? channel between two Unix machines?
See the description earlier on this page on [141]how to tunnel VNC via See the description earlier on this page on [142]how to tunnel VNC via
SSH from Unix to Unix. A number of ways are described along with some SSH from Unix to Unix. A number of ways are described along with some
issues you may encounter. issues you may encounter.
@ -1604,7 +1609,7 @@ exit 1
Q-27: How can I tunnel my connection to x11vnc via an encrypted SSH Q-27: How can I tunnel my connection to x11vnc via an encrypted SSH
channel from Windows using an SSH client like Putty? channel from Windows using an SSH client like Putty?
[142]Above we described how to tunnel VNC via SSH from Unix to Unix, [143]Above we described how to tunnel VNC via SSH from Unix to Unix,
you may want to review it. To do this from Windows using Putty it you may want to review it. To do this from Windows using Putty it
would go something like this: would go something like this:
* In the Putty dialog window under 'Session' enter the hostname or * In the Putty dialog window under 'Session' enter the hostname or
@ -1637,7 +1642,7 @@ exit 1
you'll need to do a second login (ssh or rsh) to the workstation you'll need to do a second login (ssh or rsh) to the workstation
machine 'otherhost' and then start up x11vnc on it. machine 'otherhost' and then start up x11vnc on it.
As discussed [143]above another option is to first start the VNC As discussed [144]above another option is to first start the VNC
viewer in "listen" mode, and then launch x11vnc with the "-connection viewer in "listen" mode, and then launch x11vnc with the "-connection
localhost" option to establish the reverse connection. In this case a localhost" option to establish the reverse connection. In this case a
Remote port redirection (not Local) is needed for port 5500 instead of Remote port redirection (not Local) is needed for port 5500 instead of
@ -1658,7 +1663,7 @@ exit 1
connection to make it appear to emanate from the local machine. As connection to make it appear to emanate from the local machine. As
discussed above, ssh is useful for this: ssh -l username -L discussed above, ssh is useful for this: ssh -l username -L
5900:localhost:5900 hostname ... See the ssh wrapper scripts mentioned 5900:localhost:5900 hostname ... See the ssh wrapper scripts mentioned
[144]elsewhere on this page. Of course a malicious user could allow [145]elsewhere on this page. Of course a malicious user could allow
other users to get in through his channel, but that is a problem with other users to get in through his channel, but that is a problem with
every method. Another thing to watch out for is a malicious user on every method. Another thing to watch out for is a malicious user on
the viewer side (where ssh is running) trying to sneak in through the the viewer side (where ssh is running) trying to sneak in through the
@ -1734,7 +1739,7 @@ exit 1 # reject it
In any event, as of Jun/2004 there is an experimental utility to make In any event, as of Jun/2004 there is an experimental utility to make
it more difficult for nosey people to see your x11vnc activities. The it more difficult for nosey people to see your x11vnc activities. The
source for it is [145]blockdpy.c The idea behind it is simple (but source for it is [146]blockdpy.c The idea behind it is simple (but
obviously not bulletproof): when a VNC client attaches to x11vnc put obviously not bulletproof): when a VNC client attaches to x11vnc put
the display monitor in the DPMS "off" state, if the DPMS state ever the display monitor in the DPMS "off" state, if the DPMS state ever
changes immediately start up the screen-lock program. The x11vnc user changes immediately start up the screen-lock program. The x11vnc user
@ -1781,11 +1786,11 @@ exit 1 # reject it
permissions. permissions.
Here are some ideas: Here are some ideas:
* Use the description under "Continuously" in the [146]FAQ on x11vnc * Use the description under "Continuously" in the [147]FAQ on x11vnc
and Display Managers and Display Managers
* Use the description in the [147]FAQ on x11vnc and inetd(1) * Use the description in the [148]FAQ on x11vnc and inetd(1)
* Start x11vnc from $HOME/.xsession (or $HOME/.xinitrc) * Start x11vnc from $HOME/.xsession (or $HOME/.xinitrc)
* Although less reliable, see the [148]x11vnc_loop rc.local hack * Although less reliable, see the [149]x11vnc_loop rc.local hack
below. below.
The display manager scheme will not be specific to which user has the The display manager scheme will not be specific to which user has the
@ -1887,18 +1892,18 @@ x11vnc -logfile $HOME/.x11vnc.log -rfbauth $HOME/.vnc/passwd -forever -bg
Then restart: /usr/sbin/gdm-restart (or reboot). The Then restart: /usr/sbin/gdm-restart (or reboot). The
KillInitClients=false setting is important: without it x11vnc will be KillInitClients=false setting is important: without it x11vnc will be
killed immediately after the user logs in. Here are [149]full details killed immediately after the user logs in. Here are [150]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, If you do not want to deal with the 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. [150]x11vnc_loop It will need some local file like rc.local. [151]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.
If the machine is a traditional Xterminal you may want to read If the machine is a traditional Xterminal you may want to read
[151]this FAQ. [152]this FAQ.
Q-34: Can I run x11vnc out of inetd(1)? How about xinetd(1)? Q-34: Can I run x11vnc out of inetd(1)? How about xinetd(1)?
@ -2041,7 +2046,7 @@ xprop -root -f VNC_CONNECT 8s -set VNC_CONNECT "$1"
19/03/2004 10:10:58 error creating tile-row shm for len=4 19/03/2004 10:10:58 error creating tile-row shm for len=4
19/03/2004 10:10:58 reverting to single_copytile mode 19/03/2004 10:10:58 reverting to single_copytile mode
Here is a shell script [152]shm_clear to list and prompt for removal Here is a shell script [153]shm_clear to list and prompt for removal
of your unattached shm segments (attached ones are skipped). I use it of your unattached shm segments (attached ones are skipped). I use it
while debugging x11vnc (I use "shm_clear -y" to assume "yes" for each while debugging x11vnc (I use "shm_clear -y" to assume "yes" for each
prompt). If x11vnc is regularly not cleaning up its shm segments, prompt). If x11vnc is regularly not cleaning up its shm segments,
@ -2079,7 +2084,7 @@ ied)
-fs 1.0 knocks it down to 2). If you are having much trouble with shm -fs 1.0 knocks it down to 2). If you are having much trouble with shm
segments, consider disabling shm completely via the -noshm option. segments, consider disabling shm completely via the -noshm option.
Performance will be somewhat degraded but when done over local machine Performance will be somewhat degraded but when done over local machine
sockets it should be acceptable (see an [153]earlier question sockets it should be acceptable (see an [154]earlier question
discussing -noshm). discussing -noshm).
Q-38: How can I make x11vnc use less system resources? Q-38: How can I make x11vnc use less system resources?
@ -2127,7 +2132,7 @@ ied)
worth it, but could be of use in some situations. worth it, but could be of use in some situations.
VNC viewer parameters: VNC viewer parameters:
* Use a [154]TightVNC enabled viewer! * Use a [155]TightVNC enabled viewer!
* Make sure the tight encoding is being used (look at vncviewer and * Make sure the tight encoding is being used (look at vncviewer and
x11vnc outputs) x11vnc outputs)
* Request 8 bits per pixel using -bgr233 (up to 4X speedup over * Request 8 bits per pixel using -bgr233 (up to 4X speedup over
@ -2288,7 +2293,7 @@ ied)
hide the alpha data), but it also currently requires the client and hide the alpha data), but it also currently requires the client and
server to be of the same endianness (otherwise the hidden alpha data server to be of the same endianness (otherwise the hidden alpha data
gets reset to zero by the translation function). As an example, for gets reset to zero by the translation function). As an example, for
the TightVNC 1.3dev5 Unix vncviewer [155]this patch enables the the TightVNC 1.3dev5 Unix vncviewer [156]this patch enables the
TightVNC viewer to do the blending locally. You have to set the TightVNC viewer to do the blending locally. You have to set the
environment variable ALPHABLEND=1 before starting your modified environment variable ALPHABLEND=1 before starting your modified
viewer. The patch code should give an example on how to change the viewer. The patch code should give an example on how to change the
@ -2300,7 +2305,7 @@ ied)
Q-45: Why does the mouse arrow just stay in one corner in my Q-45: Why does the mouse arrow just stay in one corner in my
vncviewer, whereas my cursor (that does move) is just a dot? vncviewer, whereas my cursor (that does move) is just a dot?
This default takes advantage of a [156]tightvnc extension This default takes advantage of a [157]tightvnc extension
(CursorShapeUpdates) that allows specifying a cursor image shape for (CursorShapeUpdates) that allows specifying a cursor image shape for
the local VNC viewer. You may disable it with the -nocursor option to the local VNC viewer. You may disable it with the -nocursor option to
x11vnc if your viewer does not have this extension. x11vnc if your viewer does not have this extension.
@ -2385,12 +2390,12 @@ ied)
default (use -nomodtweak to get the old behavior). This was done default (use -nomodtweak to get the old behavior). This was done
because it was noticed on newer XFree86 setups even on bland "us" because it was noticed on newer XFree86 setups even on bland "us"
keyboards like "pc104 us" XFree86 included a "ghost" key with both "<" keyboards like "pc104 us" XFree86 included a "ghost" key with both "<"
and ">" it. This key does not exist on the keyboard (see [157]this FAQ and ">" it. This key does not exist on the keyboard (see [158]this FAQ
for more info). Without -modtweak there was then an ambiguity in the for more info). Without -modtweak there was then an ambiguity in the
reverse map keysym => keycode, making it so the "<" symbol could not reverse map keysym => keycode, making it so the "<" symbol could not
be typed. be typed.
Also see the [158]FAQ about the -xkb option for a more powerful method Also see the [159]FAQ about the -xkb option for a more powerful method
of modifier tweaking for use on X servers with the XKEYBOARD of modifier tweaking for use on X servers with the XKEYBOARD
extension. extension.
@ -2451,7 +2456,7 @@ ied)
the keysym comma when it comes in from a client (so when Shift is down the keysym comma when it comes in from a client (so when Shift is down
the comma press will yield "<"). the comma press will yield "<").
See also the [159]FAQ about the -xkb option as a possible workaround See also the [160]FAQ about the -xkb option as a possible workaround
using the XKEYBOARD extension. Note that of Jul/2004 in the using the XKEYBOARD extension. Note that of Jul/2004 in the
libvncserver CVS the -modtweak option is now that default. libvncserver CVS the -modtweak option is now that default.
@ -2587,7 +2592,23 @@ ied)
someone is also working at the physical display and misses his someone is also working at the physical display and misses his
autorepeating. autorepeating.
Q-52: The machine where I run x11vnc has an AltGr key, but the local Q-52: The x11vnc -norepeat mode is in effect, but I still get repeated
keystrokes!!
Are you using x11vnc to log in to an X session? (as described
[161]this FAQ) If so, x11vnc is starting before your session, and then
your session startup could be resetting the autorepeat to be on. Or it
could be something inside your desktop that decides to turn it back
on. x11vnc in -norepeat mode will not battle with things turning
autorepeat back on. (It will, however, turn it off whenever it goes
from a state of zero clients to one client).
Under these circumstances you will have to manually turn autorepeating
off by typing "xset r off" or "x11vnc -R norepeat" or a desktop
utility. If something in your desktop is automatically turning it back
on you will have to disable that somehow.
Q-53: The machine where I run x11vnc has an AltGr key, but the local
machine where I run the VNC viewer does not. Is there a way I can map machine where I run the VNC viewer does not. Is there a way I can map
a local unused key to send an AltGr? How about a Compose key as well? a local unused key to send an AltGr? How about a Compose key as well?
@ -2601,7 +2622,7 @@ ied)
Super_R-Mode_switch,Menu-Multi_key" or use "-remap filename" to Super_R-Mode_switch,Menu-Multi_key" or use "-remap filename" to
specify remappings from a file. specify remappings from a file.
Q-53: I have a Sun machine I run x11vnc on. Its Sun keyboard has just Q-54: I have a Sun machine I run x11vnc on. Its Sun keyboard has just
one Alt key labelled "Alt" and two Meta keys labelled with little one Alt key labelled "Alt" and two Meta keys labelled with little
diamonds. The machine where I run the VNC viewer only has Alt keys. diamonds. The machine where I run the VNC viewer only has Alt keys.
How can I send a Meta keypress? (e.g. emacs needs this) How can I send a Meta keypress? (e.g. emacs needs this)
@ -2618,7 +2639,7 @@ ied)
send Alt_L in this case, maybe -remap Super_L-Meta_L would be a better send Alt_L in this case, maybe -remap Super_L-Meta_L would be a better
choice. choice.
Q-54: Can I map a keystroke to a mouse button click on the remote Q-55: Can I map a keystroke to a mouse button click on the remote
machine? machine?
This can be done directly in some X servers using AccessX and This can be done directly in some X servers using AccessX and
@ -2642,7 +2663,7 @@ ied)
[Screen Related Issues and Features] [Screen Related Issues and Features]
Q-55: The remote display is larger (in number of pixels) than the Q-56: The remote display is larger (in number of pixels) than the
local display I am running the vncviewer on. I don't like the local display I am running the vncviewer on. I don't like the
vncviewer scrollbars, what I can do? vncviewer scrollbars, what I can do?
@ -2660,10 +2681,10 @@ ied)
There may also be scaling viewers out there (e.g. TightVNC on Windows) There may also be scaling viewers out there (e.g. TightVNC on Windows)
that automatically shrink or expand the remote framebuffer to fit the that automatically shrink or expand the remote framebuffer to fit the
local display. Especially for hand-held devices. See also [160]this local display. Especially for hand-held devices. See also [162]this
FAQ on x11vnc scaling. FAQ on x11vnc scaling.
Q-56: Does x11vnc support server-side framebuffer scaling? (E.g. to Q-57: Does x11vnc support server-side framebuffer scaling? (E.g. to
make the desktop smaller). make the desktop smaller).
As of Jun/2004 in the libvncserver CVS x11vnc provides basic As of Jun/2004 in the libvncserver CVS x11vnc provides basic
@ -2713,7 +2734,7 @@ ied)
different scalings listening on separate ports (-rfbport option, different scalings listening on separate ports (-rfbport option,
etc.). etc.).
Q-57: Does x11vnc work with Xinerama? (i.e. multiple monitors joined Q-58: Does x11vnc work with Xinerama? (i.e. multiple monitors joined
together to form one big, single screen). together to form one big, single screen).
Yes, it should generally work because it simply polls the big Yes, it should generally work because it simply polls the big
@ -2740,7 +2761,7 @@ ied)
function. (This may be due to a bug in the X server for XTEST when function. (This may be due to a bug in the X server for XTEST when
Xinerama is enabled). Xinerama is enabled).
Q-58: Can I use x11vnc on a multi-headed display that is not Xinerama Q-59: Can I use x11vnc on a multi-headed display that is not Xinerama
(i.e. separate screens :0.0, :0.1, ... for each monitor)? (i.e. separate screens :0.0, :0.1, ... for each monitor)?
You can, but it is a little bit awkward: you must start separate You can, but it is a little bit awkward: you must start separate
@ -2758,12 +2779,12 @@ ied)
Note: if you are running on Solaris 8 or earlier you can easily hit up Note: if you are running on Solaris 8 or earlier you can easily hit up
against the maximum of 6 shm segments per process (for Xsun in this against the maximum of 6 shm segments per process (for Xsun in this
case) from running multiple x11vnc processes. You should modify case) from running multiple x11vnc processes. You should modify
/etc/system as mentioned in another [161]FAQ to increase the limit. It /etc/system as mentioned in another [163]FAQ to increase the limit. It
is probably also a good idea to run with the -onetile option in this is probably also a good idea to run with the -onetile option in this
case (to limit each x11vnc to 3 shm segments), or even -noshm to use case (to limit each x11vnc to 3 shm segments), or even -noshm to use
no shm segments. no shm segments.
Q-59: Does x11vnc support the XRANDR (X Resize, Rotate and Reflection) Q-60: Does x11vnc support the XRANDR (X Resize, Rotate and Reflection)
extension? Whenever I rotate or resize the screen x11vnc just seems to extension? Whenever I rotate or resize the screen x11vnc just seems to
crash. crash.
@ -2783,12 +2804,12 @@ ied)
specify "-xrandr exit" then all will be disconnected and x11vnc will specify "-xrandr exit" then all will be disconnected and x11vnc will
terminate. terminate.
Q-60: Why is the view in my VNC viewer completely black? Or why is Q-61: Why is the view in my VNC viewer completely black? Or why is
everything flashing around randomly? everything flashing around randomly?
See the next FAQ for a possible explanation. See the next FAQ for a possible explanation.
Q-61: I use Linux Virtual Consoles (VC's) to implement 'Fast User Q-62: I use Linux Virtual Consoles (VC's) to implement 'Fast User
Switching' between users' sessions (e.g. Betty is on Ctrl-Alt-F7, Switching' between users' sessions (e.g. Betty is on Ctrl-Alt-F7,
Bobby is on Ctrl-Alt-F8, and Sid is on Ctrl-Alt-F1: they use those Bobby is on Ctrl-Alt-F8, and Sid is on Ctrl-Alt-F1: they use those
keystrokes to switch between their sessions). How come the view in a keystrokes to switch between their sessions). How come the view in a
@ -2815,7 +2836,7 @@ ied)
x11vnc can poll it), one can use the switchto(1) command, e.g. x11vnc can poll it), one can use the switchto(1) command, e.g.
"switchto 7" for VC #7. "switchto 7" for VC #7.
Q-62: I am using x11vnc where my local machine has "popup/hidden Q-63: I am using x11vnc where my local machine has "popup/hidden
taskbars" (e.g. GNOME or MacOS X) and the remote display where x11vnc taskbars" (e.g. GNOME or MacOS X) and the remote display where x11vnc
runs also has "popup/hidden taskbars" (e.g. GNOME). When I move the runs also has "popup/hidden taskbars" (e.g. GNOME). When I move the
mouse to the edge of the screen where the popups happen, the taskbars mouse to the edge of the screen where the popups happen, the taskbars
@ -2829,7 +2850,7 @@ ied)
[Misc: Clipboard, Beeps, etc.] [Misc: Clipboard, Beeps, etc.]
Q-63: Does the Clipboard/Selection get transferred between the Q-64: Does the Clipboard/Selection get transferred between the
vncviewer and the X display? vncviewer and the X display?
As of Jan/2004 in the libvncserver CVS x11vnc supports the "CutText" As of Jan/2004 in the libvncserver CVS x11vnc supports the "CutText"
@ -2839,7 +2860,11 @@ ied)
want the PRIMARY selection to be polled for changes use the -noprimary want the PRIMARY selection to be polled for changes use the -noprimary
option. option.
Q-64: Why don't I hear the "Beeps" in my X session (e.g. when typing You may need to watch out for desktop utilities such as KDE's
"Klipper" that do odd things with the selection, clipboard, and
cutbuffers.
Q-65: Why don't I hear the "Beeps" in my X session (e.g. when typing
tput bel in an xterm)? tput bel in an xterm)?
As of Dec/2003 in the libvncserver CVS "Beep" XBell events are tracked As of Dec/2003 in the libvncserver CVS "Beep" XBell events are tracked
@ -2960,60 +2985,62 @@ References
105. http://www.karlrunge.com/x11vnc/index.html#FAQ-62 105. http://www.karlrunge.com/x11vnc/index.html#FAQ-62
106. http://www.karlrunge.com/x11vnc/index.html#FAQ-63 106. http://www.karlrunge.com/x11vnc/index.html#FAQ-63
107. http://www.karlrunge.com/x11vnc/index.html#FAQ-64 107. http://www.karlrunge.com/x11vnc/index.html#FAQ-64
108. http://www.karlrunge.com/x11vnc/index.html#solarisbuilding 108. http://www.karlrunge.com/x11vnc/index.html#FAQ-65
109. http://www.karlrunge.com/x11vnc/index.html#building 109. http://www.karlrunge.com/x11vnc/index.html#solarisbuilding
110. http://www.karlrunge.com/x11vnc/index.html#buildfaq 110. http://www.karlrunge.com/x11vnc/index.html#building
111. http://packages.debian.org/x11vnc 111. http://www.karlrunge.com/x11vnc/index.html#buildfaq
112. http://www.linuxpackages.net/search_view.php?by=name&name=x11vnc 112. http://packages.debian.org/x11vnc
113. http://dag.wieers.com/packages/x11vnc/ 113. http://www.linuxpackages.net/search_view.php?by=name&name=x11vnc
114. http://www.bell-labs.com/project/wwexptools/packages.html 114. http://dag.wieers.com/packages/x11vnc/
115. http://www.karlrunge.com/x11vnc/index.html#solarisbuilding 115. http://www.bell-labs.com/project/wwexptools/packages.html
116. http://www.karlrunge.com/x11vnc/bins 116. http://www.karlrunge.com/x11vnc/index.html#solarisbuilding
117. http://www.tightvnc.com/download.html 117. http://www.karlrunge.com/x11vnc/bins
118. http://www.realvnc.com/download-free.html 118. http://www.tightvnc.com/download.html
119. http://sourceforge.net/projects/cotvnc/ 119. http://www.realvnc.com/download-free.html
120. http://www.karlrunge.com/x11vnc/x11vnc_opts.html 120. http://sourceforge.net/projects/cotvnc/
121. http://www.karlrunge.com/x11vnc/x11vnc.c 121. http://www.karlrunge.com/x11vnc/x11vnc_opts.html
122. http://fredrik.hubbe.net/x2vnc.html 122. http://www.karlrunge.com/x11vnc/x11vnc.c
123. http://www.hubbe.net/~hubbe/win2vnc.html 123. http://fredrik.hubbe.net/x2vnc.html
124. http://www.deboer.gmxhome.de/ 124. http://www.hubbe.net/~hubbe/win2vnc.html
125. http://sourceforge.net/projects/win2vnc/ 125. http://www.deboer.gmxhome.de/
126. http://fredrik.hubbe.net/x2vnc.html 126. http://sourceforge.net/projects/win2vnc/
127. http://freshmeat.net/projects/x2x/ 127. http://fredrik.hubbe.net/x2vnc.html
128. http://ftp.digital.com/pub/Digital/SRC/x2x/ 128. http://freshmeat.net/projects/x2x/
129. http://zapek.com/software/zvnc/ 129. http://ftp.digital.com/pub/Digital/SRC/x2x/
130. http://www.karlrunge.com/x11vnc/index.html#8bpp 130. http://zapek.com/software/zvnc/
131. http://www.karlrunge.com/x11vnc/index.html#overlays 131. http://www.karlrunge.com/x11vnc/index.html#8bpp
132. http://www.karlrunge.com/x11vnc/index.html#xauth_pain 132. http://www.karlrunge.com/x11vnc/index.html#overlays
133. http://www.karlrunge.com/x11vnc/index.html#noshm 133. http://www.karlrunge.com/x11vnc/index.html#xauth_pain
134. http://www.karlrunge.com/x11vnc/index.html#tunnelling 134. http://www.karlrunge.com/x11vnc/index.html#noshm
135. http://www.karlrunge.com/x11vnc/index.html#passwd 135. http://www.karlrunge.com/x11vnc/index.html#tunnelling
136. http://www.karlrunge.com/x11vnc/index.html#passwdfile 136. http://www.karlrunge.com/x11vnc/index.html#passwd
137. http://www.karlrunge.com/x11vnc/index.html#inetd 137. http://www.karlrunge.com/x11vnc/index.html#passwdfile
138. ftp://ftp.x.org/ 138. http://www.karlrunge.com/x11vnc/index.html#inetd
139. http://www.karlrunge.com/x11vnc/dtVncPopup 139. ftp://ftp.x.org/
140. http://www.karlrunge.com/x11vnc/index.html#passwdfile 140. http://www.karlrunge.com/x11vnc/dtVncPopup
141. http://www.karlrunge.com/x11vnc/index.html#tunnelling 141. http://www.karlrunge.com/x11vnc/index.html#passwdfile
142. http://www.karlrunge.com/x11vnc/index.html#tunnelling 142. http://www.karlrunge.com/x11vnc/index.html#tunnelling
143. http://www.karlrunge.com/x11vnc/index.html#tunnelling 143. http://www.karlrunge.com/x11vnc/index.html#tunnelling
144. http://www.karlrunge.com/x11vnc/index.html#tunnelling 144. http://www.karlrunge.com/x11vnc/index.html#tunnelling
145. http://www.karlrunge.com/x11vnc/blockdpy.c 145. http://www.karlrunge.com/x11vnc/index.html#tunnelling
146. http://www.karlrunge.com/x11vnc/index.html#display_manager 146. http://www.karlrunge.com/x11vnc/blockdpy.c
147. http://www.karlrunge.com/x11vnc/index.html#inetd 147. http://www.karlrunge.com/x11vnc/index.html#display_manager
148. http://www.karlrunge.com/x11vnc/index.html#x11vnc_loop 148. http://www.karlrunge.com/x11vnc/index.html#inetd
149. http://www.jirka.org/gdm-documentation/x241.html 149. http://www.karlrunge.com/x11vnc/index.html#x11vnc_loop
150. http://www.karlrunge.com/x11vnc/x11vnc_loop 150. http://www.jirka.org/gdm-documentation/x241.html
151. http://www.karlrunge.com/x11vnc/index.html#xterminal_xauth 151. http://www.karlrunge.com/x11vnc/x11vnc_loop
152. http://www.karlrunge.com/x11vnc/shm_clear 152. http://www.karlrunge.com/x11vnc/index.html#xterminal_xauth
153. http://www.karlrunge.com/x11vnc/index.html#noshm 153. http://www.karlrunge.com/x11vnc/shm_clear
154. http://www.tightvnc.com/ 154. http://www.karlrunge.com/x11vnc/index.html#noshm
155. http://www.karlrunge.com/x11vnc/tight-vncviewer-alphahack.patch 155. http://www.tightvnc.com/
156. http://www.tightvnc.com/ 156. http://www.karlrunge.com/x11vnc/tight-vncviewer-alphahack.patch
157. http://www.karlrunge.com/x11vnc/index.html#greaterless 157. http://www.tightvnc.com/
158. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak 158. http://www.karlrunge.com/x11vnc/index.html#greaterless
159. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak 159. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak
160. http://www.karlrunge.com/x11vnc/index.html#scaling 160. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak
161. http://www.karlrunge.com/x11vnc/index.html#solshm 161. http://www.karlrunge.com/x11vnc/index.html#display_manager
162. http://www.karlrunge.com/x11vnc/index.html#scaling
163. http://www.karlrunge.com/x11vnc/index.html#solshm
======================================================================= =======================================================================
@ -3026,8 +3053,8 @@ 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 -help % x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-01-1 x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-01-2
6 3
Typical usage is: Typical usage is:
@ -3161,6 +3188,8 @@ Options:
disconnects, opposite of -forever. This is the Default. disconnects, opposite of -forever. This is the Default.
-forever Keep listening for more connections rather than exiting -forever Keep listening for more connections rather than exiting
as soon as the first client(s) disconnect. Same as -many as soon as the first client(s) disconnect. Same as -many
-timeout n Exit unless a client connects within the first n seconds
of startup.
-inetd Launched by inetd(1): stdio instead of listening socket. -inetd Launched by inetd(1): stdio instead of listening socket.
Note: if you are not redirecting stderr to a log file Note: if you are not redirecting stderr to a log file
(via shell 2> or -o option) you must also specify the (via shell 2> or -o option) you must also specify the
@ -3427,9 +3456,9 @@ Options:
with -nocursor, and also some values of the "mode" with -nocursor, and also some values of the "mode"
option below. option below.
Note that under XFIXES cursors with transparency Note that under XFIXES cursors with transparency (alpha
(alpha channel) will not be exactly represented and channel) will not be exactly represented and one may
so Overlay may be preferred. See also the -alphacut find Overlay may be preferable. See also the -alphacut
and -alphafrac options below as fudge factors to try and -alphafrac options below as fudge factors to try
to improve the situation for cursors with transparency to improve the situation for cursors with transparency
for a given theme. for a given theme.
@ -3488,14 +3517,14 @@ Options:
black background). Specify this option to remove the black background). Specify this option to remove the
alpha factor. (useful for light colored semi-transparent alpha factor. (useful for light colored semi-transparent
cursors). cursors).
-alphablend In XFIXES mode send cursor alpha channel data to -noalphablend In XFIXES mode do not send cursor alpha channel data
libvncserver. The blending effect will only be to libvncserver. The default is to send it. The
visible in -nocursorshape mode or for clients with alphablend effect will only be visible in -nocursorshape
cursorshapeupdates turned off. (However there is a mode or for clients with cursorshapeupdates turned
hack for 32bpp with depth 24, it uses the extra 8 bits off. (However there is a hack for 32bpp with depth 24,
to store cursor transparency for use with a hacked it uses the extra 8 bits to store cursor transparency
vncviewer that applies the transparency locally. for use with a hacked vncviewer that applies the
See the FAQ for more info). transparency locally. See the FAQ for more info).
-nocursorshape Do not use the TightVNC CursorShapeUpdates extension -nocursorshape Do not use the TightVNC CursorShapeUpdates extension
even if clients support it. See -cursor above. even if clients support it. See -cursor above.
@ -3759,6 +3788,9 @@ Options:
noshared disable -shared mode. noshared disable -shared mode.
forever enable -forever mode. forever enable -forever mode.
noforever disable -forever mode. noforever disable -forever mode.
timeout:n reset -timeout to n, if there are
currently no clients, exit unless one
connects in the next n secs.
deny deny any new connections, same as "lock" deny deny any new connections, same as "lock"
nodeny allow new connections, same as "unlock" nodeny allow new connections, same as "unlock"
connect:host do reverse connection to host, "host" connect:host do reverse connection to host, "host"
@ -3842,8 +3874,8 @@ Options:
alphafrac:f set -alphafrac to f. alphafrac:f set -alphafrac to f.
alpharemove enable -alpharemove mode. alpharemove enable -alpharemove mode.
noalpharemove disable -alpharemove mode. noalpharemove disable -alpharemove mode.
alphablend enable -alphablend mode. alphablend disable -noalphablend mode.
noalphablend disable -alphablend mode. noalphablend enable -noalphablend mode.
cursorshape disable -nocursorshape mode. cursorshape disable -nocursorshape mode.
nocursorshape enable -nocursorshape mode. nocursorshape enable -nocursorshape mode.
cursorpos disable -nocursorpos mode. cursorpos disable -nocursorpos mode.
@ -3936,8 +3968,8 @@ Options:
nowaitmapped flashcmap noflashcmap truecolor notruecolor nowaitmapped flashcmap noflashcmap truecolor notruecolor
overlay nooverlay overlay_cursor overlay_yescursor overlay nooverlay overlay_cursor overlay_yescursor
nooverlay_nocursor nooverlay_cursor nooverlay_yescursor nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
overlay_nocursor visual scale viewonly noviewonly overlay_nocursor visual scale viewonly noviewonly shared
shared noshared forever noforever once deny lock nodeny noshared forever noforever once timeout deny lock nodeny
unlock connect allowonce allow localhost nolocalhost unlock connect allowonce allow localhost nolocalhost
accept gone shm noshm flipbyteorder noflipbyteorder accept gone shm noshm flipbyteorder noflipbyteorder
onetile noonetile blackout xinerama noxinerama xrandr onetile noonetile blackout xinerama noxinerama xrandr
@ -3959,16 +3991,16 @@ Options:
noalwaysshared nevershared noalwaysshared dontdisconnect noalwaysshared nevershared noalwaysshared dontdisconnect
nodontdisconnect desktop noremote nodontdisconnect desktop noremote
aro= display vncdisplay desktopname auth rootshift aro= display vncdisplay desktopname http_url auth
scale_str scaled_x scaled_y scale_numer scale_denom rootshift scale_str scaled_x scaled_y scale_numer
scale_fac scaling_noblend scaling_nomult4 scaling_pad scale_denom scale_fac scaling_noblend scaling_nomult4
scaling_interpolate inetd safer unsafe passwdfile scaling_pad scaling_interpolate inetd safer unsafe
using_shm logfile o rc norc h help V version lastmod passwdfile using_shm logfile o rc norc h help V version
bg sigpipe threads clients client_count pid ext_xtest lastmod bg sigpipe threads clients client_count pid
ext_xkb ext_xshm ext_xinerama ext_overlay ext_xfixes ext_xtest ext_xkb ext_xshm ext_xinerama ext_overlay
ext_xdamage ext_xrandr rootwin num_buttons button_mask ext_xfixes ext_xdamage ext_xrandr rootwin num_buttons
mouse_x mouse_y bpp depth indexed_color dpy_x dpy_y button_mask mouse_x mouse_y bpp depth indexed_color
rfbauth passwd dpy_x dpy_y rfbauth passwd
-sync By default -remote commands are run asynchronously, that -sync By default -remote commands are run asynchronously, that
is, the request is posted and the program immediately is, the request is posted and the program immediately

@ -139,7 +139,7 @@ Keyboard
Pointer Pointer
=-C:none,arrow,X,some,most cursor: =-C:none,arrow,X,some,most cursor:
noxfixes noxfixes
alphablend noalphablend
-- --
cursorpos cursorpos
nocursorshape nocursorshape
@ -186,11 +186,12 @@ Permissions
localhost localhost
=RA allowonce: =RA allowonce:
-- --
=RA noremote
--
viewonly viewonly
shared shared
forever forever
-- timeout:
=RA noremote
-- --
=SA alwaysshared =SA alwaysshared
=SA nevershared =SA nevershared
@ -359,35 +360,39 @@ There is much overlap between the menu items available in state 1)
and state 2), but it is worth keeping in mind it is not 100%. and state 2), but it is worth keeping in mind it is not 100%.
For example, you cannot set passwords or password files in state 1). For example, you cannot set passwords or password files in state 1).
Also note that there may be *two* separate X displays involved, not just Also note that there may be *two* separate X displays involved, not just
one: 1) the X display x11vnc will be polling (and making available to one: 1) the X display x11vnc will be polling (and making available to
VNC viewers), and 2) the X display this GUI is intended to display on. VNC viewers), and 2) the X display this GUI is intended to display on.
For example, one might use ssh to access the remote machine where the For example, one might use ssh to access the remote machine where the
GUI would display on :11 and x11vnc would poll display :0. GUI would display on :11 and x11vnc would poll display :0. By default
the gui will display on the value in the DISPLAY env. variable followed
by the value from the -display option. To override this, use something
like: \"-gui otherhost:0\", etc.
GUI components: GUI components:
--- ---------- --- ----------
At the top of the gui is a info text label where information will 1) At the top of the gui is a info text label where information will
be posted, e.g. when traversing menu items text indicating how to get be posted, e.g. when traversing menu items text indicating how to get
help on the item and its current value will be displayed. help on the item and its current value will be displayed.
Below the info label is the area where the menu buttons, Actions, 2) Below the info label is the area where the menu buttons, Actions,
Clients, etc., are presented. If a menu item has a checkbox, Clients, etc., are presented. If a menu item has a checkbox,
it corresponds to a boolean on/off variable. Otherwise it is it corresponds to a boolean on/off variable. Otherwise it is
either a string variable, or an action not associated with a either a string variable, or an action not associated with a
variable (for the most part). variable (for the most part).
Below the menu button area is a text label indicating the current x11vnc 3) Below the menu button area is a text label indicating the current x11vnc
X display being polled and the corresponding VNC display name. Both X display being polled and the corresponding VNC display name. Both
will be \"(*none*)\" when there is no connection established. will be \"(*none*)\" when there is no connection established.
Below the x11 and vnc displays text label is a text area there scrolling 4) Below the x11 and vnc displays text label is a text area there scrolling
information about actions being taken and commands being run is displayed. information about actions being taken and commands being run is displayed.
To scroll use PageUp/PageDown or the arrow keys. To scroll use PageUp/PageDown or the arrow keys.
At the bottom is an entry area. When one selects a menu item that 5) At the bottom is an entry area. When one selects a menu item that
requires supplying a string value, the label will be set to the requires supplying a string value, the label will be set to the
parameter name and one types in the new value. Then one presses the parameter name and one types in the new value. Then one presses the
\"OK\" button or presses \"Enter\" to set the value. Or you can press \"OK\" button or presses \"Enter\" to set the value. Or you can press
@ -396,11 +401,13 @@ are boolean toggles (for example, \"Permissions -> viewonly\") or Radio
button selections. Selecting these menu items will not activate the button selections. Selecting these menu items will not activate the
entry area but rather toggle the variable directly. entry area but rather toggle the variable directly.
Cascades: There is a bug not yet worked around for the cascade menus
Cascades Bug: There is a bug not yet worked around for the cascade menus
where the (?) help button gets in the way. To get the mouse over to where the (?) help button gets in the way. To get the mouse over to
the cascade menu click and release mouse to activate the cascade, then the cascade menu click and release mouse to activate the cascade, then
you can click on its items. Dragging with a mouse button held down you can click on its items. Dragging with a mouse button held down will
will not work (sorry). not work (sorry!).
Key Bindings: Key Bindings:
@ -410,6 +417,7 @@ Key Bindings:
Anywhere: Control-p invokes \"Actions -> ping\" Anywhere: Control-p invokes \"Actions -> ping\"
Anywhere: Control-u and Control-r invoke \"Actions -> update-all\" Anywhere: Control-u and Control-r invoke \"Actions -> update-all\"
Misc: Misc:
Since x11vnc has so many settings and to avoid further confusion, Since x11vnc has so many settings and to avoid further confusion,
@ -547,7 +555,9 @@ proc help_win {item} {
set text "Help on $item:\n\n" set text "Help on $item:\n\n"
if {[is_gui_internal $item]} { if {[is_gui_internal $item]} {
; if {$item != "gui" && $item != "all"} {
append text " + Is a gui internal Action (cannot be set).\n";
}
} elseif {[is_action $item]} { } elseif {[is_action $item]} {
append text " + Is a remote control Action (cannot be set).\n"; append text " + Is a remote control Action (cannot be set).\n";
} elseif {[active_when_connected $item]} { } elseif {[active_when_connected $item]} {
@ -595,6 +605,10 @@ proc help_win {item} {
} else { } else {
append text "$menu_var($item)\n" append text "$menu_var($item)\n"
} }
if {$item == "http" || $item == "httpdir" || $item == "httpport"} {
global vnc_url;
append text "\nURL: $vnc_url\n"
}
} }
if {$item == "start"} { if {$item == "start"} {
@ -1221,6 +1235,8 @@ proc update_menu_vars {{query ""}} {
set_x11_display $val set_x11_display $val
} elseif {$item == "vncdisplay"} { } elseif {$item == "vncdisplay"} {
set_vnc_display $val set_vnc_display $val
} elseif {$item == "http_url"} {
set_vnc_url $val
} }
} }
} }
@ -1353,7 +1369,7 @@ proc show_logfile {} {
} }
proc tail_logfile {} { proc tail_logfile {} {
global menu_var unset_str global menu_var unset_str ffont
set logfile $menu_var(logfile) set logfile $menu_var(logfile)
set txt "" set txt ""
@ -1363,7 +1379,7 @@ proc tail_logfile {} {
set txt "\nLogfile \"$logfile\" does not exist.\n\n" set txt "\nLogfile \"$logfile\" does not exist.\n\n"
} else { } else {
set cmd "" set cmd ""
set xterm_cmd "xterm -geometry 80x45 -title x11vnc-logfile -e" set xterm_cmd "xterm -sb -fn $ffont -geometry 80x45 -title x11vnc-logfile -e"
set cmd [split $xterm_cmd] set cmd [split $xterm_cmd]
lappend cmd "tail" lappend cmd "tail"
lappend cmd "+1f" lappend cmd "+1f"
@ -1526,6 +1542,11 @@ proc do_var {item} {
} else { } else {
push_new_value $item $name $new 1 push_new_value $item $name $new 1
} }
if {$item == "http"} {
global vnc_url
append_text " URL: $vnc_url\n"
}
} }
} }
@ -1637,12 +1658,19 @@ proc set_vnc_display {name} {
global vnc_display global vnc_display
set vnc_display "VNC display: $name" set vnc_display "VNC display: $name"
} }
proc set_vnc_url {name} {
global vnc_url
set vnc_url $name
}
proc no_x11_display {} { proc no_x11_display {} {
set_x11_display "(*none*)" set_x11_display "(*none*)"
} }
proc no_vnc_display {} { proc no_vnc_display {} {
set_vnc_display "(*none*)" set_vnc_display "(*none*)"
} }
proc no_vnc_url {} {
set_vnc_url "(*none*)"
}
proc fetch_displays {} { proc fetch_displays {} {
@ -1651,6 +1679,7 @@ proc fetch_displays {} {
set got_x11 0 set got_x11 0
set got_vnc 0 set got_vnc 0
set got_url 0
foreach item [split_query $result] { foreach item [split_query $result] {
if {[regexp {^display:(.*)$} $item m0 m1]} { if {[regexp {^display:(.*)$} $item m0 m1]} {
@ -1659,6 +1688,9 @@ proc fetch_displays {} {
} elseif {[regexp {^vncdisplay:(.*)$} $item m0 m1]} { } elseif {[regexp {^vncdisplay:(.*)$} $item m0 m1]} {
set_vnc_display $m1 set_vnc_display $m1
set got_vnc 1 set got_vnc 1
} elseif {[regexp {^http_url:(.*)$} $item m0 m1]} {
set_vnc_url $m1
set got_url 1
} }
} }
if {! $got_x11} { if {! $got_x11} {
@ -1667,6 +1699,9 @@ proc fetch_displays {} {
if {! $got_vnc} { if {! $got_vnc} {
no_vnc_display no_vnc_display
} }
if {! $got_url} {
no_vnc_url
}
} }
proc disconnect_dialog {client} { proc disconnect_dialog {client} {
@ -2130,6 +2165,10 @@ MenuSelect>>
} }
} elseif {[info exists menu_var($which)]} { } elseif {[info exists menu_var($which)]} {
set label "$label value: $menu_var($which)" set label "$label value: $menu_var($which)"
if {$which == "http"} {
global vnc_url
set label "$label URL: $vnc_url"
}
} }
} }
set_info $label set_info $label

@ -145,7 +145,7 @@
"Pointer\n" "Pointer\n"
" =-C:none,arrow,X,some,most cursor:\n" " =-C:none,arrow,X,some,most cursor:\n"
" noxfixes\n" " noxfixes\n"
" alphablend\n" " noalphablend\n"
" --\n" " --\n"
" cursorpos\n" " cursorpos\n"
" nocursorshape\n" " nocursorshape\n"
@ -192,11 +192,12 @@
" localhost\n" " localhost\n"
" =RA allowonce:\n" " =RA allowonce:\n"
" --\n" " --\n"
" =RA noremote\n"
" --\n"
" viewonly\n" " viewonly\n"
" shared\n" " shared\n"
" forever\n" " forever\n"
" --\n" " timeout:\n"
" =RA noremote\n"
" --\n" " --\n"
" =SA alwaysshared\n" " =SA alwaysshared\n"
" =SA nevershared\n" " =SA nevershared\n"
@ -365,35 +366,39 @@
"and state 2), but it is worth keeping in mind it is not 100%.\n" "and state 2), but it is worth keeping in mind it is not 100%.\n"
"For example, you cannot set passwords or password files in state 1).\n" "For example, you cannot set passwords or password files in state 1).\n"
"\n" "\n"
"\n"
"Also note that there may be *two* separate X displays involved, not just\n" "Also note that there may be *two* separate X displays involved, not just\n"
"one: 1) the X display x11vnc will be polling (and making available to\n" "one: 1) the X display x11vnc will be polling (and making available to\n"
"VNC viewers), and 2) the X display this GUI is intended to display on.\n" "VNC viewers), and 2) the X display this GUI is intended to display on.\n"
"For example, one might use ssh to access the remote machine where the\n" "For example, one might use ssh to access the remote machine where the\n"
"GUI would display on :11 and x11vnc would poll display :0.\n" "GUI would display on :11 and x11vnc would poll display :0. By default\n"
"the gui will display on the value in the DISPLAY env. variable followed\n"
"by the value from the -display option. To override this, use something\n"
"like: \\\"-gui otherhost:0\\\", etc.\n"
"\n" "\n"
"\n" "\n"
"GUI components: \n" "GUI components: \n"
"--- ----------\n" "--- ----------\n"
"\n" "\n"
"At the top of the gui is a info text label where information will\n" "1) At the top of the gui is a info text label where information will\n"
"be posted, e.g. when traversing menu items text indicating how to get\n" "be posted, e.g. when traversing menu items text indicating how to get\n"
"help on the item and its current value will be displayed.\n" "help on the item and its current value will be displayed.\n"
"\n" "\n"
"Below the info label is the area where the menu buttons, Actions,\n" "2) Below the info label is the area where the menu buttons, Actions,\n"
"Clients, etc., are presented. If a menu item has a checkbox,\n" "Clients, etc., are presented. If a menu item has a checkbox,\n"
"it corresponds to a boolean on/off variable. Otherwise it is\n" "it corresponds to a boolean on/off variable. Otherwise it is\n"
"either a string variable, or an action not associated with a\n" "either a string variable, or an action not associated with a\n"
"variable (for the most part).\n" "variable (for the most part).\n"
"\n" "\n"
"Below the menu button area is a text label indicating the current x11vnc\n" "3) Below the menu button area is a text label indicating the current x11vnc\n"
"X display being polled and the corresponding VNC display name. Both\n" "X display being polled and the corresponding VNC display name. Both\n"
"will be \\\"(*none*)\\\" when there is no connection established.\n" "will be \\\"(*none*)\\\" when there is no connection established.\n"
"\n" "\n"
"Below the x11 and vnc displays text label is a text area there scrolling\n" "4) Below the x11 and vnc displays text label is a text area there scrolling\n"
"information about actions being taken and commands being run is displayed.\n" "information about actions being taken and commands being run is displayed.\n"
"To scroll use PageUp/PageDown or the arrow keys.\n" "To scroll use PageUp/PageDown or the arrow keys.\n"
"\n" "\n"
"At the bottom is an entry area. When one selects a menu item that\n" "5) At the bottom is an entry area. When one selects a menu item that\n"
"requires supplying a string value, the label will be set to the\n" "requires supplying a string value, the label will be set to the\n"
"parameter name and one types in the new value. Then one presses the\n" "parameter name and one types in the new value. Then one presses the\n"
"\\\"OK\\\" button or presses \\\"Enter\\\" to set the value. Or you can press\n" "\\\"OK\\\" button or presses \\\"Enter\\\" to set the value. Or you can press\n"
@ -402,11 +407,13 @@
"button selections. Selecting these menu items will not activate the\n" "button selections. Selecting these menu items will not activate the\n"
"entry area but rather toggle the variable directly.\n" "entry area but rather toggle the variable directly.\n"
"\n" "\n"
"Cascades: There is a bug not yet worked around for the cascade menus\n" "\n"
"Cascades Bug: There is a bug not yet worked around for the cascade menus\n"
"where the (?) help button gets in the way. To get the mouse over to\n" "where the (?) help button gets in the way. To get the mouse over to\n"
"the cascade menu click and release mouse to activate the cascade, then\n" "the cascade menu click and release mouse to activate the cascade, then\n"
"you can click on its items. Dragging with a mouse button held down\n" "you can click on its items. Dragging with a mouse button held down will\n"
"will not work (sorry).\n" "not work (sorry!).\n"
"\n"
"\n" "\n"
"Key Bindings:\n" "Key Bindings:\n"
"\n" "\n"
@ -416,6 +423,7 @@
" Anywhere: Control-p invokes \\\"Actions -> ping\\\"\n" " Anywhere: Control-p invokes \\\"Actions -> ping\\\"\n"
" Anywhere: Control-u and Control-r invoke \\\"Actions -> update-all\\\"\n" " Anywhere: Control-u and Control-r invoke \\\"Actions -> update-all\\\"\n"
"\n" "\n"
"\n"
"Misc:\n" "Misc:\n"
"\n" "\n"
"Since x11vnc has so many settings and to avoid further confusion,\n" "Since x11vnc has so many settings and to avoid further confusion,\n"
@ -553,7 +561,9 @@
" set text \"Help on $item:\\n\\n\"\n" " set text \"Help on $item:\\n\\n\"\n"
"\n" "\n"
" if {[is_gui_internal $item]} {\n" " if {[is_gui_internal $item]} {\n"
" ;\n" " if {$item != \"gui\" && $item != \"all\"} {\n"
" append text \" + Is a gui internal Action (cannot be set).\\n\";\n"
" }\n"
" } elseif {[is_action $item]} {\n" " } elseif {[is_action $item]} {\n"
" append text \" + Is a remote control Action (cannot be set).\\n\";\n" " append text \" + Is a remote control Action (cannot be set).\\n\";\n"
" } elseif {[active_when_connected $item]} {\n" " } elseif {[active_when_connected $item]} {\n"
@ -601,6 +611,10 @@
" } else {\n" " } else {\n"
" append text \"$menu_var($item)\\n\"\n" " append text \"$menu_var($item)\\n\"\n"
" }\n" " }\n"
" if {$item == \"http\" || $item == \"httpdir\" || $item == \"httpport\"} {\n"
" global vnc_url;\n"
" append text \"\\nURL: $vnc_url\\n\"\n"
" }\n"
" }\n" " }\n"
"\n" "\n"
" if {$item == \"start\"} {\n" " if {$item == \"start\"} {\n"
@ -1227,6 +1241,8 @@
" set_x11_display $val\n" " set_x11_display $val\n"
" } elseif {$item == \"vncdisplay\"} {\n" " } elseif {$item == \"vncdisplay\"} {\n"
" set_vnc_display $val\n" " set_vnc_display $val\n"
" } elseif {$item == \"http_url\"} {\n"
" set_vnc_url $val\n"
" }\n" " }\n"
" }\n" " }\n"
" }\n" " }\n"
@ -1359,7 +1375,7 @@
"}\n" "}\n"
"\n" "\n"
"proc tail_logfile {} {\n" "proc tail_logfile {} {\n"
" global menu_var unset_str\n" " global menu_var unset_str ffont\n"
" set logfile $menu_var(logfile)\n" " set logfile $menu_var(logfile)\n"
" \n" " \n"
" set txt \"\"\n" " set txt \"\"\n"
@ -1369,7 +1385,7 @@
" set txt \"\\nLogfile \\\"$logfile\\\" does not exist.\\n\\n\"\n" " set txt \"\\nLogfile \\\"$logfile\\\" does not exist.\\n\\n\"\n"
" } else {\n" " } else {\n"
" set cmd \"\"\n" " set cmd \"\"\n"
" set xterm_cmd \"xterm -geometry 80x45 -title x11vnc-logfile -e\"\n" " set xterm_cmd \"xterm -sb -fn $ffont -geometry 80x45 -title x11vnc-logfile -e\"\n"
" set cmd [split $xterm_cmd]\n" " set cmd [split $xterm_cmd]\n"
" lappend cmd \"tail\"\n" " lappend cmd \"tail\"\n"
" lappend cmd \"+1f\"\n" " lappend cmd \"+1f\"\n"
@ -1532,6 +1548,11 @@
" } else {\n" " } else {\n"
" push_new_value $item $name $new 1\n" " push_new_value $item $name $new 1\n"
" }\n" " }\n"
"\n"
" if {$item == \"http\"} {\n"
" global vnc_url\n"
" append_text \" URL: $vnc_url\\n\"\n"
" }\n"
" }\n" " }\n"
"}\n" "}\n"
"\n" "\n"
@ -1643,12 +1664,19 @@
" global vnc_display\n" " global vnc_display\n"
" set vnc_display \"VNC display: $name\"\n" " set vnc_display \"VNC display: $name\"\n"
"}\n" "}\n"
"proc set_vnc_url {name} {\n"
" global vnc_url\n"
" set vnc_url $name\n"
"}\n"
"proc no_x11_display {} {\n" "proc no_x11_display {} {\n"
" set_x11_display \"(*none*)\"\n" " set_x11_display \"(*none*)\"\n"
"}\n" "}\n"
"proc no_vnc_display {} {\n" "proc no_vnc_display {} {\n"
" set_vnc_display \"(*none*)\"\n" " set_vnc_display \"(*none*)\"\n"
"}\n" "}\n"
"proc no_vnc_url {} {\n"
" set_vnc_url \"(*none*)\"\n"
"}\n"
"\n" "\n"
"proc fetch_displays {} {\n" "proc fetch_displays {} {\n"
"\n" "\n"
@ -1657,6 +1685,7 @@
"\n" "\n"
" set got_x11 0\n" " set got_x11 0\n"
" set got_vnc 0\n" " set got_vnc 0\n"
" set got_url 0\n"
"\n" "\n"
" foreach item [split_query $result] {\n" " foreach item [split_query $result] {\n"
" if {[regexp {^display:(.*)$} $item m0 m1]} {\n" " if {[regexp {^display:(.*)$} $item m0 m1]} {\n"
@ -1665,6 +1694,9 @@
" } elseif {[regexp {^vncdisplay:(.*)$} $item m0 m1]} {\n" " } elseif {[regexp {^vncdisplay:(.*)$} $item m0 m1]} {\n"
" set_vnc_display $m1\n" " set_vnc_display $m1\n"
" set got_vnc 1\n" " set got_vnc 1\n"
" } elseif {[regexp {^http_url:(.*)$} $item m0 m1]} {\n"
" set_vnc_url $m1\n"
" set got_url 1\n"
" }\n" " }\n"
" }\n" " }\n"
" if {! $got_x11} {\n" " if {! $got_x11} {\n"
@ -1673,6 +1705,9 @@
" if {! $got_vnc} {\n" " if {! $got_vnc} {\n"
" no_vnc_display\n" " no_vnc_display\n"
" }\n" " }\n"
" if {! $got_url} {\n"
" no_vnc_url\n"
" }\n"
"}\n" "}\n"
"\n" "\n"
"proc disconnect_dialog {client} {\n" "proc disconnect_dialog {client} {\n"
@ -2136,6 +2171,10 @@
" }\n" " }\n"
" } elseif {[info exists menu_var($which)]} {\n" " } elseif {[info exists menu_var($which)]} {\n"
" set label \"$label value: $menu_var($which)\"\n" " set label \"$label value: $menu_var($which)\"\n"
" if {$which == \"http\"} {\n"
" global vnc_url\n"
" set label \"$label URL: $vnc_url\"\n"
" }\n"
" }\n" " }\n"
" }\n" " }\n"
" set_info $label\n" " set_info $label\n"

@ -2,7 +2,7 @@
.TH X11VNC "1" "January 2005" "x11vnc " "User Commands" .TH X11VNC "1" "January 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-01-16 version: 0.7.1pre, lastmod: 2005-01-23
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...
@ -191,6 +191,11 @@ disconnects, opposite of \fB-forever.\fR This is the Default.
Keep listening for more connections rather than exiting Keep listening for more connections rather than exiting
as soon as the first client(s) disconnect. Same as \fB-many\fR as soon as the first client(s) disconnect. Same as \fB-many\fR
.PP .PP
\fB-timeout\fR \fIn\fR
.IP
Exit unless a client connects within the first n seconds
of startup.
.PP
\fB-inetd\fR \fB-inetd\fR
.IP .IP
Launched by Launched by
@ -574,9 +579,9 @@ default (see \fB-noxfixes\fR below). This can be disabled
with \fB-nocursor,\fR and also some values of the "mode" with \fB-nocursor,\fR and also some values of the "mode"
option below. option below.
.IP .IP
Note that under XFIXES cursors with transparency Note that under XFIXES cursors with transparency (alpha
(alpha channel) will not be exactly represented and channel) will not be exactly represented and one may
so Overlay may be preferred. See also the \fB-alphacut\fR find Overlay may be preferable. See also the \fB-alphacut\fR
and \fB-alphafrac\fR options below as fudge factors to try and \fB-alphafrac\fR options below as fudge factors to try
to improve the situation for cursors with transparency to improve the situation for cursors with transparency
for a given theme. for a given theme.
@ -647,16 +652,16 @@ black background). Specify this option to remove the
alpha factor. (useful for light colored semi-transparent alpha factor. (useful for light colored semi-transparent
cursors). cursors).
.PP .PP
\fB-alphablend\fR \fB-noalphablend\fR
.IP .IP
In XFIXES mode send cursor alpha channel data to In XFIXES mode do not send cursor alpha channel data
libvncserver. The blending effect will only be to libvncserver. The default is to send it. The
visible in \fB-nocursorshape\fR mode or for clients with alphablend effect will only be visible in \fB-nocursorshape\fR
cursorshapeupdates turned off. (However there is a mode or for clients with cursorshapeupdates turned
hack for 32bpp with depth 24, it uses the extra 8 bits off. (However there is a hack for 32bpp with depth 24,
to store cursor transparency for use with a hacked it uses the extra 8 bits to store cursor transparency
vncviewer that applies the transparency locally. for use with a hacked vncviewer that applies the
See the FAQ for more info). transparency locally. See the FAQ for more info).
.PP .PP
\fB-nocursorshape\fR \fB-nocursorshape\fR
.IP .IP
@ -1010,6 +1015,10 @@ forever enable \fB-forever\fR mode.
.IP .IP
noforever disable \fB-forever\fR mode. noforever disable \fB-forever\fR mode.
.IP .IP
timeout:n reset \fB-timeout\fR to n, if there are
currently no clients, exit unless one
connects in the next n secs.
.IP
deny deny any new connections, same as "lock" deny deny any new connections, same as "lock"
.IP .IP
nodeny allow new connections, same as "unlock" nodeny allow new connections, same as "unlock"
@ -1150,9 +1159,9 @@ alpharemove enable \fB-alpharemove\fR mode.
.IP .IP
noalpharemove disable \fB-alpharemove\fR mode. noalpharemove disable \fB-alpharemove\fR mode.
.IP .IP
alphablend enable \fB-alphablend\fR mode. alphablend disable \fB-noalphablend\fR mode.
.IP .IP
noalphablend disable \fB-alphablend\fR mode. noalphablend enable \fB-noalphablend\fR mode.
.IP .IP
cursorshape disable \fB-nocursorshape\fR mode. cursorshape disable \fB-nocursorshape\fR mode.
.IP .IP
@ -1306,8 +1315,8 @@ refresh reset close disconnect id sid waitmapped
nowaitmapped flashcmap noflashcmap truecolor notruecolor nowaitmapped flashcmap noflashcmap truecolor notruecolor
overlay nooverlay overlay_cursor overlay_yescursor overlay nooverlay overlay_cursor overlay_yescursor
nooverlay_nocursor nooverlay_cursor nooverlay_yescursor nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
overlay_nocursor visual scale viewonly noviewonly overlay_nocursor visual scale viewonly noviewonly shared
shared noshared forever noforever once deny lock nodeny noshared forever noforever once timeout deny lock nodeny
unlock connect allowonce allow localhost nolocalhost unlock connect allowonce allow localhost nolocalhost
accept gone shm noshm flipbyteorder noflipbyteorder accept gone shm noshm flipbyteorder noflipbyteorder
onetile noonetile blackout xinerama noxinerama xrandr onetile noonetile blackout xinerama noxinerama xrandr
@ -1329,16 +1338,16 @@ httpdir enablehttpproxy noenablehttpproxy alwaysshared
noalwaysshared nevershared noalwaysshared dontdisconnect noalwaysshared nevershared noalwaysshared dontdisconnect
nodontdisconnect desktop noremote nodontdisconnect desktop noremote
.IP .IP
aro= display vncdisplay desktopname auth rootshift aro= display vncdisplay desktopname http_url auth
scale_str scaled_x scaled_y scale_numer scale_denom rootshift scale_str scaled_x scaled_y scale_numer
scale_fac scaling_noblend scaling_nomult4 scaling_pad scale_denom scale_fac scaling_noblend scaling_nomult4
scaling_interpolate inetd safer unsafe passwdfile scaling_pad scaling_interpolate inetd safer unsafe
using_shm logfile o rc norc h help V version lastmod passwdfile using_shm logfile o rc norc h help V version
bg sigpipe threads clients client_count pid ext_xtest lastmod bg sigpipe threads clients client_count pid
ext_xkb ext_xshm ext_xinerama ext_overlay ext_xfixes ext_xtest ext_xkb ext_xshm ext_xinerama ext_overlay
ext_xdamage ext_xrandr rootwin num_buttons button_mask ext_xfixes ext_xdamage ext_xrandr rootwin num_buttons
mouse_x mouse_y bpp depth indexed_color dpy_x dpy_y button_mask mouse_x mouse_y bpp depth indexed_color
rfbauth passwd dpy_x dpy_y rfbauth passwd
.PP .PP
\fB-sync\fR \fB-sync\fR
.IP .IP

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save