Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
libvncserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rasky
libvncserver
Commits
2bc615f6
Commit
2bc615f6
authored
20 years ago
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc -solid color, -opts; tightvnc unix viewer alpha patch
parent
914f7b71
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1155 additions
and
405 deletions
+1155
-405
ChangeLog
ChangeLog
+5
-0
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
+143
-0
ChangeLog
x11vnc/ChangeLog
+4
-0
README
x11vnc/README
+463
-357
tkx11vnc
x11vnc/tkx11vnc
+11
-2
tkx11vnc.h
x11vnc/tkx11vnc.h
+11
-2
x11vnc.1
x11vnc/x11vnc.1
+42
-20
x11vnc.c
x11vnc/x11vnc.c
+476
-24
No files found.
ChangeLog
View file @
2bc615f6
2005-02-05 Karl Runge <runge@karlrunge.com>
* x11vnc: -solid color, -opts/-?
* tightvnc-1.3dev5-vncviewer-alpha-cursor.patch: create, name
says it all.
2005-01-23 Karl Runge <runge@karlrunge.com>
2005-01-23 Karl Runge <runge@karlrunge.com>
* x11vnc: -timeout, -noalphablend. make -R norepeat work.
* x11vnc: -timeout, -noalphablend. make -R norepeat work.
* sync with new draw cursor mechanism.
* sync with new draw cursor mechanism.
...
...
This diff is collapsed.
Click to expand it.
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
0 → 100644
View file @
2bc615f6
--- vnc_unixsrc.orig/vncviewer/cursor.c 2003-01-15 04:46:52.000000000 -0500
+++ vnc_unixsrc/vncviewer/cursor.c 2005-02-05 12:28:10.000000000 -0500
@@ -472,6 +472,140 @@
int offset, bytesPerPixel;
char *pos;
+#define alphahack
+#ifdef alphahack
+ /* hack to have cursor transparency at 32bpp <runge@karlrunge.com> */
+ static int alphablend = -1;
+
+ if (alphablend < 0) {
+ /* you have to set NO_ALPHABLEND=1 in your environment to disable */
+ if (getenv("NO_ALPHABLEND")) {
+ alphablend = 0;
+ } else {
+ alphablend = 1;
+ }
+ }
+
+ bytesPerPixel = myFormat.bitsPerPixel / 8;
+
+ if (alphablend && bytesPerPixel == 4) {
+ unsigned long pixel, put, *upos, *upix;
+ int got_alpha = 0, rsX, rsY, rsW, rsH;
+ static XImage *image = NULL;
+ static int iwidth = 128;
+
+ if (! image) {
+ /* watch out for tiny fb (rare) */
+ if (iwidth > si.framebufferWidth) {
+ iwidth = si.framebufferWidth;
+ }
+ if (iwidth > si.framebufferHeight) {
+ iwidth = si.framebufferHeight;
+ }
+
+ /* initialize an XImage with a chunk of desktopWin */
+ image = XGetImage(dpy, desktopWin, 0, 0, iwidth, iwidth,
+ AllPlanes, ZPixmap);
+ }
+
+ /* first check if there is any non-zero alpha channel data at all: */
+ for (y = 0; y < rcHeight; y++) {
+ for (x = 0; x < rcWidth; x++) {
+ int alpha;
+
+ offset = y * rcWidth + x;
+ pos = (char *)&rcSource[offset * bytesPerPixel];
+
+ upos = (unsigned long *) pos;
+ alpha = (*upos & 0xff000000) >> 24;
+ if (alpha) {
+ got_alpha = 1;
+ break;
+ }
+ }
+ if (got_alpha) {
+ break;
+ }
+ }
+
+ if (!got_alpha) {
+ /* no alpha channel data, fallback to the old way */
+ goto oldway;
+ }
+
+ /* load the saved fb patch in to image (faster way?) */
+ XGetSubImage(dpy, rcSavedArea, 0, 0, rcWidth, rcHeight,
+ AllPlanes, ZPixmap, image, 0, 0);
+ upix = (unsigned long *)image->data;
+
+ /* if the richcursor is clipped, the fb patch will be smaller */
+ rsW = rcWidth;
+ rsX = 0; /* used to denote a shift from the left side */
+ x = rcCursorX - rcHotX;
+ if (x < 0) {
+ rsW += x;
+ rsX = -x;
+ } else if (x + rsW > si.framebufferWidth) {
+ rsW = si.framebufferWidth - x;
+ }
+ rsH = rcHeight;
+ rsY = 0; /* used to denote a shift from the top side */
+ y = rcCursorY - rcHotY;
+ if (y < 0) {
+ rsH += y;
+ rsY = -y;
+ } else if (y + rsH > si.framebufferHeight) {
+ rsH = si.framebufferHeight - y;
+ }
+
+ /*
+ * now loop over the cursor data, blend in the fb values,
+ * and then overwrite the fb (CopyDataToScreen())
+ */
+ for (y = 0; y < rcHeight; y++) {
+ y0 = rcCursorY - rcHotY + y;
+ if (y0 < 0 || y0 >= si.framebufferHeight) {
+ continue; /* clipped */
+ }
+ for (x = 0; x < rcWidth; x++) {
+ int alpha, color_curs, color_fb, i;
+
+ x0 = rcCursorX - rcHotX + x;
+ if (x0 < 0 || x0 >= si.framebufferWidth) {
+ continue; /* clipped */
+ }
+
+ offset = y * rcWidth + x;
+ pos = (char *)&rcSource[offset * bytesPerPixel];
+
+ /* extract secret alpha byte from rich cursor: */
+ upos = (unsigned long *) pos;
+ alpha = (*upos & 0xff000000) >> 24; /* XXX MSB? */
+
+ /* extract the pixel from the fb: */
+ pixel = *(upix + (y-rsY)*iwidth + (x-rsX));
+
+ put = 0;
+ /* for simplicity, blend all 4 bytes */
+ for (i = 0; i < 4; i++) {
+ int sh = i*8;
+ color_curs = ((0xff << sh) & *upos) >> sh;
+ color_fb = ((0xff << sh) & pixel) >> sh;
+
+ /* XXX assumes pre-multipled color_curs */
+ color_fb = color_curs
+ + ((0xff - alpha) * color_fb)/0xff;
+ put |= color_fb << sh;
+ }
+ /* place in the fb: */
+ CopyDataToScreen((char *)&put, x0, y0, 1, 1);
+ }
+ }
+ return;
+ }
+oldway:
+#endif
+
bytesPerPixel = myFormat.bitsPerPixel / 8;
/* FIXME: Speed optimization is possible. */
This diff is collapsed.
Click to expand it.
x11vnc/ChangeLog
View file @
2bc615f6
2005-02-05 Karl Runge <runge@karlrunge.com>
* -solid solid color background when clients are connected.
* -opts/-? to show option names only.
2005-01-23 Karl Runge <runge@karlrunge.com>
2005-01-23 Karl Runge <runge@karlrunge.com>
* sync with new draw cursor mechanism, keep old way in OLD_TREE.
* sync with new draw cursor mechanism, keep old way in OLD_TREE.
* add -timeout option, change -alphablend to be default
* add -timeout option, change -alphablend to be default
...
...
This diff is collapsed.
Click to expand it.
x11vnc/README
View file @
2bc615f6
x11vnc
README
file
Date
:
S
un
Jan
23
23
:
48
:
41
EST
2005
x11vnc
README
file
Date
:
S
at
Feb
5
12
:
56
:
36
EST
2005
The
following
information
is
taken
from
these
URLs
:
The
following
information
is
taken
from
these
URLs
:
...
@@ -50,10 +50,10 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -50,10 +50,10 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
interact
with
the
whole
virtual
X11
desktop
.
interact
with
the
whole
virtual
X11
desktop
.
The
VNC
protocol
is
in
most
cases
better
suited
for
remote
connections
The
VNC
protocol
is
in
most
cases
better
suited
for
remote
connections
with
low
bandwidth
and
high
latency
than
is
the
X11
protocol
.
Also
,
with
low
bandwidth
and
high
latency
than
is
the
X11
protocol
(
the
with
no
state
maintained
the
viewing
-
end
can
crash
,
be
rebooted
,
or
exception
is
cached
pixmap
data
on
the
viewing
-
end
).
Also
,
with
no
relocated
and
the
applications
and
desktop
continue
running
.
Not
so
state
maintained
the
viewing
-
end
can
crash
,
be
rebooted
,
or
relocated
with
X11
.
and
the
applications
and
desktop
continue
running
.
Not
so
with
X11
.
So
the
standard
Xvnc
program
is
very
useful
,
I
use
it
for
things
like
:
So
the
standard
Xvnc
program
is
very
useful
,
I
use
it
for
things
like
:
*
desktop
conferencing
with
other
users
(
e
.
g
.
codereviews
).
*
desktop
conferencing
with
other
users
(
e
.
g
.
codereviews
).
...
@@ -77,16 +77,14 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -77,16 +77,14 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
wish to view is "far-away.east:0" and the workstation you are
wish to view is "far-away.east:0" and the workstation you are
presently working at is "sitting-here.west".
presently working at is "sitting-here.west".
Step 0. Download x11vnc ([9]see below) and have it available to run
Step 0. Download x11vnc ([9]see below) and have it available to run on
(e.g. via $PATH) on far-away.east. Similarly, have a VNC viewer (e.g.
far-away.east. Similarly, have a VNC viewer (e.g. vncviewer) ready to
vncviewer) ready to run on sitting-here.west. We recommend
run on sitting-here.west. We recommend [10]TightVNC Viewers.
[10]TightVNC Viewers.
Step 1. By some means log in to far-away.east and get a command shell
Step 1. By some means log in to far-away.east and get a command shell
running there. You can use ssh, rlogin, telnet, or any other method to
running there. You can use ssh, rlogin, telnet, or any other method to
do this. x11vnc needs to be run on the same machine the X server
do this. x11vnc needs to be run on the same machine the X server
process is running on (because MIT-SHM shared memory is used to poll
process is running on (otherwise things would be extremely slow).
the X11 framebuffer).
Step 2. In that far-away.east shell (with command prompt "far-away>"
Step 2. In that far-away.east shell (with command prompt "far-away>"
in this example) run x11vnc directed at the far-away.east X session
in this example) run x11vnc directed at the far-away.east X session
...
@@ -133,6 +131,11 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -133,6 +131,11 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
shutdown automatically (or you can use the -forever [14]option to have
shutdown automatically (or you can use the -forever [14]option to have
it wait for additional viewer connections).
it wait for additional viewer connections).
Shortcut: Of course if you left x11vnc running in a terminal window or
as a [15]service on far-away.east:0, you'
d
only
have
to
do
Step
3
as
you
moved
around
.
Be
sure
to
use
a
VNC
[
16
]
password
or
[
17
]
other
measures
if
you
do
that
.
Desktop
Sharing
:
The
above
more
or
less
assumed
nobody
was
sitting
at
Desktop
Sharing
:
The
above
more
or
less
assumed
nobody
was
sitting
at
the
workstation
display
"far-away.east:0"
.
This
is
often
the
case
:
a
the
workstation
display
"far-away.east:0"
.
This
is
often
the
case
:
a
user
wants
to
access
her
workstation
remotely
.
Another
usage
pattern
user
wants
to
access
her
workstation
remotely
.
Another
usage
pattern
...
@@ -146,9 +149,9 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -146,9 +149,9 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
For these cases it should be obvious how it is done. The above steps
For these cases it should be obvious how it is done. The above steps
will work, but more easily the user sitting at far-away.east:0 simply
will work, but more easily the user sitting at far-away.east:0 simply
starts up x11vnc from a terminal window, after which the guests would
starts up x11vnc from a terminal window, after which the guests would
start
their
VNC
viewers
.
For
this
usage
mode
the
-
accept
popup
option
start their VNC viewers. For this usage mode the
"-connect
discussed
in
the
[
15
]
FAQ
below
may
be
of
use
to
allow
the
user
at
host1,host2" option may be of use automatically connect to vncviewers
far
-
away
.
east
:
0
to
accept
or
reject
incoming
connection
s
.
in "-listen" mode on the list of host
s.
_________________________________________________________________
_________________________________________________________________
Tunnelling x11vnc via ssh:
Tunnelling x11vnc via ssh:
...
@@ -173,8 +176,8 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -173,8 +176,8 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
Some VNC viewers will do the ssh tunnelling for you automatically, the
Some VNC viewers will do the ssh tunnelling for you automatically, the
TightVNC vncviewer does this when the "-via far-away.east" option is
TightVNC vncviewer does this when the "-via far-away.east" option is
supplied to it (this requires x11vnc to be already running on
supplied to it (this requires x11vnc to be already running on
far
-
away
.
east
or
having
it
started
by
[
1
6
]
inetd
(
1
)).
See
the
3
rd
far-away.east or having it started by [1
8
]inetd(1)). See the 3rd
script
example
[
1
7
]
below
for
more
info
.
script example [1
9
]below for more info.
If the machine you SSH into is not the same machine with the X display
If the machine you SSH into is not the same machine with the X display
you wish to view (e.g. your company provides incoming SSH access to a
you wish to view (e.g. your company provides incoming SSH access to a
...
@@ -184,9 +187,9 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
...
@@ -184,9 +187,9 @@ x11vnc: a VNC server for real X displays (to [1]FAQ) (to [2]downloads)
up
x11vnc
on
it
.
up
x11vnc
on
it
.
_________________________________________________________________
_________________________________________________________________
Scripts to automate
tunneling: As discussed below, there may be som
e
Scripts
to
automate
ssh
tunneling
:
As
discussed
below
,
there
may
b
e
problems with port 5900 being available. If that happens, the abov
e
some
problems
with
port
5900
being
available
.
If
that
happens
,
th
e
port and display numbers may change a bit (e.g. -> 5901 and :1).
above
port
and
display
numbers
may
change
a
bit
(
e
.
g
.
->
5901
and
:
1
).
However
,
if
you
"know"
port
5900
will
be
free
on
the
local
and
remote
However
,
if
you
"know"
port
5900
will
be
free
on
the
local
and
remote
machines
,
you
can
easily
automate
the
above
two
steps
by
using
the
machines
,
you
can
easily
automate
the
above
two
steps
by
using
the
x11vnc
option
-
bg
(
forks
into
background
after
connection
to
the
x11vnc
option
-
bg
(
forks
into
background
after
connection
to
the
...
@@ -257,7 +260,7 @@ export VNC_VIA_CMD
...
@@ -257,7 +260,7 @@ export VNC_VIA_CMD
vncviewer
-
via
$
host
localhost
:
0
#
must
be
TightVNC
vncviewer
.
vncviewer
-
via
$
host
localhost
:
0
#
must
be
TightVNC
vncviewer
.
Of
course
if
you
already
have
the
x11vnc
running
waiting
for
Of
course
if
you
already
have
the
x11vnc
running
waiting
for
connections (or have it started out of [
18
]inetd(1)), you can simply
connections
(
or
have
it
started
out
of
[
20
]
inetd
(
1
)),
you
can
simply
use
the
TightVNC
"vncviewer -via gateway host:port"
in
its
default
use
the
TightVNC
"vncviewer -via gateway host:port"
in
its
default
mode
to
provide
secure
ssh
tunnelling
.
mode
to
provide
secure
ssh
tunnelling
.
...
@@ -265,44 +268,43 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
...
@@ -265,44 +268,43 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
VNC
password
file
:
Also
note
in
the
first
example
script
that
the
VNC
password
file
:
Also
note
in
the
first
example
script
that
the
option
"-rfbauth .vnc/passwd"
provides
additional
protection
by
option
"-rfbauth .vnc/passwd"
provides
additional
protection
by
requiring
a
VNC
password
for
every
VNC
viewer
that
connects
.
The
requiring
a
VNC
password
for
every
VNC
viewer
that
connects
.
The
vncpasswd or storepasswd programs, or the x11vnc [
19
]-storepasswd
vncpasswd
or
storepasswd
programs
,
or
the
x11vnc
[
21
]-
storepasswd
option
can
be
used
to
create
the
password
file
.
x11vnc
also
has
the
option
can
be
used
to
create
the
password
file
.
x11vnc
also
has
the
slightly less secure [2
0
]-passwdfile and "-passwd XXXXX" options.
slightly
less
secure
[
2
2
]-
passwdfile
and
"-passwd XXXXX"
options
.
Important
:
It
is
up
to
you
to
tell
x11vnc
to
use
password
protection
,
Important
:
It
is
up
to
you
to
tell
x11vnc
to
use
password
protection
,
it
will
not
do
it
for
you
automatically
.
The
same
goes
for
encrypting
it
will
not
do
it
for
you
automatically
.
The
same
goes
for
encrypting
the
channel
between
the
viewer
and
x11vnc
:
it
is
up
to
you
to
use
ssh
,
the
channel
between
the
viewer
and
x11vnc
:
it
is
up
to
you
to
use
ssh
,
stunnel
,
VPN
,
etc
.
Also
look
into
the
-
allow
and
-
localhost
stunnel
,
VPN
,
etc
.
Also
look
into
the
-
allow
and
-
localhost
[2
1]options and building x11vnc with [22
]tcp_wrappers support to limit
[
2
3
]
options
and
building
x11vnc
with
[
24
]
tcp_wrappers
support
to
limit
host
access
.
host
access
.
_________________________________________________________________
_________________________________________________________________
Downloading
x11vnc
:
Downloading
x11vnc
:
x11vnc is a contributed program to the [2
3
]LibVNCServer project at
x11vnc
is
a
contributed
program
to
the
[
2
5
]
LibVNCServer
project
at
SourceForge
.
net
.
I
use
libvncserver
for
all
of
the
VNC
aspects
;
I
SourceForge
.
net
.
I
use
libvncserver
for
all
of
the
VNC
aspects
;
I
couldn
't have done without it. The full source code may be found and
couldn
't have done without it. The full source code may be found and
downloaded (either file-release tarball or CVS tree) from the above
downloaded (either file-release tarball or CVS tree) from the above
link
.
As
of
Dec
2004
,
the
[
24
]
x11vnc
-
0.7
.
tar
.
gz
source
package
is
link. As of Dec 2004, the [26]x11vnc-0.7.tar.gz source package is
released
(
recommended
download
)
.
The
[
25
]
x11vnc
0.7
release
notes
.
released (recommended download) . The [27]x11vnc 0.7 release notes.
The x11vnc package is the subset of the libvncserver package needed to
The x11vnc package is the subset of the libvncserver package needed to
build
the
x11vnc
program
.
(
Please
do
not
use
the
LibVNCServer
-
0.6
build the x11vnc program. Also, you can get a copy of my latest,
tarball
:
it
contains
an
older
,
more
buggy
version
of
x11vnc
(
Oct
2003
)
bleeding edge [28]x11vnc.c file to replace the one in the above
that
you
likely
want
to
avoid
).
Also
,
you
can
get
a
copy
of
my
latest
,
bleeding
edge
[
26
]
x11vnc
.
c
file
to
replace
the
one
in
the
above
packages or the one in the CVS tree and then rebuild. You can also
packages or the one in the CVS tree and then rebuild. You can also
update
the
tcl
/
tk
gui
with
the
[
2
7
]
tkx11vnc
.
h
file
.
If
you
have
an
update the tcl/tk gui with the [2
9
]tkx11vnc.h file. If you have an
older libvncserver source tree, you may need to switch on the OLD_TREE
older libvncserver source tree, you may need to switch on the OLD_TREE
variable near the top of the x11vnc.c file.
variable near the top of the x11vnc.c file.
See
the
[
28
]
FAQ
below
for
information
about
where
you
might
obtain
a
See the [
30
]FAQ below for information about where you might obtain a
precompiled x11vnc binary from 3rd parties.
precompiled x11vnc binary from 3rd parties.
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:
*
[
29
]
http
://
www
.
tightvnc
.
com
/
download
.
html
* [
31
]http://www.tightvnc.com/download.html
*
[
3
0
]
http
://
www
.
realvnc
.
com
/
download
-
free
.
html
* [3
2
]http://www.realvnc.com/download-free.html
*
[
3
1
]
http
://
sourceforge
.
net
/
projects
/
cotvnc
/
* [3
3
]http://sourceforge.net/projects/cotvnc/
More tools: Here is a rsh/ssh wrapper script rx11vnc that attempts to
More tools: Here is a rsh/ssh wrapper script rx11vnc that attempts to
automatically do the above Steps 1-3 for you (provided you have
automatically do the above Steps 1-3 for you (provided you have
...
@@ -312,8 +314,8 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
...
@@ -312,8 +314,8 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
that attempts to tunnel the vnc traffic through an ssh port
that attempts to tunnel the vnc traffic through an ssh port
redirection (and does not assume port 5900 is free). Have a look at
redirection (and does not assume port 5900 is free). Have a look at
them to see what they do and customize as needed:
them to see what they do and customize as needed:
*
[
3
2
]
rx11vnc
wrapper
script
* [3
4
]rx11vnc wrapper script
*
[
3
3
]
rx11vnc
.
pl
wrapper
script
to
tunnel
traffic
thru
ssh
* [3
5
]rx11vnc.pl wrapper script to tunnel traffic thru ssh
_________________________________________________________________
_________________________________________________________________
Building x11vnc:
Building x11vnc:
...
@@ -355,9 +357,9 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
...
@@ -355,9 +357,9 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
libjpeg
is
included
in
Solaris
9
and
later
(/
usr
/
sfw
/
include
and
libjpeg
is
included
in
Solaris
9
and
later
(/
usr
/
sfw
/
include
and
/
usr
/
sfw
/
lib
),
and
zlib
in
Solaris
8
and
later
(/
usr
/
include
and
/
usr
/
sfw
/
lib
),
and
zlib
in
Solaris
8
and
later
(/
usr
/
include
and
/
usr
/
lib
).
To
get
the
source
for
these
libraries
:
libjpeg
is
available
/
usr
/
lib
).
To
get
the
source
for
these
libraries
:
libjpeg
is
available
at [3
4
]ftp://ftp.uu.net/graphics/jpeg/ and zlib at
at
[
3
6
]
ftp
://
ftp
.
uu
.
net
/
graphics
/
jpeg
/
and
zlib
at
[3
5
]http://www.gzip.org/zlib/. See also
[
3
7
]
http
://
www
.
gzip
.
org
/
zlib
/.
See
also
[3
6
]http://www.sunfreeware.com/ for Solaris binary packages of these
[
3
8
]
http
://
www
.
sunfreeware
.
com
/
for
Solaris
binary
packages
of
these
libraries
.
libraries
.
Here
is
a
build
script
that
indicates
one
way
to
pass
the
library
Here
is
a
build
script
that
indicates
one
way
to
pass
the
library
...
@@ -411,18 +413,7 @@ ls -l ./x11vnc/x11vnc
...
@@ -411,18 +413,7 @@ ls -l ./x11vnc/x11vnc
you
do
not
have
any
ENV
or
BASH_ENV
in
your
environment
doing
things
you
do
not
have
any
ENV
or
BASH_ENV
in
your
environment
doing
things
like
that
.
like
that
.
There is a build problem on Solaris 7 11/99 (update 4) where the
If
you
need
to
build
on
Solaris
2.5.1
or
earlier
,
see
[
39
]
this
header file X11/extensions/XKBstr.h that X11/XKBlib.h uses was not
shipped. The x11vnc configure succeeds and sets
LIBVNCSERVER_HAVE_XKEYBOARD in rfb/rfbconfig.h but then the build of
x11vnc fails in the make. A workaround is to remove all lines
referring to LIBVNCSERVER_HAVE_XKEYBOARD in rfb/rfbconfig.h after
configure has been run. Alternatively, one could put #undef
LIBVNCSERVER_HAVE_XKEYBOARD after the rfb/rfb.h include in the
x11vnc/x11vnc.c file. (This problem has been fixed as of x11vnc 0.6.2
(Aug/2004))
If you need to build on Solaris 2.5.1 or earlier, see [37]this
workaround
FAQ
.
workaround
FAQ
.
Building
on
HP
-
UX
:
For
jpeg
and
zlib
you
will
need
to
do
the
same
Building
on
HP
-
UX
:
For
jpeg
and
zlib
you
will
need
to
do
the
same
...
@@ -452,8 +443,11 @@ ls -l ./x11vnc/x11vnc
...
@@ -452,8 +443,11 @@ ls -l ./x11vnc/x11vnc
protocol
.)
I
suggest
using
xsetroot
,
dtstyle
or
similar
utility
to
set
protocol
.)
I
suggest
using
xsetroot
,
dtstyle
or
similar
utility
to
set
a
solid
background
while
using
x11vnc
.
You
can
turn
the
pretty
a
solid
background
while
using
x11vnc
.
You
can
turn
the
pretty
background
image
back
on
when
you
are
using
the
display
directly
.
background
image
back
on
when
you
are
using
the
display
directly
.
Update
:
As
of
Feb
/
2005
in
the
libvncserver
CVS
,
x11vnc
has
the
-
solid
[
color
]
option
that
works
on
recent
GNOME
and
KDE
and
also
on
classic
X
(
background
image
is
on
the
root
window
).
I also find the [
38
]tightvnc encoding gives the best response for my
I
also
find
the
[
40
]
tightvnc
encoding
gives
the
best
response
for
my
usage
(
Unix
<->
Unix
over
cable
modem
).
One
needs
a
tightvnc
-
aware
usage
(
Unix
<->
Unix
over
cable
modem
).
One
needs
a
tightvnc
-
aware
vncviewer
to
take
advantage
of
this
encoding
.
vncviewer
to
take
advantage
of
this
encoding
.
...
@@ -469,10 +463,10 @@ ls -l ./x11vnc/x11vnc
...
@@ -469,10 +463,10 @@ ls -l ./x11vnc/x11vnc
option where NNNN is the desired port number.
option where NNNN is the desired port number.
Options: x11vnc has (far too) many features that may be activated
Options: x11vnc has (far too) many features that may be activated
via
its
[
39
]
command
line
options
.
Useful
options
are
-
nap
to
use
fewer
via its [
41
]command line options. Useful options are -nap to use fewer
resources (it sleeps more between polls when activity is low) and
resources (it sleeps more between polls when activity is low) and
-rfbauth passwd-file to use VNC password protection (the vncpasswd or
-rfbauth passwd-file to use VNC password protection (the vncpasswd or
storepasswd
programs
,
or
the
x11vnc
[
4
0
]-
storepasswd
option
can
be
storepasswd programs, or the x11vnc [4
2
]-storepasswd option can be
used to create the password file).
used to create the password file).
Algorithm: How does x11vnc do it? Rather brute-forcedly: it
Algorithm: How does x11vnc do it? Rather brute-forcedly: it
...
@@ -496,14 +490,14 @@ ls -l ./x11vnc/x11vnc
...
@@ -496,14 +490,14 @@ ls -l ./x11vnc/x11vnc
first testing out the programs. You get an interesting "feedback"
first testing out the programs. You get an interesting "feedback"
effect where vncviewer images keep popping up each one contained in
effect where vncviewer images keep popping up each one contained in
the previous one and slightly shifted a bit by the window manager
the previous one and slightly shifted a bit by the window manager
decorations
.
There
will
be
an
[
4
1
]
even
more
interesting
effect
if
decorations. There will be an [4
3
]even more interesting effect if
-scale is used. Also, if the XKEYBOARD is supported and the XBell
-scale is used. Also, if the XKEYBOARD is supported and the XBell
"beeps" once, you get an infinite loop of beeps going off. Although
"beeps" once, you get an infinite loop of beeps going off. Although
all of this is mildly exciting it is not much use: you will normally
all of this is mildly exciting it is not much use: you will normally
run and display the viewer on a different machine!
run and display the viewer on a different machine!
SunRay notes: You can run x11vnc on your (connected or disconnected)
SunRay notes: You can run x11vnc on your (connected or disconnected)
[
4
2
]
SunRay
session
(
Please
remember
to
use
-
nap
and
maybe
-
wait
200
to
[4
4
]SunRay session (Please remember to use -nap and maybe -wait 200 to
avoid being a resource hog! It also helps a bit to have a solid
avoid being a resource hog! It also helps a bit to have a solid
background color). You have to know the name of the machine your
background color). You have to know the name of the machine your
SunRay session X server is running on. You also need to know the X11
SunRay session X server is running on. You also need to know the X11
...
@@ -579,7 +573,7 @@ ls -l ./x11vnc/x11vnc
...
@@ -579,7 +573,7 @@ ls -l ./x11vnc/x11vnc
Evidently a timing related bug and difficult to reproduce...
Evidently a timing related bug and difficult to reproduce...
* Using -threads can expose some bugs in libvncserver.
* Using -threads can expose some bugs in libvncserver.
Please
feel
free
to
[
4
3
]
contact
me
if
you
have
any
questions
,
Please feel free to [4
5
]contact me if you have any questions,
problems, or comments about x11vnc, etc.
problems, or comments about x11vnc, etc.
_________________________________________________________________
_________________________________________________________________
...
@@ -588,44 +582,42 @@ ls -l ./x11vnc/x11vnc
...
@@ -588,44 +582,42 @@ ls -l ./x11vnc/x11vnc
[Building and Starting]
[Building and Starting]
[
4
4
]
Q
-
1
:
I
can
't get x11vnc to start up. It says "XOpenDisplay failed
[4
6
]Q-1: I can'
t
get
x11vnc
to
start
up
.
It
says
"XOpenDisplay failed
(null)"
or
"Xlib: connection to "
:
0.0
" refused by server"
and
then
(null)"
or
"Xlib: connection to "
:
0.0
" refused by server"
and
then
exits
.
What
do
I
need
to
do
?
exits
.
What
do
I
need
to
do
?
[4
5
]Q-2: I can'
t
get
x11vnc
and
/
or
libvncserver
to
compile
.
[
4
7
]
Q
-
2
:
I
can
't get x11vnc and/or libvncserver to compile.
[
46
]
Q
-
3
:
Help
,
I
need
to
run
x11vnc
on
Solaris
2.5.1
and
it
doesn
't
[48]Q-3: Help, I need to run x11vnc on Solaris 2.5.1 and it doesn'
t
compile! If I try to run a binary built on Solaris 2.6 I get:
compile
!
relocation error: file x11vnc: symbol XConvertCase: referenced symbol
not found
[4
7
]Q-4: Where can I get a precompiled x11vnc binary for my Operating
[
4
9
]
Q
-
4
:
Where
can
I
get
a
precompiled
x11vnc
binary
for
my
Operating
System
?
System
?
[
48
]Q-5: Where can I get a VNC Viewer binary (or source code) for the
[
50
]
Q
-
5
:
Where
can
I
get
a
VNC
Viewer
binary
(
or
source
code
)
for
the
Operating
System
I
will
be
viewing
from
?
Operating
System
I
will
be
viewing
from
?
[
49
]Q-6: How can I see all of x11vnc'
s
command
line
options
and
[
51
]
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?
[
5
0
]
Q
-
7
:
I
don
't like typing arcane command line options every time I
[5
2
]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
?
[5
1
]Q-8: Can I make x11vnc more quiet and also go into the background
[
5
3
]
Q
-
8
:
Can
I
make
x11vnc
more
quiet
and
also
go
into
the
background
after
starting
up
?
after
starting
up
?
[5
2
]Q-9: Sometimes when a VNC viewer dies abruptly, x11vnc also dies
[
5
4
]
Q
-
9
:
Sometimes
when
a
VNC
viewer
dies
abruptly
,
x11vnc
also
dies
with
the
error
message
like
:
"Broken pipe"
.
I
'm using the -forever
with
the
error
message
like
:
"Broken pipe"
.
I
'm using the -forever
mode and I want x11vnc to keep running.
mode and I want x11vnc to keep running.
[Win2VNC Related]
[Win2VNC Related]
[
5
3
]
Q
-
10
:
I
have
two
separate
machine
displays
in
front
of
me
,
one
[5
5
]Q-10: I have two separate machine displays in front of me, one
Windows the other X11: can I use x11vnc in combination with Win2VNC in
Windows the other X11: can I use x11vnc in combination with Win2VNC in
dual-screen mode to pass the keystrokes and mouse motions to the X11
dual-screen mode to pass the keystrokes and mouse motions to the X11
display?
display?
[
5
4
]
Q
-
11
:
I
am
running
Win2VNC
on
my
windows
machine
and
trying
to
[5
6
]Q-11: I am running Win2VNC on my windows machine and trying to
create a dual-screen mode with my second display by running "x11vnc
create a dual-screen mode with my second display by running "x11vnc
-nofb". Whenever I initiate the connection Win2VNC quickly disconnects
-nofb". Whenever I initiate the connection Win2VNC quickly disconnects
and x11vnc says something like: rfbProcessClientNormalMessage: read:
and x11vnc says something like: rfbProcessClientNormalMessage: read:
...
@@ -633,200 +625,200 @@ ls -l ./x11vnc/x11vnc
...
@@ -633,200 +625,200 @@ ls -l ./x11vnc/x11vnc
[Color Issues]
[Color Issues]
[
5
5
]
Q
-
12
:
The
X
display
I
run
x11vnc
on
is
only
8
bits
per
pixel
(
bpp
)
[5
7
]Q-12: The X display I run x11vnc on is only 8 bits per pixel (bpp)
PseudoColor (i.e. only 256 distinct colors). The x11vnc colors may
PseudoColor (i.e. only 256 distinct colors). The x11vnc colors may
start out OK, but after a while the colors are incorrect in certain
start out OK, but after a while the colors are incorrect in certain
windows.
windows.
[
5
6
]
Q
-
13
:
Color
problems
:
Why
are
the
colors
for
some
windows
messed
[5
8
]Q-13: Color problems: Why are the colors for some windows messed
up in x11vnc? BTW, I have an X display that has nice
up in x11vnc? BTW, I have an X display that has nice
overlay/multi-depth visuals of different color depths: e.g. there are
overlay/multi-depth visuals of different color depths: e.g. there are
both depth 8 and 24 visuals available at the same time.
both depth 8 and 24 visuals available at the same time.
[
5
7
]
Q
-
14
:
How
do
I
figure
out
the
window
id
to
supply
to
the
-
id
[5
9
]Q-14: How do I figure out the window id to supply to the -id
windowid option?
windowid option?
[
58
]
Q
-
15
:
Why
don
't menus or other transient windows come up when I am
[
60
]Q-15: Why don'
t
menus
or
other
transient
windows
come
up
when
I
am
using
the
-
id
windowid
option
to
view
a
single
application
window
?
using
the
-
id
windowid
option
to
view
a
single
application
window
?
[
59
]Q-16: My X display is depth 24 at 24bpp (instead of the normal
[
61
]
Q
-
16
:
My
X
display
is
depth
24
at
24
bpp
(
instead
of
the
normal
depth
24
at
32
bpp
).
I
'm having lots of color and visual problems with
depth
24
at
32
bpp
).
I
'm having lots of color and visual problems with
x11vnc and vncviewer.
x11vnc and vncviewer.
[Xterminals]
[Xterminals]
[
6
0
]
Q
-
17
:
Can
I
use
x11vnc
to
view
and
interact
with
an
Xterminal
[6
2
]Q-17: Can I use x11vnc to view and interact with an Xterminal
(e.g. NCD) that is not running UNIX and so x11vnc cannot be run on it
(e.g. NCD) that is not running UNIX and so x11vnc cannot be run on it
directly?
directly?
[
6
1
]
Q
-
18
:
How
do
I
get
my
X
permissions
(
MIT
-
MAGIC
-
COOKIE
)
correct
for
[6
3
]Q-18: How do I get my X permissions (MIT-MAGIC-COOKIE) correct for
a Unix/Linux machine acting as an Xterminal?
a Unix/Linux machine acting as an Xterminal?
[Remote Control]
[Remote Control]
[
6
2
]
Q
-
19
:
How
do
I
stop
x11vnc
once
it
is
running
in
the
background
?
[6
4
]Q-19: How do I stop x11vnc once it is running in the background?
[
6
3
]
Q
-
20
:
Can
I
change
settings
in
x11vnc
without
having
to
restart
[6
5
]Q-20: Can I change settings in x11vnc without having to restart
it? Is there a way to remote control it?
it? Is there a way to remote control it?
[Security and Permissions]
[Security and Permissions]
[
6
4
]
Q
-
21
:
Why
does
x11vnc
exit
as
soon
as
the
VNC
viewer
disconnects
?
[6
6
]Q-21: Why does x11vnc exit as soon as the VNC viewer disconnects?
And why doesn'
t
it
allow
more
than
one
VNC
viewer
to
connect
at
the
And why doesn'
t
it
allow
more
than
one
VNC
viewer
to
connect
at
the
same
time
?
same
time
?
[6
5
]Q-22: Can I limit which machines incoming VNC clients can connect
[
6
7
]
Q
-
22
:
Can
I
limit
which
machines
incoming
VNC
clients
can
connect
from
?
from
?
[6
6
]Q-23: How do I build x11vnc/libvncserver with libwrap
[
6
8
]
Q
-
23
:
How
do
I
build
x11vnc
/
libvncserver
with
libwrap
(
tcp_wrappers
)
support
?
(
tcp_wrappers
)
support
?
[6
7
]Q-24: Can I prompt the user at the local X display whether the
[
6
9
]
Q
-
24
:
Can
I
prompt
the
user
at
the
local
X
display
whether
the
incoming
VNC
client
should
be
accepted
or
not
?
Can
I
decide
to
make
incoming
VNC
client
should
be
accepted
or
not
?
Can
I
decide
to
make
some
clients
view
-
only
?
How
about
running
an
arbitrary
program
to
make
some
clients
view
-
only
?
How
about
running
an
arbitrary
program
to
make
the
decisions
?
the
decisions
?
[
68
]Q-25: How do I create a VNC password for use with x11vnc?
[
70
]
Q
-
25
:
How
do
I
create
a
VNC
password
for
use
with
x11vnc
?
[
69
]Q-26: How can I tunnel my connection to x11vnc via an encrypted
[
71
]
Q
-
26
:
How
can
I
tunnel
my
connection
to
x11vnc
via
an
encrypted
SSH
channel
between
two
Unix
machines
?
SSH
channel
between
two
Unix
machines
?
[7
0
]Q-27: How can I tunnel my connection to x11vnc via an encrypted
[
7
2
]
Q
-
27
:
How
can
I
tunnel
my
connection
to
x11vnc
via
an
encrypted
SSH
channel
from
Windows
using
an
SSH
client
like
Putty
?
SSH
channel
from
Windows
using
an
SSH
client
like
Putty
?
[7
1
]Q-28: Does x11vnc support Unix usernames and passwords? Can I
[
7
3
]
Q
-
28
:
Does
x11vnc
support
Unix
usernames
and
passwords
?
Can
I
further
limit
the
set
of
Unix
usernames
who
can
connect
to
the
VNC
further
limit
the
set
of
Unix
usernames
who
can
connect
to
the
VNC
desktop
?
desktop
?
[7
2
]Q-29: Can I have two passwords for VNC viewers, one for full
[
7
4
]
Q
-
29
:
Can
I
have
two
passwords
for
VNC
viewers
,
one
for
full
access
and
the
other
for
view
-
only
access
to
the
display
?
access
and
the
other
for
view
-
only
access
to
the
display
?
[7
3
]Q-30: I use a screen-lock when I leave my workstation (e.g.
[
7
5
]
Q
-
30
:
I
use
a
screen
-
lock
when
I
leave
my
workstation
(
e
.
g
.
xscreensaver
or
xlock
).
When
I
remotely
access
my
workstation
desktop
xscreensaver
or
xlock
).
When
I
remotely
access
my
workstation
desktop
via
x11vnc
I
can
unlock
the
desktop
fine
,
but
I
am
worried
people
will
via
x11vnc
I
can
unlock
the
desktop
fine
,
but
I
am
worried
people
will
see
my
activities
on
the
physical
monitor
.
What
can
I
do
to
prevent
see
my
activities
on
the
physical
monitor
.
What
can
I
do
to
prevent
this
,
or
at
least
make
it
more
difficult
?
this
,
or
at
least
make
it
more
difficult
?
[7
4
]Q-31: Can I have x11vnc automatically lock the screen when I
[
7
6
]
Q
-
31
:
Can
I
have
x11vnc
automatically
lock
the
screen
when
I
disconnect
the
VNC
viewer
?
disconnect
the
VNC
viewer
?
[
Display
Managers
and
Services
]
[
Display
Managers
and
Services
]
[7
5
]Q-32: How can I run x11vnc as a "service" that is always
[
7
7
]
Q
-
32
:
How
can
I
run
x11vnc
as
a
"service"
that
is
always
available
?
available
?
[7
6
]Q-33: How can I use x11vnc to connect to an X login screen like
[
7
8
]
Q
-
33
:
How
can
I
use
x11vnc
to
connect
to
an
X
login
screen
like
xdm
,
GNOME
gdm
,
KDE
kdm
,
or
CDE
dtlogin
?
(
i
.
e
.
nobody
is
logged
into
xdm
,
GNOME
gdm
,
KDE
kdm
,
or
CDE
dtlogin
?
(
i
.
e
.
nobody
is
logged
into
an
X
session
yet
).
an
X
session
yet
).
[7
7
]Q-34: Can I run x11vnc out of inetd(1)? How about xinetd(1)?
[
7
9
]
Q
-
34
:
Can
I
run
x11vnc
out
of
inetd
(
1
)?
How
about
xinetd
(
1
)?
[
78
]Q-35: How do I make x11vnc work with the Java VNC viewer applet in
[
80
]
Q
-
35
:
How
do
I
make
x11vnc
work
with
the
Java
VNC
viewer
applet
in
a
web
browser
?
a
web
browser
?
[
79
]Q-36: Are reverse connections (i.e. the VNC server connecting to
[
81
]
Q
-
36
:
Are
reverse
connections
(
i
.
e
.
the
VNC
server
connecting
to
the
VNC
viewer
)
using
"vncviewer -listen"
and
vncconnect
(
1
)
supported
?
the
VNC
viewer
)
using
"vncviewer -listen"
and
vncconnect
(
1
)
supported
?
[
Resource
Usage
and
Performance
]
[
Resource
Usage
and
Performance
]
[8
0
]Q-37: I have lots of memory, but why does x11vnc fail with
[
8
2
]
Q
-
37
:
I
have
lots
of
memory
,
but
why
does
x11vnc
fail
with
shmget
:
No
space
left
on
device
or
Minor
opcode
of
failed
shmget
:
No
space
left
on
device
or
Minor
opcode
of
failed
request
:
1
(
X_ShmAttach
)?
request
:
1
(
X_ShmAttach
)?
[8
1
]Q-38: How can I make x11vnc use less system resources?
[
8
3
]
Q
-
38
:
How
can
I
make
x11vnc
use
less
system
resources
?
[8
2
]Q-39: How can I make x11vnc use MORE system resources?
[
8
4
]
Q
-
39
:
How
can
I
make
x11vnc
use
MORE
system
resources
?
[8
3
]Q-40: I use x11vnc over a slow link with high latency (e.g. dialup
[
8
5
]
Q
-
40
:
I
use
x11vnc
over
a
slow
link
with
high
latency
(
e
.
g
.
dialup
modem
),
is
there
anything
I
can
do
to
speed
things
up
?
modem
),
is
there
anything
I
can
do
to
speed
things
up
?
[8
4
]Q-41: When I drag windows around with the mouse or scroll up and
[
8
6
]
Q
-
41
:
When
I
drag
windows
around
with
the
mouse
or
scroll
up
and
down
things
really
bog
down
(
unless
I
do
the
drag
in
a
single
,
quick
down
things
really
bog
down
(
unless
I
do
the
drag
in
a
single
,
quick
motion
).
Is
there
anything
to
do
to
improve
things
?
motion
).
Is
there
anything
to
do
to
improve
things
?
[
Mouse
Cursor
Shapes
]
[
Mouse
Cursor
Shapes
]
[8
5
]Q-42: Why isn'
t
the
mouse
cursor
shape
(
the
little
icon
shape
[
8
7
]
Q
-
42
:
Why
isn
't the mouse cursor shape (the little icon shape
where the mouse pointer is) correct as I move from window to window?
where the mouse pointer is) correct as I move from window to window?
[
8
6
]
Q
-
43
:
When
using
XFIXES
cursorshape
mode
,
some
of
the
cursors
look
[8
8
]Q-43: When using XFIXES cursorshape mode, some of the cursors look
really bad with extra black borders around the cursor and other cruft.
really bad with extra black borders around the cursor and other cruft.
How can I improve their appearance?
How can I improve their appearance?
[
8
7
]
Q
-
44
:
In
XFIXES
mode
,
are
there
any
hacks
to
handle
cursor
[8
9
]Q-44: In XFIXES mode, are there any hacks to handle cursor
transparency ("alpha channel") exactly?
transparency ("alpha channel") exactly?
[Mouse Pointer]
[Mouse Pointer]
[
88
]
Q
-
45
:
Why
does
the
mouse
arrow
just
stay
in
one
corner
in
my
[
90
]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?
[
89
]
Q
-
46
:
Can
I
take
advantage
of
the
TightVNC
extension
to
the
VNC
[
91
]Q-46: Can I take advantage of the TightVNC extension to the VNC
protocol where Cursor Positions Updates are sent back to all connected
protocol where Cursor Positions Updates are sent back to all connected
clients (i.e. passive viewers can see the mouse cursor being moved
clients (i.e. passive viewers can see the mouse cursor being moved
around by another viewer)?
around by another viewer)?
[
9
0
]
Q
-
47
:
Is
it
possible
to
swap
the
mouse
buttons
(
e
.
g
.
left
-
handed
[9
2
]Q-47: Is it possible to swap the mouse buttons (e.g. left-handed
operation), or arbitrarily remap them? How about mapping button clicks
operation), or arbitrarily remap them? How about mapping button clicks
to keystrokes, e.g. to partially emulate Mouse wheel scrolling?
to keystrokes, e.g. to partially emulate Mouse wheel scrolling?
[Keyboard Issues]
[Keyboard Issues]
[
9
1
]
Q
-
48
:
How
can
I
get
my
AltGr
and
Shift
modifiers
to
work
between
[9
3
]Q-48: How can I get my AltGr and Shift modifiers to work between
keyboards for different languages?
keyboards for different languages?
[
9
2
]
Q
-
49
:
When
I
try
to
type
a
"<"
(
i
.
e
.
less
than
)
instead
I
get
">"
[9
4
]Q-49: When I try to type a "<" (i.e. less than) instead I get ">"
(i.e. greater than)! Strangely, typing ">" works OK!!
(i.e. greater than)! Strangely, typing ">" works OK!!
[
9
3
]
Q
-
50
:
I
'm using an "international" keyboard (e.g. German "de", or
[9
5
]Q-50: I'
m
using
an
"international"
keyboard
(
e
.
g
.
German
"de"
,
or
Danish
"dk"
)
and
the
-
modtweak
mode
works
well
if
the
VNC
viewer
is
Danish
"dk"
)
and
the
-
modtweak
mode
works
well
if
the
VNC
viewer
is
run
on
a
Unix
/
Linux
machine
with
a
similar
keyboard
.
But
if
I
run
the
run
on
a
Unix
/
Linux
machine
with
a
similar
keyboard
.
But
if
I
run
the
VNC
viewer
on
Unix
/
Linux
with
a
different
keyboard
(
e
.
g
.
"us"
)
or
VNC
viewer
on
Unix
/
Linux
with
a
different
keyboard
(
e
.
g
.
"us"
)
or
Windows
with
any
keyboard
,
I
can
't type some keys like: "@", "$", "<",
Windows
with
any
keyboard
,
I
can
't type some keys like: "@", "$", "<",
">", etc. How can I fix this?
">", etc. How can I fix this?
[
9
4
]
Q
-
51
:
When
typing
I
sometimes
get
double
,
triple
,
or
more
of
my
[9
6
]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
?
[9
5
]Q-52: The x11vnc -norepeat mode is in effect, but I still get
[
9
7
]
Q
-
52
:
The
x11vnc
-
norepeat
mode
is
in
effect
,
but
I
still
get
repeated
keystrokes
!!
repeated
keystrokes
!!
[9
6
]Q-53: The machine where I run x11vnc has an AltGr key, but the
[
9
8
]
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
?
[9
7
]Q-54: I have a Sun machine I run x11vnc on. Its Sun keyboard has
[
9
9
]
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
)
[
98
]Q-55: Can I map a keystroke to a mouse button click on the remote
[
100
]
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
]
[
99
]Q-56: The remote display is larger (in number of pixels) than the
[
101
]
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?
[
10
0
]
Q
-
57
:
Does
x11vnc
support
server
-
side
framebuffer
scaling
?
(
E
.
g
.
[10
2
]Q-57: Does x11vnc support server-side framebuffer scaling? (E.g.
to make the desktop smaller).
to make the desktop smaller).
[
10
1
]
Q
-
58
:
Does
x11vnc
work
with
Xinerama
?
(
i
.
e
.
multiple
monitors
[10
3
]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).
[
10
2
]
Q
-
59
:
Can
I
use
x11vnc
on
a
multi
-
headed
display
that
is
not
[10
4
]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)?
[
10
3
]
Q
-
60
:
Does
x11vnc
support
the
XRANDR
(
X
Resize
,
Rotate
and
[10
5
]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.
[
10
4
]
Q
-
61
:
Why
is
the
view
in
my
VNC
viewer
completely
black
?
Or
why
[10
6
]Q-61: Why is the view in my VNC viewer completely black? Or why
is everything flashing around randomly?
is everything flashing around randomly?
[
10
5
]
Q
-
62
:
I
use
Linux
Virtual
Consoles
(
VC
's) to implement '
Fast
User
[10
7
]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
...
@@ -834,7 +826,7 @@ ls -l ./x11vnc/x11vnc
...
@@ -834,7 +826,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?
[
10
6
]
Q
-
63
:
I
am
using
x11vnc
where
my
local
machine
has
"popup/hidden
[10
8
]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
...
@@ -842,10 +834,10 @@ ls -l ./x11vnc/x11vnc
...
@@ -842,10 +834,10 @@ ls -l ./x11vnc/x11vnc
[Misc: Clipboard, Beeps, etc.]
[Misc: Clipboard, Beeps, etc.]
[
10
7
]
Q
-
64
:
Does
the
Clipboard
/
Selection
get
transferred
between
the
[10
9
]Q-64: Does the Clipboard/Selection get transferred between the
vncviewer and the X display?
vncviewer and the X display?
[
1
08
]
Q
-
65
:
Why
don
't I hear the "Beeps" in my X session (e.g. when
[1
10
]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
)?
_________________________________________________________________
_________________________________________________________________
...
@@ -937,16 +929,20 @@ ls -l ./x11vnc/x11vnc
...
@@ -937,16 +929,20 @@ ls -l ./x11vnc/x11vnc
zlib-devel
zlib-devel
Q-3: Help, I need to run x11vnc on Solaris 2.5.1 and it doesn'
t
Q-3: Help, I need to run x11vnc on Solaris 2.5.1 and it doesn'
t
compile! If I try to run a binary built on Solaris 2.6 I get:
compile
!
relocation error: file x11vnc: symbol XConvertCase: referenced symbol
not found
We
apologize
that
x11vnc
does
not
build
cleanly
on
older
versions
of
We
apologize
that
x11vnc
does
not
build
cleanly
on
older
versions
of
Solaris, Linux, etc.: very few users are on these old releases. Here
Solaris
,
Linux
,
etc
.:
very
few
users
are
on
these
old
releases
.
is a workaround for Solaris 2.5.1 (and perhaps earlier):
We
have
heard
that
since
Dec
/
2004
a
Solaris
2.6
built
x11vnc
will
run
on
Solaris
Solaris
2.5
and
2.5.1
(
since
a
workaround
for
XConvertCase
is
provided
).
In
any
event
,
here
is
a
workaround
for
Solaris
2.5.1
(
and
perhaps
earlier
and
perhaps
non
-
Solaris
):
First
use
the
environment
settings
(
CPPFLAGS
,
LDFLAGS
,
etc
.)
in
the
First
use
the
environment
settings
(
CPPFLAGS
,
LDFLAGS
,
etc
.)
in
the
above [1
09
]Solaris build script to run the configure command. That
above
[
1
11
]
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
...
@@ -962,8 +958,12 @@ int gethostname(char *name, int namelen);
...
@@ -962,8 +958,12 @@ int gethostname(char *name, int namelen);
long
random
();
long
random
();
int
srandom
(
unsigned
int
seed
);
int
srandom
(
unsigned
int
seed
);
#
undef
LIBVNCSERVER_HAVE_LIBPTHREAD
#
undef
LIBVNCSERVER_HAVE_LIBPTHREAD
#
ifndef
SHUT_RDWR
#
define
SHUT_RDWR
2
#
define
SHUT_RDWR
2
#
endif
#
ifndef
in_addr_t
typedef
unsigned
int
in_addr_t
;
typedef
unsigned
int
in_addr_t
;
#
endif
#
ifndef
snprintf
#
ifndef
snprintf
#
define
snprintf
(
a
,
n
,
args
...)
sprintf
((
a
),
##
args
)
#
define
snprintf
(
a
,
n
,
args
...)
sprintf
((
a
),
##
args
)
#
endif
#
endif
...
@@ -976,6 +976,9 @@ typedef unsigned int in_addr_t;
...
@@ -976,6 +976,9 @@ typedef unsigned int in_addr_t;
Similar
sorts
of
kludges
can
be
done
on
other
older
OS
(
Solaris
,
Similar
sorts
of
kludges
can
be
done
on
other
older
OS
(
Solaris
,
Linux
,
...)
releases
.
Linux
,
...)
releases
.
Here
are
some
notes
for
similar
steps
that
need
to
be
done
to
build
on
[
112
]
SunOS
4.
x
Please
let
us
know
if
you
had
to
use
the
above
workaround
(
and
whether
Please
let
us
know
if
you
had
to
use
the
above
workaround
(
and
whether
it
worked
or
not
).
If
there
is
enough
demand
we
will
try
to
push
clean
it
worked
or
not
).
If
there
is
enough
demand
we
will
try
to
push
clean
compilations
back
to
earlier
Solaris
,
Linux
,
etc
,
releases
.
compilations
back
to
earlier
Solaris
,
Linux
,
etc
,
releases
.
...
@@ -983,18 +986,19 @@ typedef unsigned int in_addr_t;
...
@@ -983,18 +986,19 @@ 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 [11
0]build steps above and [111
]FAQ provide enough info
Hopefully
the
[
11
3
]
build
steps
above
and
[
114
]
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) [11
2
]http://packages.debian.org/x11vnc
Debian
:
(.
deb
)
[
11
5
]
http
://
packages
.
debian
.
org
/
x11vnc
Slackware: (.tgz) [113]http://www.linuxpackages.net/ Redhat/Fedora:
Slackware
:
(.
tgz
)
[
116
]
http
://
www
.
linuxpackages
.
net
/
Redhat
/
Fedora
:
(.rpm) [114]http://dag.wieers.com/packages/x11vnc/ wwexptools: (.tgz)
(.
rpm
)
[
117
]
http
://
dag
.
wieers
.
com
/
packages
/
x11vnc
/
Solaris
:
(
pkg
)
[115]http://www.bell-labs.com/project/wwexptools/packages.html The
[
118
]
http
://
www
.
sunfreeware
.
com
/
wwexptools
:
(.
tgz
)
[
119
]
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
...
@@ -1006,13 +1010,14 @@ typedef unsigned int in_addr_t;
...
@@ -1006,13 +1010,14 @@ 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 [116]build notes above for where to download libz and libjpeg, and
the
[
120
]
build
notes
above
for
where
to
download
libz
and
libjpeg
,
and
then build everything with gcc.
then
build
everything
with
gcc
.
For
Solaris
,
the
http
://
www
.
sunfreeware
.
com
/
packages
are
built
with
libz
and
libjpeg
.
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
[
1
17
]
test
binaries
.
Some
may
be
old
,
some
may
have
extra
debugging
[1
21
]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.
They
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.
...
@@ -1033,14 +1038,16 @@ typedef unsigned int in_addr_t;
...
@@ -1033,14 +1038,16 @@ 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
:
* [1
18
]http://www.tightvnc.com/download.html
*
[
1
22
]
http
://
www
.
tightvnc
.
com
/
download
.
html
* [1
19
]http://www.realvnc.com/download-free.html
*
[
1
23
]
http
://
www
.
realvnc
.
com
/
download
-
free
.
html
* [12
0
]http://sourceforge.net/projects/cotvnc/
*
[
12
4
]
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
[
121
]
here
as
well
.
Run: x11vnc -opts to list just the option names or run: x11vnc
-help for long descriptions about each option. The output is listed
[125]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
?
...
@@ -1095,7 +1102,7 @@ display :0
...
@@ -1095,7 +1102,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
[12
2
]x11vnc.c file. It also has an option -sigpipe exit to have x11vnc
[
12
6
]
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
]
...
@@ -1110,16 +1117,16 @@ display :0
...
@@ -1110,16 +1117,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 [12
3
]x2vnc, however you would
This
will
also
work
X11
to
X11
using
[
12
7
]
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
:
* [12
4
]Original Win2VNC
*
[
12
8
]
Original
Win2VNC
* [12
5]Enhanced Win2VNC and [126
]sourceforge link
*
[
12
9
]
Enhanced
Win2VNC
and
[
130
]
sourceforge
link
* [1
27
]x2vnc
*
[
1
31
]
x2vnc
* [1
28]x2x also [129
]here
*
[
1
32
]
x2x
also
[
133
]
here
* [13
0
]zvnc (MorphOS)
*
[
13
4
]
zvnc
(
MorphOS
)
All
of
them
(
except
x2x
)
will
work
with
x11vnc
.
All
of
them
(
except
x2x
)
will
work
with
x11vnc
.
...
@@ -1174,7 +1181,7 @@ display :0
...
@@ -1174,7 +1181,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 [13
1
]previous question regarding 8 bpp
You
may
want
to
review
the
[
13
5
]
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
...
@@ -1251,7 +1258,7 @@ TrueColor defdepth 24
...
@@ -1251,7 +1258,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
[13
2
]problems.
[
13
6
]
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
...
@@ -1357,7 +1364,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
...
@@ -1357,7 +1364,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
[13
3
]this note on the xauth add ... command.
[
13
7
]
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
.
...
@@ -1366,7 +1373,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
...
@@ -1366,7 +1373,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 [13
4
]poll
Not
recommended
,
but
as
a
last
resort
,
you
could
have
x11vnc
[
13
8
]
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
.
...
@@ -1434,10 +1441,10 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
...
@@ -1434,10 +1441,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
([
13
5
]
see
Recommended additional safety measures include using ssh ([13
9
]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
[
1
36
]
option
to
connections or to at least use the -rfbauth passwd-file [1
40
]option to
use
VNC
password
protection
(
or
[
1
37
]-
passwdfile
)
It
is
up
to
you
to
use VNC password protection (or [1
41
]-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.
...
@@ -1473,7 +1480,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
...
@@ -1473,7 +1480,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
[
1
38
]
inetd
you
do
not
need
to
build
Note that if you run x11vnc out of [1
42
]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.
...
@@ -1517,7 +1524,7 @@ central-server> xauth nextract - xterm123:0 | ssh xterm123 xauth nmerge -
...
@@ -1517,7 +1524,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 [1
39
]ftp://ftp.x.org/
is
available
at
[
1
43
]
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
...
@@ -1556,7 +1563,7 @@ elif [ $rc = 4 ]; then
...
@@ -1556,7 +1563,7 @@ elif [ $rc = 4 ]; then
fi
fi
exit
1
exit
1
Stefan Radman has written a nice dtksh script [14
0
]dtVncPopup for use
Stefan
Radman
has
written
a
nice
dtksh
script
[
14
4
]
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
.
...
@@ -1582,9 +1589,11 @@ exit 1
...
@@ -1582,9 +1589,11 @@ exit 1
directory. And as of Jun/2004 in the libvncserver CVS x11vnc supports
directory. And as of Jun/2004 in the libvncserver CVS x11vnc supports
the -storepasswd "pass" "file" option, which is the the same
the -storepasswd "pass" "file" option, which is the the same
functionality of storepasswd. Be sure to quote the "pass" if it
functionality of storepasswd. Be sure to quote the "pass" if it
contains
shell
meta
characters
,
spaces
,
etc
.
contains shell meta characters, spaces, etc. Example:
x11vnc -storepasswd '
sword
*
fish
' $HOME/myvncpasswd
You
then
use
the
password
via
the
x11vnc
option
:
-
rfbauth
filename
You then use the password via the x11vnc option: -rfbauth
$HOME/myvncpasswd
Compared to vncpasswd(1) the latter two methods are a somewhat unsafe
Compared to vncpasswd(1) the latter two methods are a somewhat unsafe
because the password is specified on the command line and so someone
because the password is specified on the command line and so someone
...
@@ -1592,14 +1601,14 @@ exit 1
...
@@ -1592,14 +1601,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 [14
1
]-passwdfile and -passwd/-viewpasswd plain
x11vnc
also
has
the
[
14
5
]-
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 [14
2
]how to tunnel VNC via
See
the
description
earlier
on
this
page
on
[
14
6
]
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
.
...
@@ -1609,7 +1618,7 @@ exit 1
...
@@ -1609,7 +1618,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
?
[14
3
]Above we described how to tunnel VNC via SSH from Unix to Unix,
[
14
7
]
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
...
@@ -1642,7 +1651,7 @@ exit 1
...
@@ -1642,7 +1651,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
[
14
4
]
above
another
option
is
to
first
start
the
VNC
As discussed [14
8
]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
...
@@ -1663,7 +1672,7 @@ exit 1
...
@@ -1663,7 +1672,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
[
14
5
]
elsewhere
on
this
page
.
Of
course
a
malicious
user
could
allow
[14
9
]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
...
@@ -1739,7 +1748,7 @@ exit 1 # reject it
...
@@ -1739,7 +1748,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
[
1
46
]
blockdpy
.
c
The
idea
behind
it
is
simple
(
but
source for it is [1
50
]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
...
@@ -1765,12 +1774,12 @@ exit 1 # reject it
...
@@ -1765,12 +1774,12 @@ exit 1 # reject it
Yes, a user mentions he uses the -gone option under CDE to run a
Yes, a user mentions he uses the -gone option under CDE to run a
screen lock program:
screen lock program:
x11vnc
-
display
:
0
.0
-
forever
-
gone
'dtaction LockDisplay'
x11vnc -display :0 -forever -gone '
dtaction
LockDisplay
'
Other possibilities are:
Other possibilities are:
x11vnc
-
display
:
0
.0
-
forever
-
gone
'xscreensaver-command -lock'
x11vnc -display :0 -forever -gone '
xscreensaver
-
command
-
lock
'
x11vnc
-
display
:
0
.0
-
forever
-
gone
'kdesktop_lock'
x11vnc -display :0 -forever -gone '
kdesktop_lock
'
x11vnc
-
display
:
0
.0
-
forever
-
gone
'xlock &'
x11vnc -display :0 -forever -gone '
xlock
&
'
[Display Managers and Services]
[Display Managers and Services]
...
@@ -1786,11 +1795,11 @@ exit 1 # reject it
...
@@ -1786,11 +1795,11 @@ exit 1 # reject it
permissions.
permissions.
Here are some ideas:
Here are some ideas:
*
Use
the
description
under
"Continuously"
in
the
[
1
47
]
FAQ
on
x11vnc
* Use the description under "Continuously" in the [1
51
]FAQ on x11vnc
and Display Managers
and Display Managers
*
Use
the
description
in
the
[
1
48
]
FAQ
on
x11vnc
and
inetd
(
1
)
* Use the description in the [1
52
]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
[
1
49
]
x11vnc_loop
rc
.
local
hack
* Although less reliable, see the [1
53
]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
...
@@ -1892,18 +1901,18 @@ x11vnc -logfile $HOME/.x11vnc.log -rfbauth $HOME/.vnc/passwd -forever -bg
...
@@ -1892,18 +1901,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 [15
0
]full details
killed
immediately
after
the
user
logs
in
.
Here
are
[
15
4
]
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. [15
1
]x11vnc_loop It will need some local
file
like
rc
.
local
.
[
15
5
]
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
[15
2
]this FAQ.
[
15
6
]
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
)?
...
@@ -2046,7 +2055,7 @@ xprop -root -f VNC_CONNECT 8s -set VNC_CONNECT "$1"
...
@@ -2046,7 +2055,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
[
15
3
]
shm_clear
to
list
and
prompt
for
removal
Here is a shell script [15
7
]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,
...
@@ -2084,7 +2093,7 @@ ied)
...
@@ -2084,7 +2093,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
[
15
4
]
earlier
question
sockets it should be acceptable (see an [15
8
]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?
...
@@ -2119,7 +2128,8 @@ ied)
...
@@ -2119,7 +2128,8 @@ ied)
(reduces amount of data needed to be sent)
(reduces amount of data needed to be sent)
* Use a smaller desktop size (e.g. 1024x768 instead of 1280x1024)
* Use a smaller desktop size (e.g. 1024x768 instead of 1280x1024)
* Make sure the desktop background is a solid color (the background
* Make sure the desktop background is a solid color (the background
is
resent
every
time
it
is
re
-
exposed
)
is resent every time it is re-exposed). Consider using the -solid
[color] option.
* Configure your window manager or desktop "theme" to not use fancy
* Configure your window manager or desktop "theme" to not use fancy
images, shading, and gradients for the window decorations, etc.
images, shading, and gradients for the window decorations, etc.
Disable Opaque moves, resizes, and animations.
Disable Opaque moves, resizes, and animations.
...
@@ -2132,7 +2142,7 @@ ied)
...
@@ -2132,7 +2142,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
[
15
5
]
TightVNC
enabled
viewer
!
* Use a [15
9
]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
...
@@ -2293,7 +2303,7 @@ ied)
...
@@ -2293,7 +2303,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.3
dev5
Unix
vncviewer
[
1
56
]
this
patch
enables
the
the TightVNC 1.3dev5 Unix vncviewer [1
60
]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
...
@@ -2305,7 +2315,7 @@ ied)
...
@@ -2305,7 +2315,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
[
1
57
]
tightvnc
extension
This default takes advantage of a [1
61
]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.
...
@@ -2390,12 +2400,12 @@ ied)
...
@@ -2390,12 +2400,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
[
1
58
]
this
FAQ
and ">" it. This key does not exist on the keyboard (see [1
62
]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
[
1
59
]
FAQ
about
the
-
xkb
option
for
a
more
powerful
method
Also see the [1
63
]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.
...
@@ -2456,7 +2466,7 @@ ied)
...
@@ -2456,7 +2466,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 [16
0
]FAQ about the -xkb option as a possible workaround
See
also
the
[
16
4
]
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
.
...
@@ -2596,7 +2606,7 @@ ied)
...
@@ -2596,7 +2606,7 @@ ied)
keystrokes
!!
keystrokes
!!
Are
you
using
x11vnc
to
log
in
to
an
X
session
?
(
as
described
Are
you
using
x11vnc
to
log
in
to
an
X
session
?
(
as
described
[16
1
]this FAQ) If so, x11vnc is starting before your session, and then
[
16
5
]
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
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
could
be
something
inside
your
desktop
that
decides
to
turn
it
back
on
.
x11vnc
in
-
norepeat
mode
will
not
battle
with
things
turning
on
.
x11vnc
in
-
norepeat
mode
will
not
battle
with
things
turning
...
@@ -2681,7 +2691,7 @@ ied)
...
@@ -2681,7 +2691,7 @@ 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
[
16
2
]
this
local display. Especially for hand-held devices. See also [16
6
]this
FAQ on x11vnc scaling.
FAQ on x11vnc scaling.
Q-57: Does x11vnc support server-side framebuffer scaling? (E.g. to
Q-57: Does x11vnc support server-side framebuffer scaling? (E.g. to
...
@@ -2779,7 +2789,7 @@ ied)
...
@@ -2779,7 +2789,7 @@ 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
[
16
3
]
FAQ
to
increase
the
limit
.
It
/etc/system as mentioned in another [16
7
]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.
...
@@ -2892,155 +2902,159 @@ References
...
@@ -2892,155 +2902,159 @@ References
12.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
viewer
-
download
12.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
viewer
-
download
13.
http
://
www
.
sun
.
com
/
software
/
solaris
/
freeware
/
13.
http
://
www
.
sun
.
com
/
software
/
solaris
/
freeware
/
14.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
14.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
15. http://www.karlrunge.com/x11vnc/index.html#
accept
15.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
service
16. http://www.karlrunge.com/x11vnc/index.html#
inet
d
16.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passw
d
17. http://www.karlrunge.com/x11vnc/index.html#
tightvnc_via
17.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
vnc_password_file
18.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
inetd
18.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
inetd
19. http://www.karlrunge.com/x11vnc/index.html#
passwd
19.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tightvnc_via
20. http://www.karlrunge.com/x11vnc/index.html#
passwdfile
20.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
inetd
21. http://www.karlrunge.com/x11vnc/index.html#
allow_opt
21.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwd
22. http://www.karlrunge.com/x11vnc/index.html#
tcp_wrappers
22.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwdfile
23. http://
sourceforge.net/projects/libvncserver/
23.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
allow_opt
24. http://
sourceforge.net/project/showfiles.php?group_id=32584&package_id=119006&release_id=292078
24.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tcp_wrappers
25. http://sourceforge.net/project
/shownotes.php?group_id=32584&release_id=292078
25.
http
://
sourceforge
.
net
/
project
s
/
libvncserver
/
26. http://
www.karlrunge.com/x11vnc/x11vnc.c
26.
http
://
sourceforge
.
net
/
project
/
showfiles
.
php
?
group_id
=
32584
&
package_id
=
119006
&
release_id
=
292078
27. http://
www.karlrunge.com/x11vnc/tkx11vnc.h
27.
http
://
sourceforge
.
net
/
project
/
shownotes
.
php
?
group_id
=
32584
&
release_id
=
292078
28. http://www.karlrunge.com/x11vnc/
index.html#binaries
28.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc
.
c
29. http://www.
tightvnc.com/download.html
29.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
tkx11vnc
.
h
30. http://www.
realvnc.com/download-free.html
30.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
binaries
31. http://
sourceforge.net/projects/cotvnc/
31.
http
://
www
.
tightvnc
.
com
/
download
.
html
32. http://www.
karlrunge.com/x11vnc/rx11vnc
32.
http
://
www
.
realvnc
.
com
/
download
-
free
.
html
33. http://
www.karlrunge.com/x11vnc/rx11vnc.pl
33.
http
://
sourceforge
.
net
/
projects
/
cotvnc
/
34.
ftp://ftp.uu.net/graphics/jpeg/
34.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
rx11vnc
35. http://www.
gzip.org/zlib/
35.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
rx11vnc
.
pl
36.
http://www.sunfreeware.com
/
36.
ftp
://
ftp
.
uu
.
net
/
graphics
/
jpeg
/
37. http://www.
karlrunge.com/x11vnc/index.html#solaris251build
37.
http
://
www
.
gzip
.
org
/
zlib
/
38. http://www.
tightvnc
.com/
38.
http
://
www
.
sunfreeware
.
com
/
39. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html
39.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
solaris251build
40. http://www.
karlrunge.com/x11vnc/index.html#passwd
40.
http
://
www
.
tightvnc
.
com
/
41. http://www.karlrunge.com/x11vnc/
recurse_x11vnc.jpg
41.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
42. http://www
s.sun.com/sunray/index.html
42.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwd
43.
mailto:xvml@karlrunge.com
43.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
recurse_x11vnc
.
jpg
44. http://www
.karlrunge.com/x11vnc/index.html#FAQ-1
44.
http
://
www
s
.
sun
.
com
/
sunray
/
index
.
html
45.
http://www.karlrunge.com/x11vnc/index.html#FAQ-2
45.
mailto
:
xvml
@
karlrunge
.
com
46. http://www.karlrunge.com/x11vnc/index.html#FAQ-
3
46.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
47. http://www.karlrunge.com/x11vnc/index.html#FAQ-
4
47.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
48. http://www.karlrunge.com/x11vnc/index.html#FAQ-
5
48.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
49. http://www.karlrunge.com/x11vnc/index.html#FAQ-
6
49.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
50. http://www.karlrunge.com/x11vnc/index.html#FAQ-
7
50.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
51. http://www.karlrunge.com/x11vnc/index.html#FAQ-
8
51.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
6
52. http://www.karlrunge.com/x11vnc/index.html#FAQ-
9
52.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
7
53. http://www.karlrunge.com/x11vnc/index.html#FAQ-
10
53.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
8
54. http://www.karlrunge.com/x11vnc/index.html#FAQ-
11
54.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
9
55. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
2
55.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
0
56. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
3
56.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
1
57. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
4
57.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
2
58. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
5
58.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
3
59. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
6
59.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
4
60. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
7
60.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
5
61. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
8
61.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
6
62. http://www.karlrunge.com/x11vnc/index.html#FAQ-1
9
62.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
1
7
63. http://www.karlrunge.com/x11vnc/index.html#FAQ-
20
63.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
18
64. http://www.karlrunge.com/x11vnc/index.html#FAQ-
21
64.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
19
65. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
2
65.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
0
66. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
3
66.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
1
67. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
4
67.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
2
68. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
5
68.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
3
69. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
6
69.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
4
70. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
7
70.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
5
71. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
8
71.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
6
72. http://www.karlrunge.com/x11vnc/index.html#FAQ-2
9
72.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
2
7
73. http://www.karlrunge.com/x11vnc/index.html#FAQ-
30
73.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
28
74. http://www.karlrunge.com/x11vnc/index.html#FAQ-
31
74.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
29
75. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
2
75.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
0
76. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
3
76.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
1
77. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
4
77.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
2
78. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
5
78.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
3
79. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
6
79.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
4
80. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
7
80.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
5
81. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
8
81.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
6
82. http://www.karlrunge.com/x11vnc/index.html#FAQ-3
9
82.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
3
7
83. http://www.karlrunge.com/x11vnc/index.html#FAQ-
40
83.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
38
84. http://www.karlrunge.com/x11vnc/index.html#FAQ-
41
84.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
39
85. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
2
85.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
0
86. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
3
86.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
1
87. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
4
87.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
2
88. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
5
88.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
3
89. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
6
89.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
4
90. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
7
90.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
5
91. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
8
91.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
6
92. http://www.karlrunge.com/x11vnc/index.html#FAQ-4
9
92.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
4
7
93. http://www.karlrunge.com/x11vnc/index.html#FAQ-
50
93.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
48
94. http://www.karlrunge.com/x11vnc/index.html#FAQ-
51
94.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
49
95. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
2
95.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
0
96. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
3
96.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
1
97. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
4
97.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
2
98. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
5
98.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
3
99. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
6
99.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
4
100. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
7
100.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
5
101. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
8
101.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
6
102. http://www.karlrunge.com/x11vnc/index.html#FAQ-5
9
102.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
5
7
103. http://www.karlrunge.com/x11vnc/index.html#FAQ-
60
103.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
58
104. http://www.karlrunge.com/x11vnc/index.html#FAQ-
61
104.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
59
105. http://www.karlrunge.com/x11vnc/index.html#FAQ-6
2
105.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
6
0
106. http://www.karlrunge.com/x11vnc/index.html#FAQ-6
3
106.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
6
1
107. http://www.karlrunge.com/x11vnc/index.html#FAQ-6
4
107.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
6
2
108. http://www.karlrunge.com/x11vnc/index.html#FAQ-6
5
108.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
6
3
109. http://www.karlrunge.com/x11vnc/index.html#
solarisbuilding
109.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
64
110. http://www.karlrunge.com/x11vnc/index.html#
building
110.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
FAQ
-
65
111. http://www.karlrunge.com/x11vnc/index.html#
buildfaq
111.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
solarisbuilding
112. http://
packages.debian.org/x11vnc
112.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_sunos4
.
html
113. http://www.
linuxpackages.net/search_view.php?by=name&name=x11vnc
113.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
building
114. http://
dag.wieers.com/packages/x11vnc/
114.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
buildfaq
115. http://
www.bell-labs.com/project/wwexptools/packages.html
115.
http
://
packages
.
debian
.
org
/
x11vnc
116. http://www.
karlrunge.com/x11vnc/index.html#solarisbuilding
116.
http
://
www
.
linuxpackages
.
net
/
search_view
.
php
?
by
=
name
&
name
=
x11vnc
117. http://
www.karlrunge.com/x11vnc/bins
117.
http
://
dag
.
wieers
.
com
/
packages
/
x11vnc
/
118. http://www.
tightvnc.com/download.html
118.
http
://
www
.
sunfreeware
.
com
/
119. http://www.
realvnc.com/download-free
.html
119.
http
://
www
.
bell
-
labs
.
com
/
project
/
wwexptools
/
packages
.
html
120. http://
sourceforge.net/projects/cotvnc/
120.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
solarisbuilding
121. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html
121.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
bins
122. http://www.
karlrunge.com/x11vnc/x11vnc.c
122.
http
://
www
.
tightvnc
.
com
/
download
.
html
123. http://
fredrik.hubbe.net/x2vnc
.html
123.
http
://
www
.
realvnc
.
com
/
download
-
free
.
html
124. http://
www.hubbe.net/~hubbe/win2vnc.html
124.
http
://
sourceforge
.
net
/
projects
/
cotvnc
/
125. http://www.
deboer.gmxhome.de/
125.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
126. http://
sourceforge.net/projects/win2vnc/
126.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc
.
c
127.
http
://
fredrik
.
hubbe
.
net
/
x2vnc
.
html
127.
http
://
fredrik
.
hubbe
.
net
/
x2vnc
.
html
128. http://
freshmeat.net/projects/x2x/
128.
http
://
www
.
hubbe
.
net
/~
hubbe
/
win2vnc
.
html
129. http://
ftp.digital.com/pub/Digital/SRC/x2x
/
129.
http
://
www
.
deboer
.
gmxhome
.
de
/
130. http://
zapek.com/software/z
vnc/
130.
http
://
sourceforge
.
net
/
projects
/
win2
vnc
/
131. http://
www.karlrunge.com/x11vnc/index.html#8bpp
131.
http
://
fredrik
.
hubbe
.
net
/
x2vnc
.
html
132. http://
www.karlrunge.com/x11vnc/index.html#overlays
132.
http
://
freshmeat
.
net
/
projects
/
x2x
/
133. http://
www.karlrunge.com/x11vnc/index.html#xauth_pain
133.
http
://
ftp
.
digital
.
com
/
pub
/
Digital
/
SRC
/
x2x
/
134. http://
www.karlrunge.com/x11vnc/index.html#noshm
134.
http
://
zapek
.
com
/
software
/
zvnc
/
135. http://www.karlrunge.com/x11vnc/index.html#
tunnelling
135.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
8
bpp
136. http://www.karlrunge.com/x11vnc/index.html#
passwd
136.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
overlays
137. http://www.karlrunge.com/x11vnc/index.html#
passwdfile
137.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
xauth_pain
138. http://www.karlrunge.com/x11vnc/index.html#
inetd
138.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
noshm
139.
ftp://ftp.x.org/
139.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tunnelling
140. http://www.karlrunge.com/x11vnc/
dtVncPopup
140.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwd
141.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwdfile
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
#
inetd
143. http://www.karlrunge.com/x11vnc/index.html#tunnelling
143.
ftp
://
ftp
.
x
.
org
/
144. http://www.karlrunge.com/x11vnc/index.html#tunnelling
144.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
dtVncPopup
145. http://www.karlrunge.com/x11vnc/index.html#tunnelling
145.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
passwdfile
146. http://www.karlrunge.com/x11vnc/blockdpy.c
146.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tunnelling
147. http://www.karlrunge.com/x11vnc/index.html#display_manager
147.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tunnelling
148. http://www.karlrunge.com/x11vnc/index.html#inetd
148.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tunnelling
149. http://www.karlrunge.com/x11vnc/index.html#x11vnc_loop
149.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
tunnelling
150. http://www.jirka.org/gdm-documentation/x241.html
150.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
blockdpy
.
c
151. http://www.karlrunge.com/x11vnc/x11vnc_loop
151.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
display_manager
152. http://www.karlrunge.com/x11vnc/index.html#xterminal_xauth
152.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
inetd
153. http://www.karlrunge.com/x11vnc/shm_clear
153.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
x11vnc_loop
154. http://www.karlrunge.com/x11vnc/index.html#noshm
154.
http
://
www
.
jirka
.
org
/
gdm
-
documentation
/
x241
.
html
155. http://www.tightvnc.com/
155.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_loop
156. http://www.karlrunge.com/x11vnc/tight-vncviewer-alphahack.patch
156.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
xterminal_xauth
157. http://www.tightvnc.com/
157.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
shm_clear
158. http://www.karlrunge.com/x11vnc/index.html#greaterless
158.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
noshm
159. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak
159.
http
://
www
.
tightvnc
.
com
/
160. http://www.karlrunge.com/x11vnc/index.html#xkbmodtweak
160.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
tight
-
vncviewer
-
alphahack
.
patch
161. http://www.karlrunge.com/x11vnc/index.html#display_manager
161.
http
://
www
.
tightvnc
.
com
/
162. http://www.karlrunge.com/x11vnc/index.html#scaling
162.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
greaterless
163. http://www.karlrunge.com/x11vnc/index.html#solshm
163.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
xkbmodtweak
164.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
xkbmodtweak
165.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
display_manager
166.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
scaling
167.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
index
.
html
#
solshm
=======================================================================
=======================================================================
...
@@ -3051,10 +3065,85 @@ http://www.karlrunge.com/x11vnc/x11vnc_opts.html:
...
@@ -3051,10 +3065,85 @@ http://www.karlrunge.com/x11vnc/x11vnc_opts.html:
x11vnc
:
a
VNC
server
for
real
X
displays
x11vnc
:
a
VNC
server
for
real
X
displays
Here
are
all
of
x11vnc
command
line
options
:
Here
are
all
of
x11vnc
command
line
options
:
%
x11vnc
-
opts
(
see
below
for
-
help
long
descriptions
)
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.7.1
pre
lastmod
:
2005
-
02
-
0
5
x11vnc
options
:
-
display
disp
-
auth
file
-
id
windowid
-
sid
windowid
-
flashcmap
-
notruecolor
-
visual
n
-
overlay
-
overlay_nocursor
-
scale
fraction
-
viewonly
-
shared
-
once
-
forever
-
timeout
n
-
inetd
-
connect
string
-
vncconnect
-
novncconnect
-
allow
host1
[,
host2
..]
-
localhost
-
viewpasswd
string
-
passwdfile
filename
-
storepasswd
pass
file
-
accept
string
-
gone
string
-
noshm
-
flipbyteorder
-
onetile
-
solid
[
color
]
-
blackout
string
-
xinerama
-
xrandr
[
mode
]
-
padgeom
WxH
-
o
logfile
-
rc
filename
-
norc
-
h
,
-
help
-?,
-
opts
-
V
,
-
version
-
q
-
bg
-
modtweak
-
nomodtweak
-
xkb
-
skip_keycodes
string
-
add_keysyms
-
clear_mods
-
clear_keys
-
remap
string
-
norepeat
-
repeat
-
nofb
-
nobell
-
nosel
-
noprimary
-
cursor
[
mode
]
-
nocursor
-
noxfixes
-
alphacut
n
-
alphafrac
fraction
-
alpharemove
-
noalphablend
-
nocursorshape
-
cursorpos
-
nocursorpos
-
xwarppointer
-
buttonmap
string
-
nodragging
-
pointer_mode
n
-
input_skip
n
-
speeds
rd
,
bw
,
lat
-
debug_pointer
-
debug_keyboard
-
defer
time
-
wait
time
-
nap
-
sb
time
-
sigpipe
string
-
threads
-
nothreads
-
fs
f
-
gaps
n
-
grow
n
-
fuzz
n
-
snapfb
-
gui
[
gui
-
opts
]
-
remote
command
-
query
variable
-
sync
-
noremote
-
unsafe
-
safer
-
deny_all
libvncserver
options
:
-
rfbport
port
TCP
port
for
RFB
protocol
-
rfbwait
time
max
time
in
ms
to
wait
for
RFB
client
-
rfbauth
passwd
-
file
use
authentication
on
RFB
protocol
(
use
'storepasswd'
to
create
a
password
file
)
-
passwd
plain
-
password
use
authentication
(
use
plain
-
password
as
password
,
USE
AT
YOUR
RISK
)
-
deferupdate
time
time
in
ms
to
defer
updates
(
default
40
)
-
desktop
name
VNC
desktop
name
(
default
"LibVNCServer"
)
-
alwaysshared
always
treat
new
clients
as
shared
-
nevershared
never
treat
new
clients
as
shared
-
dontdisconnect
don
't disconnect existing clients when a new non-shared
connection comes in (refuse new connection instead)
-httpdir dir-path enable http server using dir-path home
-httpport portnum use portnum for http connection
-enablehttpproxy enable http proxy support
-progressive height enable progressive updating for slow links
% x11vnc -help
% x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-0
1-2
x11vnc: allow VNC connections to real X11 displays. 0.7.1pre lastmod: 2005-0
2-0
3
5
Typical usage is:
Typical usage is:
...
@@ -3300,6 +3389,19 @@ Options:
...
@@ -3300,6 +3389,19 @@ Options:
just use 1 shm tile for polling. Limits shm segments
just use 1 shm tile for polling. Limits shm segments
used to 3.
used to 3.
-solid [color] To improve performance, when VNC clients are connected
try to change the desktop background to a solid color.
The [color] is optional: the default color is "cyan4".
For a different one specify the X color (rgb.txt name,
e.g. "darkblue" or numerical "#RRGGBB"). Currently
this option only works on GNOME, KDE, and classic X
(i.e. with the background image on the root window).
The "gconftool-2" and "dcop" external commands are
run for GNOME and KDE respectively. Other desktops
won'
t
work
,
e
.
g
.
XFCE
(
send
us
the
corresponding
commands
if
you
find
them
).
If
x11vnc
guesses
your
desktop
incorrectly
,
you
can
force
it
by
prefixing
color
with
"gnome:"
,
"kde:"
,
or
"root:"
.
-
blackout
string
Black
out
rectangles
on
the
screen
.
"string"
is
a
-
blackout
string
Black
out
rectangles
on
the
screen
.
"string"
is
a
comma
separated
list
of
WxH
+
X
+
Y
type
geometries
for
comma
separated
list
of
WxH
+
X
+
Y
type
geometries
for
each
rectangle
.
each
rectangle
.
...
@@ -3352,6 +3454,7 @@ Options:
...
@@ -3352,6 +3454,7 @@ Options:
-
rc
filename
Use
"filename"
instead
of
$
HOME
/.
x11vncrc
for
rc
file
.
-
rc
filename
Use
"filename"
instead
of
$
HOME
/.
x11vncrc
for
rc
file
.
-
norc
Do
not
process
any
.
x11vncrc
file
for
options
.
-
norc
Do
not
process
any
.
x11vncrc
file
for
options
.
-
h
,
-
help
Print
this
help
text
.
-
h
,
-
help
Print
this
help
text
.
-?,
-
opts
Only
list
the
x11vnc
options
.
-
V
,
-
version
Print
program
version
(
last
modification
date
).
-
V
,
-
version
Print
program
version
(
last
modification
date
).
-
q
Be
quiet
by
printing
less
informational
output
to
-
q
Be
quiet
by
printing
less
informational
output
to
...
@@ -3606,11 +3709,11 @@ Options:
...
@@ -3606,11 +3709,11 @@ Options:
available in -threads mode which has its own pointer
available in -threads mode which has its own pointer
event handling mechanism.
event handling mechanism.
To
try
out
the
different
pointer
modes
to
see
To try out the different pointer modes to see
which
which
one
gives
the
best
response
for
your
usage
,
one gives the best response for your usage, it is
it
is
convenient
to
use
the
remote
control
function
,
convenient to use the remote control function, for
e
.
g
.
"x11vnc -R pointer_mode:4"
or
the
tcl
/
tk
gui
e
xample "x11vnc -R pm:4" or the tcl/tk gui (Tuning ->
(
Tuning
->
pointer_mode
->
n
).
pointer_mode -> n).
-input_skip n For the pointer handling when non-threaded: try to
-input_skip n For the pointer handling when non-threaded: try to
read n user input events before scanning display. n < 0
read n user input events before scanning display. n < 0
...
@@ -3821,6 +3924,9 @@ Options:
...
@@ -3821,6 +3924,9 @@ Options:
onetile enable -onetile mode. (you may need to
onetile enable -onetile mode. (you may need to
set shm for this to do something)
set shm for this to do something)
noonetile disable -onetile mode.
noonetile disable -onetile mode.
solid enable -solid mode
nosolid disable -solid mode.
solid_color:color set -solid color (and apply it).
blackout:str set -blackout "str" (empty to disable).
blackout:str set -blackout "str" (empty to disable).
See -blackout for the form of "str"
See -blackout for the form of "str"
(basically: WxH+X+Y,...)
(basically: WxH+X+Y,...)
...
@@ -3859,7 +3965,6 @@ Options:
...
@@ -3859,7 +3965,6 @@ Options:
fb disable -nofb mode.
fb disable -nofb mode.
bell enable bell (if supported).
bell enable bell (if supported).
nobell disable bell.
nobell disable bell.
bell
enable
bell
(
if
supported
).
nosel enable -nosel mode.
nosel enable -nosel mode.
sel disable -nosel mode.
sel disable -nosel mode.
noprimary enable -noprimary mode.
noprimary enable -noprimary mode.
...
@@ -3968,17 +4073,18 @@ Options:
...
@@ -3968,17 +4073,18 @@ 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 shared
overlay_nocursor
visual
scale
viewonly
noviewonly
noshared forever noforever once timeout deny lock nodeny
shared
noshared
forever
noforever
once
timeout
deny
unlock connect allowonce allow localhost nolocalhost
lock
nodeny
unlock
connect
allowonce
allow
localhost
accept gone shm noshm flipbyteorder noflipbyteorder
nolocalhost
accept
gone
shm
noshm
flipbyteorder
onetile noonetile blackout xinerama noxinerama xrandr
noflipbyteorder
onetile
noonetile
solid_color
solid
noxrandr xrandr_mode padgeom quiet q noquiet modtweak
nosolid
blackout
xinerama
noxinerama
xrandr
noxrandr
nomodtweak xkb noxkb skip_keycodes add_keysyms
xrandr_mode
padgeom
quiet
q
noquiet
modtweak
nomodtweak
noadd_keysyms clear_mods noclear_mods clear_keys
xkb
noxkb
skip_keycodes
add_keysyms
noadd_keysyms
noclear_keys remap repeat norepeat fb nofb bell nobell
clear_mods
noclear_mods
clear_keys
noclear_keys
sel nosel primary noprimary cursorshape nocursorshape
remap
repeat
norepeat
fb
nofb
bell
nobell
sel
nosel
cursorpos nocursorpos cursor show_cursor noshow_cursor
primary
noprimary
cursorshape
nocursorshape
cursorpos
nocursorpos
cursor
show_cursor
noshow_cursor
nocursor
xfixes
noxfixes
alphacut
alphafrac
nocursor
xfixes
noxfixes
alphacut
alphafrac
alpharemove
noalpharemove
alphablend
noalphablend
alpharemove
noalpharemove
alphablend
noalphablend
xwarp
xwarppointer
noxwarp
noxwarppointer
buttonmap
xwarp
xwarppointer
noxwarp
noxwarppointer
buttonmap
...
...
This diff is collapsed.
Click to expand it.
x11vnc/tkx11vnc
View file @
2bc615f6
...
@@ -120,6 +120,9 @@ Screen
...
@@ -120,6 +120,9 @@ Screen
=DP blackout:
=DP blackout:
=D xinerama
=D xinerama
--
--
solid
solid_color:
--
= xrandr
= xrandr
=-C:resize,newfbsize,exit xrandr_mode:
=-C:resize,newfbsize,exit xrandr_mode:
padgeom:
padgeom:
...
@@ -127,9 +130,9 @@ Screen
...
@@ -127,9 +130,9 @@ Screen
Keyboard
Keyboard
norepeat
norepeat
add_keysyms
add_keysyms
skip_keycodes:
modtweak
modtweak
xkb
xkb
skip_keycodes:
--
--
=FP remap:
=FP remap:
--
--
...
@@ -320,6 +323,10 @@ Shows a menu of currently connected VNC clients on the x11vnc server.
...
@@ -320,6 +323,10 @@ Shows a menu of currently connected VNC clients on the x11vnc server.
Allows you to find more information about them or disconnect them.
Allows you to find more information about them or disconnect them.
You will be prompted to confirm any disconnections.
You will be prompted to confirm any disconnections.
"
set
helptext
(
solid_color
)
"
Set the -solid color value.
"
"
set
helptext
(
xrandr_mode
)
"
set
helptext
(
xrandr_mode
)
"
...
@@ -390,7 +397,7 @@ will be \"(*none*)\" when there is no connection established.
...
@@ -390,7 +397,7 @@ will be \"(*none*)\" when there is no connection established.
4) 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
click in the area and
use PageUp/PageDown or the arrow keys.
5) 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
...
@@ -2319,6 +2326,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} {
...
@@ -2319,6 +2326,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} {
set nitem "sb"
set nitem "sb"
} elseif {
$nitem
== "xrandr_mode"} {
} elseif {
$nitem
== "xrandr_mode"} {
set nitem "xrandr"
set nitem "xrandr"
} elseif {
$nitem
== "solid_color"} {
set nitem "solid"
}
}
lappend cmd "-
$nitem
"
lappend cmd "-
$nitem
"
lappend cmd
$menu_var
(
$item
)
lappend cmd
$menu_var
(
$item
)
...
...
This diff is collapsed.
Click to expand it.
x11vnc/tkx11vnc.h
View file @
2bc615f6
...
@@ -126,6 +126,9 @@
...
@@ -126,6 +126,9 @@
" =DP blackout:
\n
"
" =DP blackout:
\n
"
" =D xinerama
\n
"
" =D xinerama
\n
"
" --
\n
"
" --
\n
"
" solid
\n
"
" solid_color:
\n
"
" --
\n
"
" = xrandr
\n
"
" = xrandr
\n
"
" =-C:resize,newfbsize,exit xrandr_mode:
\n
"
" =-C:resize,newfbsize,exit xrandr_mode:
\n
"
" padgeom:
\n
"
" padgeom:
\n
"
...
@@ -133,9 +136,9 @@
...
@@ -133,9 +136,9 @@
"Keyboard
\n
"
"Keyboard
\n
"
" norepeat
\n
"
" norepeat
\n
"
" add_keysyms
\n
"
" add_keysyms
\n
"
" skip_keycodes:
\n
"
" modtweak
\n
"
" modtweak
\n
"
" xkb
\n
"
" xkb
\n
"
" skip_keycodes:
\n
"
" --
\n
"
" --
\n
"
" =FP remap:
\n
"
" =FP remap:
\n
"
" --
\n
"
" --
\n
"
...
@@ -328,6 +331,10 @@
...
@@ -328,6 +331,10 @@
"You will be prompted to confirm any disconnections.
\n
"
"You will be prompted to confirm any disconnections.
\n
"
"
\"\n
"
"
\"\n
"
"
\n
"
"
\n
"
" set helptext(solid_color)
\"\n
"
"Set the -solid color value.
\n
"
"
\"\n
"
"
\n
"
" set helptext(xrandr_mode)
\"\n
"
" set helptext(xrandr_mode)
\"\n
"
"Set the -xrandr mode value.
\n
"
"Set the -xrandr mode value.
\n
"
"
\"\n
"
"
\"\n
"
...
@@ -396,7 +403,7 @@
...
@@ -396,7 +403,7 @@
"
\n
"
"
\n
"
"4) 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
click in the area and
use PageUp/PageDown or the arrow keys.
\n
"
"
\n
"
"
\n
"
"5) 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
"
...
@@ -2325,6 +2332,8 @@
...
@@ -2325,6 +2332,8 @@
" set nitem
\"
sb
\"\n
"
" set nitem
\"
sb
\"\n
"
" } elseif {$nitem ==
\"
xrandr_mode
\"
} {
\n
"
" } elseif {$nitem ==
\"
xrandr_mode
\"
} {
\n
"
" set nitem
\"
xrandr
\"\n
"
" set nitem
\"
xrandr
\"\n
"
" } elseif {$nitem ==
\"
solid_color
\"
} {
\n
"
" set nitem
\"
solid
\"\n
"
" }
\n
"
" }
\n
"
" lappend cmd
\"
-$nitem
\"\n
"
" lappend cmd
\"
-$nitem
\"\n
"
" lappend cmd $menu_var($item)
\n
"
" lappend cmd $menu_var($item)
\n
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc.1
View file @
2bc615f6
.\" This file was automatically generated from x11vnc -help output.
.\" This file was automatically generated from x11vnc -help output.
.TH X11VNC "1" "
Jan
uary 2005" "x11vnc " "User Commands"
.TH X11VNC "1" "
Febr
uary 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-0
1-23
version: 0.7.1pre, lastmod: 2005-0
2-05
.SH SYNOPSIS
.SH SYNOPSIS
.B x11vnc
.B x11vnc
[OPTION]...
[OPTION]...
...
@@ -351,6 +351,22 @@ Do not use the new copy_tiles() framebuffer mechanism,
...
@@ -351,6 +351,22 @@ Do not use the new copy_tiles() framebuffer mechanism,
just use 1 shm tile for polling. Limits shm segments
just use 1 shm tile for polling. Limits shm segments
used to 3.
used to 3.
.PP
.PP
\fB-solid\fR \fI[color]\fR
.IP
To improve performance, when VNC clients are connected
try to change the desktop background to a solid color.
The [color] is optional: the default color is "cyan4".
For a different one specify the X color (rgb.txt name,
e.g. "darkblue" or numerical "#RRGGBB"). Currently
this option only works on GNOME, KDE, and classic X
(i.e. with the background image on the root window).
The "gconftool-2" and "dcop" external commands are
run for GNOME and KDE respectively. Other desktops
won't work, e.g. XFCE (send us the corresponding
commands if you find them). If x11vnc guesses your
desktop incorrectly, you can force it by prefixing
color with "gnome:", "kde:", or "root:".
.PP
\fB-blackout\fR \fIstring\fR
\fB-blackout\fR \fIstring\fR
.IP
.IP
Black out rectangles on the screen. \fIstring\fR is a
Black out rectangles on the screen. \fIstring\fR is a
...
@@ -426,6 +442,7 @@ Do not process any .x11vncrc file for options.
...
@@ -426,6 +442,7 @@ Do not process any .x11vncrc file for options.
\fB-h,\fR \fB-help\fR
\fB-h,\fR \fB-help\fR
.IP
.IP
Print this help text.
Print this help text.
-?, \fB-opts\fR Only list the x11vnc options.
.PP
.PP
\fB-V,\fR \fB-version\fR
\fB-V,\fR \fB-version\fR
.IP
.IP
...
@@ -764,11 +781,11 @@ pointer events). Also note that these modes are not
...
@@ -764,11 +781,11 @@ pointer events). Also note that these modes are not
available in \fB-threads\fR mode which has its own pointer
available in \fB-threads\fR mode which has its own pointer
event handling mechanism.
event handling mechanism.
.IP
.IP
To try out the different pointer modes to see
To try out the different pointer modes to see
which
which one gives the best response for your usage,
one gives the best response for your usage, it is
it is convenient to use the remote control function,
convenient to use the remote control function, for
e
.g. "x11vnc \fB-R\fR pointer_mode:4" or the tcl/tk gui
e
xample "x11vnc \fB-R\fR pm:4" or the tcl/tk gui (Tuning ->
(Tuning ->
pointer_mode -> n).
pointer_mode -> n).
.PP
.PP
\fB-input_skip\fR \fIn\fR
\fB-input_skip\fR \fIn\fR
.IP
.IP
...
@@ -1065,6 +1082,12 @@ onetile enable \fB-onetile\fR mode. (you may need to
...
@@ -1065,6 +1082,12 @@ onetile enable \fB-onetile\fR mode. (you may need to
.IP
.IP
noonetile disable \fB-onetile\fR mode.
noonetile disable \fB-onetile\fR mode.
.IP
.IP
solid enable \fB-solid\fR mode
.IP
nosolid disable \fB-solid\fR mode.
.IP
solid_color:color set \fB-solid\fR color (and apply it).
.IP
blackout:str set \fB-blackout\fR "str" (empty to disable).
blackout:str set \fB-blackout\fR "str" (empty to disable).
See \fB-blackout\fR for the form of "str"
See \fB-blackout\fR for the form of "str"
(basically: WxH+X+Y,...)
(basically: WxH+X+Y,...)
...
@@ -1130,8 +1153,6 @@ bell enable bell (if supported).
...
@@ -1130,8 +1153,6 @@ bell enable bell (if supported).
.IP
.IP
nobell disable bell.
nobell disable bell.
.IP
.IP
bell enable bell (if supported).
.IP
nosel enable \fB-nosel\fR mode.
nosel enable \fB-nosel\fR mode.
.IP
.IP
sel disable \fB-nosel\fR mode.
sel disable \fB-nosel\fR mode.
...
@@ -1315,17 +1336,18 @@ refresh reset close disconnect id sid waitmapped
...
@@ -1315,17 +1336,18 @@ 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 shared
overlay_nocursor visual scale viewonly noviewonly
noshared forever noforever once timeout deny lock nodeny
shared noshared forever noforever once timeout deny
unlock connect allowonce allow localhost nolocalhost
lock nodeny unlock connect allowonce allow localhost
accept gone shm noshm flipbyteorder noflipbyteorder
nolocalhost accept gone shm noshm flipbyteorder
onetile noonetile blackout xinerama noxinerama xrandr
noflipbyteorder onetile noonetile solid_color solid
noxrandr xrandr_mode padgeom quiet q noquiet modtweak
nosolid blackout xinerama noxinerama xrandr noxrandr
nomodtweak xkb noxkb skip_keycodes add_keysyms
xrandr_mode padgeom quiet q noquiet modtweak nomodtweak
noadd_keysyms clear_mods noclear_mods clear_keys
xkb noxkb skip_keycodes add_keysyms noadd_keysyms
noclear_keys remap repeat norepeat fb nofb bell nobell
clear_mods noclear_mods clear_keys noclear_keys
sel nosel primary noprimary cursorshape nocursorshape
remap repeat norepeat fb nofb bell nobell sel nosel
cursorpos nocursorpos cursor show_cursor noshow_cursor
primary noprimary cursorshape nocursorshape cursorpos
nocursorpos cursor show_cursor noshow_cursor
nocursor xfixes noxfixes alphacut alphafrac
nocursor xfixes noxfixes alphacut alphafrac
alpharemove noalpharemove alphablend noalphablend
alpharemove noalpharemove alphablend noalphablend
xwarp xwarppointer noxwarp noxwarppointer buttonmap
xwarp xwarppointer noxwarp noxwarppointer buttonmap
...
...
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc.c
View file @
2bc615f6
...
@@ -273,7 +273,7 @@ static int xdamage_base_event_type;
...
@@ -273,7 +273,7 @@ static int xdamage_base_event_type;
#endif
#endif
/* date +'lastmod: %Y-%m-%d' */
/* date +'lastmod: %Y-%m-%d' */
char
lastmod
[]
=
"0.7.1pre lastmod: 2005-0
1-23
"
;
char
lastmod
[]
=
"0.7.1pre lastmod: 2005-0
2-05
"
;
/* X display info */
/* X display info */
...
@@ -402,6 +402,7 @@ void close_clients(char *);
...
@@ -402,6 +402,7 @@ void close_clients(char *);
void
autorepeat
(
int
restore
);
void
autorepeat
(
int
restore
);
char
*
bitprint
(
unsigned
int
,
int
);
char
*
bitprint
(
unsigned
int
,
int
);
void
blackout_tiles
(
void
);
void
blackout_tiles
(
void
);
void
solid_bg
(
int
);
void
check_connect_inputs
(
void
);
void
check_connect_inputs
(
void
);
void
check_padded_fb
(
void
);
void
check_padded_fb
(
void
);
void
clean_up_exit
(
int
);
void
clean_up_exit
(
int
);
...
@@ -526,6 +527,9 @@ char *logfile = NULL;
...
@@ -526,6 +527,9 @@ char *logfile = NULL;
int
logfile_append
=
0
;
int
logfile_append
=
0
;
char
*
passwdfile
=
NULL
;
char
*
passwdfile
=
NULL
;
char
*
blackout_str
=
NULL
;
char
*
blackout_str
=
NULL
;
int
use_solid_bg
=
0
;
char
*
solid_str
=
NULL
;
char
*
solid_default
=
"cyan4"
;
char
*
speeds_str
=
NULL
;
char
*
speeds_str
=
NULL
;
int
measure_speeds
=
1
;
int
measure_speeds
=
1
;
...
@@ -1340,6 +1344,9 @@ void clean_up_exit (int ret) {
...
@@ -1340,6 +1344,9 @@ void clean_up_exit (int ret) {
if
(
no_autorepeat
)
{
if
(
no_autorepeat
)
{
autorepeat
(
1
);
autorepeat
(
1
);
}
}
if
(
use_solid_bg
)
{
solid_bg
(
1
);
}
X_LOCK
;
X_LOCK
;
XTestDiscard_wr
(
dpy
);
XTestDiscard_wr
(
dpy
);
XCloseDisplay
(
dpy
);
XCloseDisplay
(
dpy
);
...
@@ -1390,6 +1397,9 @@ static void interrupted (int sig) {
...
@@ -1390,6 +1397,9 @@ static void interrupted (int sig) {
if
(
no_autorepeat
)
{
if
(
no_autorepeat
)
{
autorepeat
(
1
);
autorepeat
(
1
);
}
}
if
(
use_solid_bg
)
{
solid_bg
(
1
);
}
if
(
sig
)
{
if
(
sig
)
{
exit
(
2
);
exit
(
2
);
...
@@ -1803,6 +1813,9 @@ static void client_gone(rfbClientPtr client) {
...
@@ -1803,6 +1813,9 @@ static void client_gone(rfbClientPtr client) {
if
(
no_autorepeat
&&
client_count
==
0
)
{
if
(
no_autorepeat
&&
client_count
==
0
)
{
autorepeat
(
1
);
autorepeat
(
1
);
}
}
if
(
use_solid_bg
&&
client_count
==
0
)
{
solid_bg
(
1
);
}
if
(
gone_cmd
&&
*
gone_cmd
!=
'\0'
)
{
if
(
gone_cmd
&&
*
gone_cmd
!=
'\0'
)
{
rfbLog
(
"client_gone: using cmd for: %s
\n
"
,
client
->
host
);
rfbLog
(
"client_gone: using cmd for: %s
\n
"
,
client
->
host
);
run_user_command
(
gone_cmd
,
client
,
"gone"
);
run_user_command
(
gone_cmd
,
client
,
"gone"
);
...
@@ -2830,6 +2843,9 @@ enum rfbNewClientAction new_client(rfbClientPtr client) {
...
@@ -2830,6 +2843,9 @@ enum rfbNewClientAction new_client(rfbClientPtr client) {
/* first client, turn off X server autorepeat */
/* first client, turn off X server autorepeat */
autorepeat
(
0
);
autorepeat
(
0
);
}
}
if
(
use_solid_bg
&&
client_count
==
1
)
{
solid_bg
(
0
);
}
if
(
pad_geometry
)
{
if
(
pad_geometry
)
{
install_padded_fb
(
pad_geometry
);
install_padded_fb
(
pad_geometry
);
...
@@ -6740,6 +6756,62 @@ char *process_remote_cmd(char *cmd, int stringonly) {
...
@@ -6740,6 +6756,62 @@ char *process_remote_cmd(char *cmd, int stringonly) {
}
}
single_copytile
=
0
;
single_copytile
=
0
;
}
else
if
(
strstr
(
p
,
"solid_color"
)
==
p
)
{
char
*
new
;
int
doit
=
1
;
COLON_CHECK
(
"solid_color:"
)
if
(
query
)
{
snprintf
(
buf
,
bufn
,
"ans=%s%s%s"
,
p
,
co
,
NONUL
(
solid_str
));
goto
qry
;
}
p
+=
strlen
(
"solid_color:"
);
if
(
*
p
!=
'\0'
)
{
new
=
strdup
(
p
);
}
else
{
new
=
strdup
(
solid_default
);
}
rfbLog
(
"process_remote_cmd: solid %s -> %s
\n
"
,
NONUL
(
solid_str
),
new
);
if
(
solid_str
)
{
if
(
!
strcmp
(
solid_str
,
new
))
{
doit
=
0
;
}
free
(
solid_str
);
}
solid_str
=
new
;
use_solid_bg
=
1
;
if
(
doit
&&
client_count
)
{
solid_bg
(
0
);
}
}
else
if
(
!
strcmp
(
p
,
"solid"
))
{
int
orig
=
use_solid_bg
;
if
(
query
)
{
snprintf
(
buf
,
bufn
,
"ans=%s:%d"
,
p
,
use_solid_bg
);
goto
qry
;
}
rfbLog
(
"process_remote_cmd: enable -solid mode
\n
"
);
if
(
!
solid_str
)
{
solid_str
=
strdup
(
solid_default
);
}
use_solid_bg
=
1
;
if
(
client_count
&&
!
orig
)
{
solid_bg
(
0
);
}
}
else
if
(
!
strcmp
(
p
,
"nosolid"
))
{
int
orig
=
use_solid_bg
;
if
(
query
)
{
snprintf
(
buf
,
bufn
,
"ans=%s:%d"
,
p
,
!
use_solid_bg
);
goto
qry
;
}
rfbLog
(
"process_remote_cmd: disable -solid mode
\n
"
);
use_solid_bg
=
0
;
if
(
client_count
&&
orig
)
{
solid_bg
(
1
);
}
}
else
if
(
strstr
(
p
,
"blackout"
)
==
p
)
{
}
else
if
(
strstr
(
p
,
"blackout"
)
==
p
)
{
char
*
before
,
*
old
;
char
*
before
,
*
old
;
COLON_CHECK
(
"blackout:"
)
COLON_CHECK
(
"blackout:"
)
...
@@ -10581,6 +10653,325 @@ void initialize_screen(int *argc, char **argv, XImage *fb) {
...
@@ -10581,6 +10653,325 @@ void initialize_screen(int *argc, char **argv, XImage *fb) {
}
}
}
}
/* -- solid.c -- */
int
do_cmd
(
char
*
cmd
)
{
int
rc
;
if
(
!
cmd
||
*
cmd
==
'\0'
)
{
return
0
;
}
rfbLog
(
"running command:
\n
%s
\n
"
,
cmd
);
rc
=
system
(
cmd
);
if
(
rc
>=
256
)
{
rc
=
rc
/
256
;
}
return
rc
;
}
char
*
cmd_output
(
char
*
cmd
)
{
FILE
*
p
;
static
char
output
[
50000
];
char
line
[
1024
];
int
rc
;
rfbLog
(
"running pipe:
\n
%s
\n
"
,
cmd
);
p
=
popen
(
cmd
,
"r"
);
output
[
0
]
=
'\0'
;
while
(
fgets
(
line
,
1024
,
p
)
!=
NULL
)
{
if
(
strlen
(
output
)
+
strlen
(
line
)
+
1
<
50000
)
{
strcat
(
output
,
line
);
}
}
rc
=
pclose
(
p
);
return
(
output
);
}
void
solid_root
(
char
*
color
)
{
Window
expose
;
static
XImage
*
image
=
NULL
;
Pixmap
pixmap
;
XGCValues
gcv
;
GC
gc
;
XSetWindowAttributes
swa
;
Visual
visual
;
unsigned
long
mask
,
pixel
;
XColor
cdef
;
Colormap
cmap
;
if
(
subwin
||
window
!=
rootwin
)
{
rfbLog
(
"cannot set subwin to solid color, must be root
\n
"
);
return
;
}
/* create the "clear" window just for generating exposures */
swa
.
override_redirect
=
True
;
swa
.
backing_store
=
NotUseful
;
swa
.
save_under
=
False
;
swa
.
background_pixmap
=
None
;
visual
.
visualid
=
CopyFromParent
;
mask
=
(
CWOverrideRedirect
|
CWBackingStore
|
CWSaveUnder
|
CWBackPixmap
);
expose
=
XCreateWindow
(
dpy
,
window
,
0
,
0
,
dpy_x
,
dpy_y
,
0
,
depth
,
InputOutput
,
&
visual
,
mask
,
&
swa
);
if
(
!
color
)
{
/* restore the root window from the XImage snapshot */
pixmap
=
XCreatePixmap
(
dpy
,
window
,
dpy_x
,
dpy_y
,
depth
);
if
(
!
image
)
{
/* whoops */
XDestroyWindow
(
dpy
,
expose
);
rfbLog
(
"no root snapshot available.
\n
"
);
return
;
}
/* draw the image to a pixmap: */
gcv
.
function
=
GXcopy
;
gcv
.
plane_mask
=
AllPlanes
;
gc
=
XCreateGC
(
dpy
,
window
,
GCFunction
|
GCPlaneMask
,
&
gcv
);
XPutImage
(
dpy
,
pixmap
,
gc
,
image
,
0
,
0
,
0
,
0
,
dpy_x
,
dpy_y
);
gcv
.
foreground
=
gcv
.
background
=
BlackPixel
(
dpy
,
scr
);
gc
=
XCreateGC
(
dpy
,
window
,
GCForeground
|
GCBackground
,
&
gcv
);
rfbLog
(
"restoring root snapshot...
\n
"
);
/* set the pixmap as the bg: */
XSetWindowBackgroundPixmap
(
dpy
,
window
,
pixmap
);
XFreePixmap
(
dpy
,
pixmap
);
XClearWindow
(
dpy
,
window
);
XFlush
(
dpy
);
/* generate exposures */
XMapWindow
(
dpy
,
expose
);
XSync
(
dpy
,
False
);
XDestroyWindow
(
dpy
,
expose
);
return
;
}
if
(
!
image
)
{
/* need to retrieve a snapshot of the root background: */
Window
iwin
;
XSetWindowAttributes
iswa
;
/* create image window: */
iswa
.
override_redirect
=
True
;
iswa
.
backing_store
=
NotUseful
;
iswa
.
save_under
=
False
;
iswa
.
background_pixmap
=
None
;
iswa
.
background_pixmap
=
ParentRelative
;
iwin
=
XCreateWindow
(
dpy
,
window
,
0
,
0
,
dpy_x
,
dpy_y
,
0
,
depth
,
InputOutput
,
&
visual
,
mask
,
&
iswa
);
rfbLog
(
"snapshotting background...
\n
"
);
XMapWindow
(
dpy
,
iwin
);
XSync
(
dpy
,
False
);
image
=
XGetImage
(
dpy
,
iwin
,
0
,
0
,
dpy_x
,
dpy_y
,
AllPlanes
,
ZPixmap
);
XSync
(
dpy
,
False
);
XDestroyWindow
(
dpy
,
iwin
);
}
/* use black for low colors or failure */
pixel
=
BlackPixel
(
dpy
,
scr
);
if
(
depth
>
8
||
strcmp
(
color
,
solid_default
))
{
cmap
=
DefaultColormap
(
dpy
,
scr
);
if
(
XParseColor
(
dpy
,
cmap
,
color
,
&
cdef
)
&&
XAllocColor
(
dpy
,
cmap
,
&
cdef
))
{
pixel
=
cdef
.
pixel
;
}
else
{
rfbLog
(
"error parsing/allocing color: %s
\n
"
,
color
);
}
}
rfbLog
(
"setting solid background...
\n
"
);
XSetWindowBackground
(
dpy
,
window
,
pixel
);
XMapWindow
(
dpy
,
expose
);
XSync
(
dpy
,
False
);
XDestroyWindow
(
dpy
,
expose
);
}
void
solid_gnome
(
char
*
color
)
{
char
get_color
[]
=
"gconftool-2 --get "
"/desktop/gnome/background/primary_color"
;
char
set_color
[]
=
"gconftool-2 --set "
"/desktop/gnome/background/primary_color --type string '%s'"
;
char
get_option
[]
=
"gconftool-2 --get "
"/desktop/gnome/background/picture_options"
;
char
set_option
[]
=
"gconftool-2 --set "
"/desktop/gnome/background/picture_options --type string '%s'"
;
static
char
*
orig_color
=
NULL
;
static
char
*
orig_option
=
NULL
;
char
*
cmd
;
if
(
!
color
)
{
if
(
!
orig_color
)
{
orig_color
=
strdup
(
"#FFFFFF"
);
}
if
(
!
orig_option
)
{
orig_option
=
strdup
(
"stretched"
);
}
if
(
strstr
(
orig_color
,
"'"
)
!=
NULL
)
{
rfbLog
(
"bad color: %s
\n
"
,
orig_color
);
return
;
}
if
(
strstr
(
orig_option
,
"'"
)
!=
NULL
)
{
rfbLog
(
"bad option: %s
\n
"
,
orig_option
);
return
;
}
cmd
=
(
char
*
)
malloc
(
strlen
(
set_option
)
-
2
+
strlen
(
orig_option
)
+
1
);
sprintf
(
cmd
,
set_option
,
orig_option
);
do_cmd
(
cmd
);
free
(
cmd
);
cmd
=
(
char
*
)
malloc
(
strlen
(
set_color
)
-
2
+
strlen
(
orig_color
)
+
1
);
sprintf
(
cmd
,
set_color
,
orig_color
);
do_cmd
(
cmd
);
free
(
cmd
);
return
;
}
if
(
!
orig_color
)
{
char
*
q
;
orig_color
=
strdup
(
cmd_output
(
get_color
));
if
(
*
orig_color
==
'\0'
)
{
orig_color
=
strdup
(
"#FFFFFF"
);
}
if
((
q
=
strchr
(
orig_color
,
'\n'
))
!=
NULL
)
{
*
q
=
'\0'
;
}
}
if
(
!
orig_option
)
{
char
*
q
;
orig_option
=
strdup
(
cmd_output
(
get_option
));
if
(
*
orig_option
==
'\0'
)
{
orig_option
=
strdup
(
"stretched"
);
}
if
((
q
=
strchr
(
orig_option
,
'\n'
))
!=
NULL
)
{
*
q
=
'\0'
;
}
}
if
(
strstr
(
color
,
"'"
)
!=
NULL
)
{
rfbLog
(
"bad color: %s
\n
"
,
color
);
return
;
}
cmd
=
(
char
*
)
malloc
(
strlen
(
set_color
)
-
2
+
strlen
(
color
)
+
1
);
sprintf
(
cmd
,
set_color
,
color
);
do_cmd
(
cmd
);
free
(
cmd
);
cmd
=
(
char
*
)
malloc
(
strlen
(
set_option
)
-
2
+
strlen
(
"none"
)
+
1
);
sprintf
(
cmd
,
set_option
,
"none"
);
do_cmd
(
cmd
);
free
(
cmd
);
}
void
solid_kde
(
char
*
color
)
{
char
set_color
[]
=
"dcop kdesktop KBackgroundIface setColor '%s' 1"
;
char
bg_off
[]
=
"dcop kdesktop KBackgroundIface setBackgroundEnabled 0"
;
char
bg_on
[]
=
"dcop kdesktop KBackgroundIface setBackgroundEnabled 1"
;
char
*
cmd
;
if
(
!
color
)
{
do_cmd
(
bg_on
);
return
;
}
if
(
strstr
(
color
,
"'"
)
!=
NULL
)
{
rfbLog
(
"bad color: %s
\n
"
,
color
);
return
;
}
cmd
=
(
char
*
)
malloc
(
strlen
(
set_color
)
-
2
+
strlen
(
color
)
+
1
);
sprintf
(
cmd
,
set_color
,
color
);
do_cmd
(
cmd
);
do_cmd
(
bg_off
);
free
(
cmd
);
}
char
*
guess_desktop
()
{
Atom
prop
;
prop
=
XInternAtom
(
dpy
,
"_QT_DESKTOP_PROPERTIES"
,
True
);
if
(
prop
!=
None
)
{
return
"kde"
;
}
prop
=
XInternAtom
(
dpy
,
"NAUTILUS_DESKTOP_WINDOW_ID"
,
True
);
if
(
prop
!=
None
)
{
return
"gnome"
;
}
return
"root"
;
}
void
solid_bg
(
int
restore
)
{
static
int
desktop
=
-
1
;
static
int
solid_on
=
0
;
static
char
*
prev_str
;
char
*
dtname
,
*
color
;
if
(
restore
)
{
if
(
!
solid_on
)
{
return
;
}
if
(
desktop
==
0
)
{
solid_root
(
NULL
);
}
else
if
(
desktop
==
1
)
{
solid_gnome
(
NULL
);
}
else
if
(
desktop
==
2
)
{
solid_kde
(
NULL
);
}
solid_on
=
0
;
return
;
}
if
(
!
solid_str
)
{
return
;
}
if
(
solid_on
&&
!
strcmp
(
prev_str
,
solid_str
))
{
return
;
}
if
(
strstr
(
solid_str
,
"guess:"
)
==
solid_str
||
!
strchr
(
solid_str
,
':'
))
{
dtname
=
guess_desktop
();
rfbLog
(
"guessed desktop: %s
\n
"
,
dtname
);
}
else
{
if
(
strstr
(
solid_str
,
"gnome:"
)
==
solid_str
)
{
dtname
=
"gnome"
;
}
else
if
(
strstr
(
solid_str
,
"kde:"
)
==
solid_str
)
{
dtname
=
"kde"
;
}
else
{
dtname
=
"root"
;
}
}
color
=
strchr
(
solid_str
,
':'
);
if
(
!
color
)
{
color
=
solid_str
;
}
else
{
color
++
;
if
(
*
color
==
'\0'
)
{
color
=
solid_default
;
}
}
if
(
!
strcmp
(
dtname
,
"gnome"
))
{
desktop
=
1
;
solid_gnome
(
color
);
}
else
if
(
!
strcmp
(
dtname
,
"kde"
))
{
desktop
=
2
;
solid_kde
(
color
);
}
else
{
desktop
=
0
;
solid_root
(
color
);
}
if
(
prev_str
)
{
free
(
prev_str
);
}
prev_str
=
strdup
(
solid_str
);
solid_on
=
1
;
}
/* -- xinerama.c -- */
/* -- xinerama.c -- */
/*
/*
* routines related to xinerama and blacking out rectangles
* routines related to xinerama and blacking out rectangles
...
@@ -14457,7 +14848,7 @@ static void watch_loop(void) {
...
@@ -14457,7 +14848,7 @@ static void watch_loop(void) {
/*
/*
* text printed out under -help option
* text printed out under -help option
*/
*/
static
void
print_help
(
void
)
{
static
void
print_help
(
int
mode
)
{
char
help
[]
=
char
help
[]
=
"
\n
"
"
\n
"
"x11vnc: allow VNC connections to real X11 displays. %s
\n
"
"x11vnc: allow VNC connections to real X11 displays. %s
\n
"
...
@@ -14706,6 +15097,19 @@ static void print_help(void) {
...
@@ -14706,6 +15097,19 @@ static void print_help(void) {
" just use 1 shm tile for polling. Limits shm segments
\n
"
" just use 1 shm tile for polling. Limits shm segments
\n
"
" used to 3.
\n
"
" used to 3.
\n
"
"
\n
"
"
\n
"
"-solid [color] To improve performance, when VNC clients are connected
\n
"
" try to change the desktop background to a solid color.
\n
"
" The [color] is optional: the default color is
\"
cyan4
\"
.
\n
"
" For a different one specify the X color (rgb.txt name,
\n
"
" e.g.
\"
darkblue
\"
or numerical
\"
#RRGGBB
\"
). Currently
\n
"
" this option only works on GNOME, KDE, and classic X
\n
"
" (i.e. with the background image on the root window).
\n
"
" The
\"
gconftool-2
\"
and
\"
dcop
\"
external commands are
\n
"
" run for GNOME and KDE respectively. Other desktops
\n
"
" won't work, e.g. XFCE (send us the corresponding
\n
"
" commands if you find them). If x11vnc guesses your
\n
"
" desktop incorrectly, you can force it by prefixing
\n
"
" color with
\"
gnome:
\"
,
\"
kde:
\"
, or
\"
root:
\"
.
\n
"
"-blackout string Black out rectangles on the screen.
\"
string
\"
is a
\n
"
"-blackout string Black out rectangles on the screen.
\"
string
\"
is a
\n
"
" comma separated list of WxH+X+Y type geometries for
\n
"
" comma separated list of WxH+X+Y type geometries for
\n
"
" each rectangle.
\n
"
" each rectangle.
\n
"
...
@@ -14758,6 +15162,7 @@ static void print_help(void) {
...
@@ -14758,6 +15162,7 @@ static void print_help(void) {
"-rc filename Use
\"
filename
\"
instead of $HOME/.x11vncrc for rc file.
\n
"
"-rc filename Use
\"
filename
\"
instead of $HOME/.x11vncrc for rc file.
\n
"
"-norc Do not process any .x11vncrc file for options.
\n
"
"-norc Do not process any .x11vncrc file for options.
\n
"
"-h, -help Print this help text.
\n
"
"-h, -help Print this help text.
\n
"
"-?, -opts Only list the x11vnc options.
\n
"
"-V, -version Print program version (last modification date).
\n
"
"-V, -version Print program version (last modification date).
\n
"
"
\n
"
"
\n
"
"-q Be quiet by printing less informational output to
\n
"
"-q Be quiet by printing less informational output to
\n
"
...
@@ -15024,11 +15429,11 @@ static void print_help(void) {
...
@@ -15024,11 +15429,11 @@ static void print_help(void) {
" available in -threads mode which has its own pointer
\n
"
" available in -threads mode which has its own pointer
\n
"
" event handling mechanism.
\n
"
" event handling mechanism.
\n
"
"
\n
"
"
\n
"
" To try out the different pointer modes to see
\n
"
" To try out the different pointer modes to see
which
\n
"
"
which one gives the best response for your usage,
\n
"
"
one gives the best response for your usage, it is
\n
"
"
it is convenient to use the remote control function,
\n
"
"
convenient to use the remote control function, for
\n
"
" e
.g.
\"
x11vnc -R pointer_mode:4
\"
or the tcl/tk gui
\n
"
" e
xample
\"
x11vnc -R pm:4
\"
or the tcl/tk gui (Tuning ->
\n
"
"
(Tuning ->
pointer_mode -> n).
\n
"
" pointer_mode -> n).
\n
"
"
\n
"
"
\n
"
"-input_skip n For the pointer handling when non-threaded: try to
\n
"
"-input_skip n For the pointer handling when non-threaded: try to
\n
"
" read n user input events before scanning display. n < 0
\n
"
" read n user input events before scanning display. n < 0
\n
"
...
@@ -15239,6 +15644,9 @@ static void print_help(void) {
...
@@ -15239,6 +15644,9 @@ static void print_help(void) {
" onetile enable -onetile mode. (you may need to
\n
"
" onetile enable -onetile mode. (you may need to
\n
"
" set shm for this to do something)
\n
"
" set shm for this to do something)
\n
"
" noonetile disable -onetile mode.
\n
"
" noonetile disable -onetile mode.
\n
"
" solid enable -solid mode
\n
"
" nosolid disable -solid mode.
\n
"
" solid_color:color set -solid color (and apply it).
\n
"
" blackout:str set -blackout
\"
str
\"
(empty to disable).
\n
"
" blackout:str set -blackout
\"
str
\"
(empty to disable).
\n
"
" See -blackout for the form of
\"
str
\"\n
"
" See -blackout for the form of
\"
str
\"\n
"
" (basically: WxH+X+Y,...)
\n
"
" (basically: WxH+X+Y,...)
\n
"
...
@@ -15277,7 +15685,6 @@ static void print_help(void) {
...
@@ -15277,7 +15685,6 @@ static void print_help(void) {
" fb disable -nofb mode.
\n
"
" fb disable -nofb mode.
\n
"
" bell enable bell (if supported).
\n
"
" bell enable bell (if supported).
\n
"
" nobell disable bell.
\n
"
" nobell disable bell.
\n
"
" bell enable bell (if supported).
\n
"
" nosel enable -nosel mode.
\n
"
" nosel enable -nosel mode.
\n
"
" sel disable -nosel mode.
\n
"
" sel disable -nosel mode.
\n
"
" noprimary enable -noprimary mode.
\n
"
" noprimary enable -noprimary mode.
\n
"
...
@@ -15385,17 +15792,18 @@ static void print_help(void) {
...
@@ -15385,17 +15792,18 @@ static void print_help(void) {
" nowaitmapped flashcmap noflashcmap truecolor notruecolor
\n
"
" nowaitmapped flashcmap noflashcmap truecolor notruecolor
\n
"
" overlay nooverlay overlay_cursor overlay_yescursor
\n
"
" overlay nooverlay overlay_cursor overlay_yescursor
\n
"
" nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
\n
"
" nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
\n
"
" overlay_nocursor visual scale viewonly noviewonly shared
\n
"
" overlay_nocursor visual scale viewonly noviewonly
\n
"
" noshared forever noforever once timeout deny lock nodeny
\n
"
" shared noshared forever noforever once timeout deny
\n
"
" unlock connect allowonce allow localhost nolocalhost
\n
"
" lock nodeny unlock connect allowonce allow localhost
\n
"
" accept gone shm noshm flipbyteorder noflipbyteorder
\n
"
" nolocalhost accept gone shm noshm flipbyteorder
\n
"
" onetile noonetile blackout xinerama noxinerama xrandr
\n
"
" noflipbyteorder onetile noonetile solid_color solid
\n
"
" noxrandr xrandr_mode padgeom quiet q noquiet modtweak
\n
"
" nosolid blackout xinerama noxinerama xrandr noxrandr
\n
"
" nomodtweak xkb noxkb skip_keycodes add_keysyms
\n
"
" xrandr_mode padgeom quiet q noquiet modtweak nomodtweak
\n
"
" noadd_keysyms clear_mods noclear_mods clear_keys
\n
"
" xkb noxkb skip_keycodes add_keysyms noadd_keysyms
\n
"
" noclear_keys remap repeat norepeat fb nofb bell nobell
\n
"
" clear_mods noclear_mods clear_keys noclear_keys
\n
"
" sel nosel primary noprimary cursorshape nocursorshape
\n
"
" remap repeat norepeat fb nofb bell nobell sel nosel
\n
"
" cursorpos nocursorpos cursor show_cursor noshow_cursor
\n
"
" primary noprimary cursorshape nocursorshape cursorpos
\n
"
" nocursorpos cursor show_cursor noshow_cursor
\n
"
" nocursor xfixes noxfixes alphacut alphafrac
\n
"
" nocursor xfixes noxfixes alphacut alphafrac
\n
"
" alpharemove noalpharemove alphablend noalphablend
\n
"
" alpharemove noalpharemove alphablend noalphablend
\n
"
" xwarp xwarppointer noxwarp noxwarppointer buttonmap
\n
"
" xwarp xwarppointer noxwarp noxwarppointer buttonmap
\n
"
...
@@ -15473,6 +15881,31 @@ static void print_help(void) {
...
@@ -15473,6 +15881,31 @@ static void print_help(void) {
;
;
/* have both our help and rfbUsage to stdout for more(1), etc. */
/* have both our help and rfbUsage to stdout for more(1), etc. */
dup2
(
1
,
2
);
dup2
(
1
,
2
);
if
(
mode
==
1
)
{
char
*
p
;
int
l
=
0
;
fprintf
(
stderr
,
"x11vnc: allow VNC connections to real "
"X11 displays. %s
\n\n
x11vnc options:
\n
"
,
lastmod
);
p
=
strtok
(
help
,
"
\n
"
);
while
(
p
)
{
int
w
=
23
;
char
tmp
[
100
];
if
(
p
[
0
]
==
'-'
)
{
strncpy
(
tmp
,
p
,
w
);
fprintf
(
stderr
,
" %s"
,
tmp
);
l
++
;
if
(
l
%
2
==
0
)
{
fprintf
(
stderr
,
"
\n
"
);
}
}
p
=
strtok
(
NULL
,
"
\n
"
);
}
fprintf
(
stderr
,
"
\n\n
libvncserver options:
\n
"
);
rfbUsage
();
fprintf
(
stderr
,
"
\n
"
);
exit
(
1
);
}
fprintf
(
stderr
,
help
,
lastmod
,
fprintf
(
stderr
,
help
,
lastmod
,
view_only
?
"on"
:
"off"
,
view_only
?
"on"
:
"off"
,
shared
?
"on"
:
"off"
,
shared
?
"on"
:
"off"
,
...
@@ -15503,6 +15936,9 @@ static void print_help(void) {
...
@@ -15503,6 +15936,9 @@ static void print_help(void) {
void
set_vnc_desktop_name
(
void
)
{
void
set_vnc_desktop_name
(
void
)
{
int
sz
=
256
;
int
sz
=
256
;
sprintf
(
vnc_desktop_name
,
"unknown"
);
sprintf
(
vnc_desktop_name
,
"unknown"
);
if
(
inetd
)
{
sprintf
(
vnc_desktop_name
,
"inetd-no-further-clients"
);
}
if
(
screen
->
port
)
{
if
(
screen
->
port
)
{
char
*
host
=
this_host
();
char
*
host
=
this_host
();
int
lport
=
screen
->
port
;
int
lport
=
screen
->
port
;
...
@@ -15827,6 +16263,8 @@ int main(int argc, char* argv[]) {
...
@@ -15827,6 +16263,8 @@ int main(int argc, char* argv[]) {
argv_vnc
[
0
]
=
strdup
(
argv
[
0
]);
argv_vnc
[
0
]
=
strdup
(
argv
[
0
]);
program_name
=
strdup
(
argv
[
0
]);
program_name
=
strdup
(
argv
[
0
]);
solid_default
=
strdup
(
solid_default
);
/* for freeing with -R */
len
=
0
;
len
=
0
;
for
(
i
=
1
;
i
<
argc
;
i
++
)
{
for
(
i
=
1
;
i
<
argc
;
i
++
)
{
len
+=
strlen
(
argv
[
i
])
+
4
+
1
;
len
+=
strlen
(
argv
[
i
])
+
4
+
1
;
...
@@ -15970,6 +16408,18 @@ int main(int argc, char* argv[]) {
...
@@ -15970,6 +16408,18 @@ int main(int argc, char* argv[]) {
flip_byte_order
=
1
;
flip_byte_order
=
1
;
}
else
if
(
!
strcmp
(
arg
,
"-onetile"
))
{
}
else
if
(
!
strcmp
(
arg
,
"-onetile"
))
{
single_copytile
=
1
;
single_copytile
=
1
;
}
else
if
(
!
strcmp
(
arg
,
"-solid"
))
{
use_solid_bg
=
1
;
if
(
i
<
argc
-
1
)
{
char
*
s
=
argv
[
i
+
1
];
if
(
s
[
0
]
!=
'-'
)
{
solid_str
=
strdup
(
s
);
i
++
;
}
}
if
(
!
solid_str
)
{
solid_str
=
strdup
(
solid_default
);
}
}
else
if
(
!
strcmp
(
arg
,
"-blackout"
))
{
}
else
if
(
!
strcmp
(
arg
,
"-blackout"
))
{
CHECK_ARGC
CHECK_ARGC
blackout_str
=
strdup
(
argv
[
++
i
]);
blackout_str
=
strdup
(
argv
[
++
i
]);
...
@@ -16000,9 +16450,10 @@ int main(int argc, char* argv[]) {
...
@@ -16000,9 +16450,10 @@ int main(int argc, char* argv[]) {
i
++
;
/* done above */
i
++
;
/* done above */
}
else
if
(
!
strcmp
(
arg
,
"-norc"
))
{
}
else
if
(
!
strcmp
(
arg
,
"-norc"
))
{
;
/* done above */
;
/* done above */
}
else
if
(
!
strcmp
(
arg
,
"-h"
)
||
!
strcmp
(
arg
,
"-help"
)
}
else
if
(
!
strcmp
(
arg
,
"-h"
)
||
!
strcmp
(
arg
,
"-help"
))
{
||
!
strcmp
(
arg
,
"-?"
))
{
print_help
(
0
);
print_help
();
}
else
if
(
!
strcmp
(
arg
,
"-?"
)
||
!
strcmp
(
arg
,
"-opts"
))
{
print_help
(
1
);
}
else
if
(
!
strcmp
(
arg
,
"-V"
)
||
!
strcmp
(
arg
,
"-version"
))
{
}
else
if
(
!
strcmp
(
arg
,
"-V"
)
||
!
strcmp
(
arg
,
"-version"
))
{
fprintf
(
stderr
,
"x11vnc: %s
\n
"
,
lastmod
);
fprintf
(
stderr
,
"x11vnc: %s
\n
"
,
lastmod
);
exit
(
0
);
exit
(
0
);
...
@@ -16270,7 +16721,6 @@ int main(int argc, char* argv[]) {
...
@@ -16270,7 +16721,6 @@ int main(int argc, char* argv[]) {
}
}
/*
/*
* If -passwd was used, clear it out of argv. This does not
* If -passwd was used, clear it out of argv. This does not
* work on all UNIX, have to use execvp() in general...
* work on all UNIX, have to use execvp() in general...
...
@@ -16480,6 +16930,8 @@ int main(int argc, char* argv[]) {
...
@@ -16480,6 +16930,8 @@ int main(int argc, char* argv[]) {
fprintf
(
stderr
,
" using_shm: %d
\n
"
,
using_shm
);
fprintf
(
stderr
,
" using_shm: %d
\n
"
,
using_shm
);
fprintf
(
stderr
,
" flipbytes: %d
\n
"
,
flip_byte_order
);
fprintf
(
stderr
,
" flipbytes: %d
\n
"
,
flip_byte_order
);
fprintf
(
stderr
,
" onetile: %d
\n
"
,
single_copytile
);
fprintf
(
stderr
,
" onetile: %d
\n
"
,
single_copytile
);
fprintf
(
stderr
,
" solid: %s
\n
"
,
solid_str
?
solid_str
:
"null"
);
fprintf
(
stderr
,
" blackout: %s
\n
"
,
blackout_str
fprintf
(
stderr
,
" blackout: %s
\n
"
,
blackout_str
?
blackout_str
:
"null"
);
?
blackout_str
:
"null"
);
fprintf
(
stderr
,
" xinerama: %d
\n
"
,
xinerama
);
fprintf
(
stderr
,
" xinerama: %d
\n
"
,
xinerama
);
...
@@ -16491,7 +16943,7 @@ int main(int argc, char* argv[]) {
...
@@ -16491,7 +16943,7 @@ int main(int argc, char* argv[]) {
fprintf
(
stderr
,
" logfile: %s
\n
"
,
logfile
?
logfile
fprintf
(
stderr
,
" logfile: %s
\n
"
,
logfile
?
logfile
:
"null"
);
:
"null"
);
fprintf
(
stderr
,
" logappend: %d
\n
"
,
logfile_append
);
fprintf
(
stderr
,
" logappend: %d
\n
"
,
logfile_append
);
fprintf
(
stderr
,
" rc_file:
\
%s
\n
"
,
rc_rcfile
?
rc_rcfile
fprintf
(
stderr
,
" rc_file: %s
\n
"
,
rc_rcfile
?
rc_rcfile
:
"null"
);
:
"null"
);
fprintf
(
stderr
,
" norc: %d
\n
"
,
rc_norc
);
fprintf
(
stderr
,
" norc: %d
\n
"
,
rc_norc
);
fprintf
(
stderr
,
" bg: %d
\n
"
,
bg
);
fprintf
(
stderr
,
" bg: %d
\n
"
,
bg
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment