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
3fcab6f1
Commit
3fcab6f1
authored
18 years ago
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc: -users sslpeer= option. RFB_SSL_CLIENT_CERT, -ncache 10 default
parent
2d0b184f
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
789 additions
and
887 deletions
+789
-887
SignedVncViewer.jar
classes/ssl/SignedVncViewer.jar
+0
-0
VncViewer.jar
classes/ssl/VncViewer.jar
+0
-0
ChangeLog
x11vnc/ChangeLog
+6
-0
README
x11vnc/README
+421
-340
connections.c
x11vnc/connections.c
+8
-0
help.c
x11vnc/help.c
+30
-1
README
x11vnc/misc/enhanced_tightvnc_viewer/README
+3
-3
ssvnc
x11vnc/misc/enhanced_tightvnc_viewer/bin/ssvnc
+2
-6
ssvnc_cmd
x11vnc/misc/enhanced_tightvnc_viewer/bin/ssvnc_cmd
+1
-1
ssvnc.tcl
x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl
+1
-1
build.unix
x11vnc/misc/enhanced_tightvnc_viewer/build.unix
+3
-2
tight-vncviewer-full.patch
...ed_tightvnc_viewer/src/patches/tight-vncviewer-full.patch
+0
-501
options.c
x11vnc/options.c
+1
-0
options.h
x11vnc/options.h
+1
-0
sslhelper.c
x11vnc/sslhelper.c
+78
-0
sslhelper.h
x11vnc/sslhelper.h
+1
-0
ssltools.h
x11vnc/ssltools.h
+1
-1
user.c
x11vnc/user.c
+189
-26
x11vnc.1
x11vnc/x11vnc.1
+31
-2
x11vnc.c
x11vnc/x11vnc.c
+11
-2
x11vnc_defs.c
x11vnc/x11vnc_defs.c
+1
-1
No files found.
classes/ssl/SignedVncViewer.jar
View file @
3fcab6f1
No preview for this file type
This diff is collapsed.
Click to expand it.
classes/ssl/VncViewer.jar
View file @
3fcab6f1
No preview for this file type
This diff is collapsed.
Click to expand it.
x11vnc/ChangeLog
View file @
3fcab6f1
2007-04-28 Karl Runge <runge@karlrunge.com>
* x11vnc: -users sslpeer= option. RFB_SSL_CLIENT_CERT var.
X11VNC_FINDDISPLAY_ALWAYS_FAILS var. -ncache default 10.
gid switch fix.
* ssvnc: Linux.i*86 fix and code sync.
2007-04-07 Karl Runge <runge@karlrunge.com>
* x11vnc: add gnome, kde, etc. FINDCREATEDISPLAY tags.
In check_ncache periodically check for changed desktop.
...
...
This diff is collapsed.
Click to expand it.
x11vnc/README
View file @
3fcab6f1
x11vnc
README
file
Date
:
Wed
Apr
18
22
:
27
:
25
EDT
2007
x11vnc
README
file
Date
:
Fri
Apr
27
15
:
59
:
32
EDT
2007
The
following
information
is
taken
from
these
URLs
:
...
...
@@ -398,8 +398,8 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
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
downloaded (either file-release tarball or CVS tree) from the above
link. As of
Feb 2007, the [70]x11vnc-0.8.4
.tar.gz source package is
released (recommended download). The [71]x11vnc 0.
8.4
release notes.
link. As of
Apr 2007, the [70]x11vnc-0.9
.tar.gz source package is
released (recommended download). The [71]x11vnc 0.
9
release notes.
The x11vnc package is the subset of the libvncserver package needed to
build the x11vnc program. Also, you can get a copy of my latest,
...
...
@@ -417,6 +417,7 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
* [76]http://sourceforge.net/projects/cotvnc/
* [77]http://www.ultravnc.com/
* [78]Our Enhanced TightVNC Viewer (SSVNC)
[ssvnc.gif]
More tools: Here is a rsh/ssh wrapper script rx11vnc that attempts to
...
...
@@ -1764,6 +1765,7 @@ typedef unsigned int in_addr_t;
*
[
322
]
http
://
sourceforge
.
net
/
projects
/
cotvnc
/
*
[
323
]
http
://
www
.
ultravnc
.
com
/
*
[
324
]
Our
Enhanced
TightVNC
Viewer
(
SSVNC
)
[
ssvnc
.
gif
]
Q
-
7
:
How
can
I
see
all
of
x11vnc
's command line options and
...
...
@@ -1808,6 +1810,8 @@ display :0
displayed on other:0, not the X display x11vnc is polling. There is
also a "[327]-gui tray" system tray mode.
[tkx11vnc.gif]
Q-9: How can I get the GUI to run in the System Tray, or at least be a
smaller, simpler icon?
...
...
@@ -3589,7 +3593,8 @@ x11vnc -logfile $HOME/.x11vnc.log -rfbauth $HOME/.vnc/passwd -forever -bg
any
other
X
clients
)
to
be
killed
after
the
user
logs
in
.
Setting
KillInitClients
=
false
in
the
[
daemon
]
section
of
/
etc
/
X11
/
gdm
/
gdm
.
conf
avoids
this
.
Otherwise
,
just
restart
x11vnc
and
then
reconnect
your
viewer
.
viewer
.
Other
display
managers
(
kdm
,
etc
)
may
also
have
a
similar
problem
.
Note
:
For
dtlogin
in
addition
to
the
above
sort
of
trick
(
BTW
,
the
auth
file
should
be
in
/
var
/
dt
),
you
'll also need to add something
...
...
@@ -3626,7 +3631,8 @@ x11vnc -logfile $HOME/.x11vnc.log -rfbauth $HOME/.vnc/passwd -forever -bg
watch out for.
Note: The above gdm setting of KillInitClients=false in
/etc/X11/gdm/gdm.conf is needed here as well.
/etc/X11/gdm/gdm.conf is needed here as well. Other display managers
(kdm, etc) may also have a similar problem.
Note: The above Dtlogin*grabServer:False step will be needed for
dtlogin here as well.
...
...
@@ -4594,21 +4600,25 @@ ied)
be tried, probably the best it will do is automatically stop using X
DAMAGE.
Update: see [608]this FAQ too.
A developer for [608]MiniMyth reports that the '
alphapulse
' tag of the
theme G.A.N.T. can also cause problems, and should be avoided when
using VNC.
Update: see [609]this FAQ too.
Q-67: 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
motion). Is there anything to do to improve things?
This problem is primarily due to [6
09
]slow hardware read rates from
This problem is primarily due to [6
10
]slow hardware read rates from
video cards: as you scroll or move a large window around the screen
changes are much too rapid for x11vnc to keep up them (it can usually
only read the video card at about 5-10 MB/sec, so it can take a good
fraction of a second to read the changes induce from moving a large
window, if this to be done a number of times in succession the window
or scroll appears to "lurch" forward). See the description in the
[61
0
]-pointer_mode option for more info. The next bottleneck is
[61
1
]-pointer_mode option for more info. The next bottleneck is
compressing all of these changes and sending them out to connected
viewers, however the VNC protocol is pretty much self-adapting with
respect to that (updates are only packaged and sent when viewers ask
...
...
@@ -4618,26 +4628,26 @@ ied)
default should now be much better than before and dragging small
windows around should no longer be a huge pain. If for some reason
these changes make matters worse, you can go back to the old way via
the "[61
1
]-pointer_mode 1" option.
the "[61
2
]-pointer_mode 1" option.
Also added was the [61
2
]-nodragging option that disables all screen
Also added was the [61
3
]-nodragging option that disables all screen
updates while dragging with the mouse (i.e. mouse motion with a button
held down). This gives the snappiest response, but might be undesired
in some circumstances when you want to see the visual feedback while
dragging (e.g. menu traversal or text selection).
As of Dec/2004 the [61
3
]-pointer_mode n option was introduced. n=1 is
As of Dec/2004 the [61
4
]-pointer_mode n option was introduced. n=1 is
the original mode, n=2 an improvement, etc.. See the -pointer_mode n
help for more info.
Also, in some circumstances the [61
4
]-threads option can improve
Also, in some circumstances the [61
5
]-threads option can improve
response considerably. Be forewarned that if more than one vncviewer
is connected at the same time then libvncserver may not be thread safe
(try to get the viewers to use different VNC encodings, e.g. tight and
ZRLE).
As of Apr/2005 two new options (see the [61
5
]wireframe FAQ and
[61
6
]scrollcopyrect FAQ below) provide schemes to sweep this problem
As of Apr/2005 two new options (see the [61
6
]wireframe FAQ and
[61
7
]scrollcopyrect FAQ below) provide schemes to sweep this problem
under the rug for window moves or resizes and for some (but not all)
window scrolls. These are the preferred way of avoiding the "lurching"
problem, contact me if they are not working. Note on SuSE and some
...
...
@@ -4661,8 +4671,8 @@ EndSection
the window move/resize stops, it returns to normal processing: you
should only see the window appear in the new position. This spares you
from interacting with a "lurching" window between all of the
intermediate steps. BTW the lurching is due to [61
7
]slow video card
read rates (see [61
8
]here too). A displacement, even a small one, of a
intermediate steps. BTW the lurching is due to [61
8
]slow video card
read rates (see [61
9
]here too). A displacement, even a small one, of a
large window requires a non-negligible amount of time, a good fraction
of a second, to read in from the hardware framebuffer.
...
...
@@ -4670,7 +4680,7 @@ EndSection
for -wireframe to do any good.
The mode is currently on by default because most people are afflicted
with the problem. It can be disabled with the [6
19
]-nowireframe option
with the problem. It can be disabled with the [6
20
]-nowireframe option
(aka -nowf). Why might one want to turn off the wireframing? Since
x11vnc is merely guessing when windows are being moved/resized, it may
guess poorly for your window-manager or desktop, or even for the way
...
...
@@ -4715,13 +4725,13 @@ EndSection
*
Maximum
time
to
show
a
wireframe
animation
.
*
Minimum
time
between
sending
wireframe
outlines
.
See
the
[
62
0
]
"-wireframe tweaks"
option
for
more
details
.
On
a
slow
See
the
[
62
1
]
"-wireframe tweaks"
option
for
more
details
.
On
a
slow
link
,
e
.
g
.
dialup
modem
,
the
parameters
may
be
automatically
adjusted
for
better
response
.
CopyRect
encoding
:
In
addition
to
the
above
there
is
the
[
62
1
]
"-wirecopyrect mode"
option
.
It
is
also
on
by
default
.
This
[
62
2
]
"-wirecopyrect mode"
option
.
It
is
also
on
by
default
.
This
instructs
x11vnc
to
not
only
show
the
wireframe
animation
,
but
to
also
instruct
all
connected
VNC
viewers
to
locally
translate
the
window
image
data
from
the
original
position
to
the
new
position
on
the
...
...
@@ -4769,7 +4779,7 @@ EndSection
requiring
the
image
data
to
be
transmitted
over
the
network
.
For
fast
links
the
speedup
is
primarily
due
to
x11vnc
not
having
to
read
the
scrolled
framebuffer
data
from
the
X
server
(
recall
that
reading
from
the
hardware
framebuffer
is
[
62
2
]
slow
).
the
hardware
framebuffer
is
[
62
3
]
slow
).
To
do
this
x11vnc
uses
the
RECORD
X
extension
to
snoop
the
X11
protocol
between
the
X
client
with
the
focus
window
and
the
X
server
.
...
...
@@ -4796,10 +4806,10 @@ EndSection
the
X
server
display
:
if
one
falls
too
far
behind
it
could
become
a
mess
...
The
initial
implementation
of
[
62
3
]-
scrollcopyrect
option
is
useful
in
The
initial
implementation
of
[
62
4
]-
scrollcopyrect
option
is
useful
in
that
it
detects
many
scrolls
and
thus
gives
a
much
nicer
working
environment
(
especially
when
combined
with
the
[
62
4
]-
wireframe
[
62
5
]-
wirecopyrect
[
626
]
options
,
which
are
also
on
by
default
;
and
if
environment
(
especially
when
combined
with
the
[
62
5
]-
wireframe
[
62
6
]-
wirecopyrect
[
627
]
options
,
which
are
also
on
by
default
;
and
if
you
are
willing
to
enable
the
ShadowFB
things
are
very
fast
).
The
fact
that
there
aren
't long delays or lurches during scrolling is the
primary improvement.
...
...
@@ -4832,10 +4842,10 @@ EndSection
One can tap the Alt_L key (Left "Alt" key) 3 times in a row to
signal x11vnc to refresh the screen to all viewers. Your
VNC-viewer may have its own screen refresh hot-key or button. See
also: [62
7
]-fixscreen
also: [62
8
]-fixscreen
* Some applications, notably OpenOffice, do XCopyArea scrolls in
weird ways that assume ancestor window clipping is taking place.
See the [62
8
]-scr_skip option for ways to tweak this on a
See the [62
9
]-scr_skip option for ways to tweak this on a
per-application basis.
* Selecting text while dragging the mouse may be slower, especially
if the Button-down event happens near the window'
s
edge
.
This
is
...
...
@@ -4852,7 +4862,7 @@ EndSection
because
it
fails
to
detect
scrolls
in
it
.
Sometimes
clicking
inside
the
application
window
or
selecting
some
text
in
it
to
force
the
focus
helps
.
*
When
using
the
[
6
29
]-
scale
option
there
will
be
a
quick
CopyRect
*
When
using
the
[
6
30
]-
scale
option
there
will
be
a
quick
CopyRect
scroll
,
but
it
needs
to
be
followed
by
a
slower
"cleanup"
update
.
This
is
because
for
a
fixed
finite
screen
resolution
(
e
.
g
.
75
dpi
)
scaling
and
copyrect
-
ing
are
not
exactly
independent
.
Scaling
...
...
@@ -4865,7 +4875,7 @@ EndSection
If
you
find
the
-
scrollcopyrect
behavior
too
approximate
or
distracting
you
can
go
back
to
the
standard
polling
-
only
update
method
with
the
[
63
0
]-
noscrollcopyrect
(
or
-
noscr
for
short
).
If
you
find
with
the
[
63
1
]-
noscrollcopyrect
(
or
-
noscr
for
short
).
If
you
find
some
extremely
bad
and
repeatable
behavior
for
-
scrollcopyrect
please
report
a
bug
.
...
...
@@ -4890,9 +4900,9 @@ EndSection
that
pixel
data
is
needed
again
it
does
not
have
to
be
retransmitted
over
the
network
.
As
of
Dec
/
2006
in
the
[
63
1
]
0.9
development
tarball
there
is
an
As
of
Dec
/
2006
in
the
[
63
2
]
0.9
development
tarball
there
is
an
experimental
client
-
side
caching
implementation
enabled
by
the
"[63
2
]-ncache n"
option
.
In
fact
,
during
the
test
period
at
least
it
"[63
3
]-ncache n"
option
.
In
fact
,
during
the
test
period
at
least
it
is
on
by
default
with
n
set
to
12.
To
disable
it
use
"-noncache"
.
It
is
a
simple
scheme
where
a
(
very
large
)
lower
portion
of
the
...
...
@@ -4925,7 +4935,7 @@ EndSection
perhaps
something
else
,
maybe
double
buffering
or
other
offscreen
rendering
...).
The
Enhanced
TightVNC
Viewer
Unix
viewer
has
a
nice
[
63
3
]-
ycrop
option
The
Enhanced
TightVNC
Viewer
Unix
viewer
has
a
nice
[
63
4
]-
ycrop
option
to
help
hide
the
pixel
cache
area
from
view
.
It
will
turn
on
automatically
if
the
framebuffer
appears
to
be
very
tall
(
height
more
than
twice
the
width
),
or
you
can
supply
the
actual
value
for
the
...
...
@@ -4955,7 +4965,7 @@ EndSection
an
additional
factor
of
2
in
memory
use
.
However
,
even
in
the
smallest
usage
mode
with
n
equal
2
and
[
63
4
]-
ncache_no_rootpixmap
set
(
this
requires
only
2
X
additional
[
63
5
]-
ncache_no_rootpixmap
set
(
this
requires
only
2
X
additional
framebuffer
memory
)
there
is
still
a
noticable
improvement
for
many
activities
,
although
it
is
not
as
dramatic
as
with
,
say
n
equal
12
and
rootpixmap
(
desktop
background
)
caching
enabled
.
...
...
@@ -4966,7 +4976,7 @@ EndSection
be
tuned
to
use
less
,
or
the
VNC
community
will
extend
the
protocol
to
allow
caching
and
replaying
of
compressed
blobs
of
data
.
Another
option
to
experiment
with
is
"[63
5
]-ncache_cr"
.
By
specifying
Another
option
to
experiment
with
is
"[63
6
]-ncache_cr"
.
By
specifying
it
,
x11vnc
will
try
to
do
smooth
opaque
window
moves
instead
of
its
wireframe
.
This
can
give
a
very
nice
effect
(
note
:
on
Unix
the
realvnc
viewer
seems
to
be
smoother
than
the
tightvnc
viewer
),
but
can
lead
to
...
...
@@ -5032,23 +5042,23 @@ EndSection
this
is
because
the
cursor
shape
is
often
downloaded
to
the
graphics
hardware
(
video
card
),
but
I
could
be
mistaken
.
A
simple
kludge
is
provided
by
the
"[63
6
]-cursor X"
option
that
A
simple
kludge
is
provided
by
the
"[63
7
]-cursor X"
option
that
changes
the
cursor
when
the
mouse
is
on
the
root
background
(
or
any
window
has
the
same
cursor
as
the
root
background
).
Note
that
desktops
like
GNOME
or
KDE
often
cover
up
the
root
background
,
so
this
won
't
work for those cases. Also see the "[63
7
]-cursor some" option for
work for those cases. Also see the "[63
8
]-cursor some" option for
additional kludges.
Note that as of Aug/2004 on Solaris using the SUN_OVL overlay
extension and IRIX, x11vnc can show the correct mouse cursor when the
[63
8]-overlay option is supplied. See [639
]this FAQ for more info.
[63
9]-overlay option is supplied. See [640
]this FAQ for more info.
Also as of Dec/2004 XFIXES X extension support has been added to allow
exact extraction of the mouse cursor shape. XFIXES fixes the problem
of the cursor-shape being write-only: x11vnc can now query the X
server for the current shape and send it back to the connected
viewers. XFIXES is available on recent Linux Xorg based distros and
[64
0
]Solaris 10.
[64
1
]Solaris 10.
The only XFIXES issue is the handling of alpha channel transparency in
cursors. If a cursor has any translucency then in general it must be
...
...
@@ -5056,7 +5066,7 @@ EndSection
situations where the cursor transparency can also handled exactly:
when the VNC Viewer requires the cursor shape be drawn into the VNC
framebuffer or if you apply a patch to your VNC Viewer to extract
hidden alpha channel data under 32bpp. [64
1
]Details can be found here.
hidden alpha channel data under 32bpp. [64
2
]Details can be found here.
Q-72: When using XFIXES cursorshape mode, some of the cursors look
...
...
@@ -5089,17 +5099,17 @@ EndSection
for most cursor themes and you don'
t
have
to
worry
about
it
.
In
case
it
still
looks
bad
for
your
cursor
theme
,
there
are
(
of
course
!) some tunable parameters. The "[64
2
]-alphacut n" option lets
course
!) some tunable parameters. The "[64
3
]-alphacut n" option lets
you
set
the
threshold
"n"
(
between
0
and
255
):
cursor
pixels
with
alpha
values
below
n
will
be
considered
completely
transparent
while
values
equal
to
or
above
n
will
be
completely
opaque
.
The
default
is
240.
The
"[64
3
]-alphafrac f"
option
tries
to
correct
individual
240.
The
"[64
4
]-alphafrac f"
option
tries
to
correct
individual
cursors
that
did
not
fare
well
with
the
default
-
alphacut
value
:
if
a
cursor
has
less
than
fraction
f
(
between
0.0
and
1.0
)
of
its
pixels
selected
by
the
default
-
alphacut
,
the
threshold
is
lowered
until
f
of
its
pixels
are
selected
.
The
default
fraction
is
0.33
.
Finally
,
there
is
an
option
[
64
4
]-
alpharemove
that
is
useful
for
Finally
,
there
is
an
option
[
64
5
]-
alpharemove
that
is
useful
for
themes
where
many
cursors
are
light
colored
(
e
.
g
.
"whiteglass"
).
XFIXES
returns
the
cursor
data
with
the
RGB
values
pre
-
multiplied
by
the
alpha
value
.
If
the
white
cursors
look
too
grey
,
specify
...
...
@@ -5125,10 +5135,10 @@ EndSection
alpha
channel
data
to
libvncserver
.
However
,
this
data
will
only
be
used
for
VNC
clients
that
do
not
support
the
CursorShapeUpdates
VNC
extension
(
or
have
disabled
it
).
It
can
be
disabled
for
all
clients
with
the
[
64
5
]-
nocursorshape
x11vnc
option
.
In
this
case
the
cursor
is
with
the
[
64
6
]-
nocursorshape
x11vnc
option
.
In
this
case
the
cursor
is
drawn
,
correctly
blended
with
the
background
,
into
the
VNC
framebuffer
before
being
sent
out
to
the
client
.
So
the
alpha
blending
is
done
on
the
x11vnc
side
.
Use
the
[
64
6
]-
noalphablend
option
to
disable
this
the
x11vnc
side
.
Use
the
[
64
7
]-
noalphablend
option
to
disable
this
behavior
(
always
approximate
transparent
cursors
with
opaque
RGB
values
).
...
...
@@ -5152,7 +5162,7 @@ EndSection
example
on
how
to
change
the
Windows
TightVNC
viewer
to
achieve
the
same
thing
(
send
me
the
patch
if
you
get
that
working
).
This
patch
is
applied
to
the
[
64
7
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
This
patch
is
applied
to
the
[
64
8
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
package
we
provide
.
[
Mouse
Pointer
]
...
...
@@ -5160,9 +5170,9 @@ EndSection
Q
-
74
:
Why
does
the
mouse
arrow
just
stay
in
one
corner
in
my
vncviewer
,
whereas
my
cursor
(
that
does
move
)
is
just
a
dot
?
This
default
takes
advantage
of
a
[
64
8
]
tightvnc
extension
This
default
takes
advantage
of
a
[
64
9
]
tightvnc
extension
(
CursorShapeUpdates
)
that
allows
specifying
a
cursor
image
shape
for
the
local
VNC
viewer
.
You
may
disable
it
with
the
[
6
49
]-
nocursor
the
local
VNC
viewer
.
You
may
disable
it
with
the
[
6
50
]-
nocursor
option
to
x11vnc
if
your
viewer
does
not
have
this
extension
.
Note
:
as
of
Aug
/
2004
this
should
be
fixed
:
the
default
for
...
...
@@ -5176,17 +5186,17 @@ EndSection
clients
(
i
.
e
.
passive
viewers
can
see
the
mouse
cursor
being
moved
around
by
another
viewer
)?
Use
the
[
65
0
]-
cursorpos
option
when
starting
x11vnc
.
A
VNC
viewer
must
Use
the
[
65
1
]-
cursorpos
option
when
starting
x11vnc
.
A
VNC
viewer
must
support
the
Cursor
Positions
Updates
for
the
user
to
see
the
mouse
motions
(
the
TightVNC
viewers
support
this
).
As
of
Aug
/
2004
-
cursorpos
is
the
default
.
See
also
[
65
1
]-
nocursorpos
and
[
652
]-
nocursorshape
.
is
the
default
.
See
also
[
65
2
]-
nocursorpos
and
[
653
]-
nocursorshape
.
Q
-
76
:
Is
it
possible
to
swap
the
mouse
buttons
(
e
.
g
.
left
-
handed
operation
),
or
arbitrarily
remap
them
?
How
about
mapping
button
clicks
to
keystrokes
,
e
.
g
.
to
partially
emulate
Mouse
wheel
scrolling
?
You
can
remap
the
mouse
buttons
via
something
like
:
[
65
3
]-
buttonmap
You
can
remap
the
mouse
buttons
via
something
like
:
[
65
4
]-
buttonmap
13
-
31
(
or
perhaps
12
-
21
).
Also
,
note
that
xmodmap
(
1
)
lets
you
directly
adjust
the
X
server
's button mappings, but in some circumstances it
might be more desirable to have x11vnc do it.
...
...
@@ -5194,7 +5204,7 @@ EndSection
One user had an X server with only one mouse button(!) and was able to
map all of the VNC client mouse buttons to it via: -buttonmap 123-111.
Note that the [65
4
]-debug_pointer option prints out much info for
Note that the [65
5
]-debug_pointer option prints out much info for
every mouse/pointer event and is handy in solving problems.
To map mouse button clicks to keystrokes you can use the alternate
...
...
@@ -5216,7 +5226,7 @@ EndSection
Exactly what keystroke "scrolling" events they should be bound to
depends on one'
s
taste
.
If
this
method
is
too
approximate
,
one
could
consider
not
using
[
65
5
]-
buttonmap
but
rather
configuring
the
X
server
consider
not
using
[
65
6
]-
buttonmap
but
rather
configuring
the
X
server
to
think
it
has
a
mouse
with
5
buttons
even
though
the
physical
mouse
does
not
.
(
e
.
g
.
'Option "ZAxisMapping" "4 5"'
).
...
...
@@ -5246,7 +5256,7 @@ EndSection
Q
-
77
:
How
can
I
get
my
AltGr
and
Shift
modifiers
to
work
between
keyboards
for
different
languages
?
The
option
[
65
6
]-
modtweak
should
help
here
.
It
is
a
mode
that
monitors
The
option
[
65
7
]-
modtweak
should
help
here
.
It
is
a
mode
that
monitors
the
state
of
the
Shift
and
AltGr
Modifiers
and
tries
to
deduce
the
correct
keycode
to
send
,
possibly
by
sending
fake
modifier
key
presses
and
releases
in
addition
to
the
actual
keystroke
.
...
...
@@ -5255,16 +5265,16 @@ EndSection
to
get
the
old
behavior
).
This
was
done
because
it
was
noticed
on
newer
XFree86
setups
even
on
bland
"us"
keyboards
like
"pc104 us"
XFree86
included
a
"ghost"
key
with
both
"<"
and
">"
it
.
This
key
does
not
exist
on
the
keyboard
(
see
[
65
7
]
this
FAQ
for
more
info
).
Without
not
exist
on
the
keyboard
(
see
[
65
8
]
this
FAQ
for
more
info
).
Without
-
modtweak
there
was
then
an
ambiguity
in
the
reverse
map
keysym
=>
keycode
,
making
it
so
the
"<"
symbol
could
not
be
typed
.
Also
see
the
[
65
8
]
FAQ
about
the
-
xkb
option
for
a
more
powerful
method
Also
see
the
[
65
9
]
FAQ
about
the
-
xkb
option
for
a
more
powerful
method
of
modifier
tweaking
for
use
on
X
servers
with
the
XKEYBOARD
extension
.
When
trying
to
resolve
keyboard
mapping
problems
,
note
that
the
[
6
59
]-
debug_keyboard
option
prints
out
much
info
for
every
keystroke
[
6
60
]-
debug_keyboard
option
prints
out
much
info
for
every
keystroke
and
so
can
be
useful
debugging
things
.
...
...
@@ -5276,9 +5286,9 @@ EndSection
(e.g. pc105 in the XF86Config file when it should be something else,
say pc104).
Short Cut: Try the [66
0]-xkb or [661
]-sloppy_keys options and see if
Short Cut: Try the [66
1]-xkb or [662
]-sloppy_keys options and see if
that helps the situation. The discussion below is a bit outdated (e.g.
[66
2
]-modtweak is now the default) but it is useful reference for
[66
3
]-modtweak is now the default) but it is useful reference for
various tricks and so is kept.
...
...
@@ -5321,17 +5331,17 @@ EndSection
-remap less-comma
These are convenient in that they do not modify the actual X server
settings. The former ([66
3
]-modtweak) is a mode that monitors the
settings. The former ([66
4
]-modtweak) is a mode that monitors the
state of the Shift and AltGr modifiers and tries to deduce the correct
keycode sequence to send. Since Jul/2004 -modtweak is now the default.
The latter ([66
4
]-remap less-comma) is an immediate remapping of the
The latter ([66
5
]-remap less-comma) is an immediate remapping of the
keysym less to the keysym comma when it comes in from a client (so
when Shift is down the comma press will yield "<").
See also the [66
5
]FAQ about the -xkb option as a possible workaround
See also the [66
6
]FAQ about the -xkb option as a possible workaround
using the XKEYBOARD extension.
Note that the [66
6
]-debug_keyboard option prints out much info for
Note that the [66
7
]-debug_keyboard option prints out much info for
every keystroke to aid debugging keyboard problems.
...
...
@@ -5339,13 +5349,13 @@ EndSection
(i.e. an extra comma).
This is likely because you press "Shift" then "<" but then released
the Shift key before releasing the "<". Because of a [66
7
]keymapping
the Shift key before releasing the "<". Because of a [66
8
]keymapping
ambiguity the last event "< up" is interpreted as "," because that key
unshifted is the comma.
This should not happen in [66
8
]-xkb mode, because it works hard to
This should not happen in [66
9
]-xkb mode, because it works hard to
resolve the ambiguities. If you do not want to use -xkb, try the
option [6
69
]-sloppy_keys to attempt a similar type of algorithm.
option [6
70
]-sloppy_keys to attempt a similar type of algorithm.
Q-80: I'
m
using
an
"international"
keyboard
(
e
.
g
.
German
"de"
,
or
...
...
@@ -5369,7 +5379,7 @@ EndSection
In both cases no AltGr is sent to the VNC server, but we know AltGr is
needed on the physical international keyboard to type a "@".
This all worked fine with x11vnc running with the [67
0
]-modtweak
This all worked fine with x11vnc running with the [67
1
]-modtweak
option (it figures out how to adjust the Modifier keys (Shift or
AltGr) to get the "@"). However it fails under recent versions of
XFree86 (and the X.org fork). These run the XKEYBOARD extension by
...
...
@@ -5386,7 +5396,7 @@ EndSection
*
there
is
a
new
option
-
xkb
to
use
the
XKEYBOARD
extension
API
to
do
the
Modifier
key
tweaking
.
The
[
67
1
]-
xkb
option
seems
to
fix
all
of
the
missing
keys
:
"@"
,
"<"
,
The
[
67
2
]-
xkb
option
seems
to
fix
all
of
the
missing
keys
:
"@"
,
"<"
,
">"
,
etc
.:
it
is
recommended
that
you
try
it
if
you
have
this
sort
of
problem
.
Let
us
know
if
there
are
any
remaining
problems
(
see
the
next
paragraph
for
some
known
problems
).
If
you
specify
the
-
debug_keyboard
...
...
@@ -5394,7 +5404,7 @@ EndSection
debugging
output
(
send
it
along
with
any
problems
you
report
).
Update
:
as
of
Jun
/
2005
x11vnc
will
try
to
automatically
enable
[
67
2
]-
xkb
if
it
appears
that
would
be
beneficial
(
e
.
g
.
if
it
sees
any
[
67
3
]-
xkb
if
it
appears
that
would
be
beneficial
(
e
.
g
.
if
it
sees
any
of
"@"
,
"<"
,
">"
,
"["
and
similar
keys
are
mapped
in
a
way
that
needs
the
-
xkb
to
access
them
).
To
disable
this
automatic
check
use
-
noxkb
.
...
...
@@ -5409,7 +5419,7 @@ EndSection
was
attached
to
keycode
93
(
no
physical
key
generates
this
keycode
)
while
ISO_Level3_Shift
was
attached
to
keycode
113.
The
keycode
skipping
option
was
used
to
disable
the
ghost
key
:
[
67
3
]-
skip_keycodes
93
[
67
4
]-
skip_keycodes
93
*
In
implementing
-
xkb
we
noticed
that
some
characters
were
still
not
getting
through
,
e
.
g
.
"~"
and
"^"
.
This
is
not
really
an
XKEYBOARD
problem
.
What
was
happening
was
the
VNC
viewer
was
...
...
@@ -5427,16 +5437,16 @@ EndSection
What
to
do
?
In
general
the
VNC
protocol
has
not
really
solved
this
problem
:
what
should
be
done
if
the
VNC
viewer
sends
a
keysym
not
recognized
by
the
VNC
server
side
?
Workarounds
can
possibly
be
created
using
the
[
67
4
]-
remap
x11vnc
option
:
created
using
the
[
67
5
]-
remap
x11vnc
option
:
-
remap
asciitilde
-
dead_tilde
,
asciicircum
-
dead_circumflex
etc
.
Use
-
remap
filename
if
the
list
is
long
.
Please
send
us
your
workarounds
for
this
problem
on
your
keyboard
.
Perhaps
we
can
have
x11vnc
adjust
automatically
at
some
point
.
Also
see
the
[
67
5
]-
add_keysyms
option
in
the
next
paragraph
.
Update
:
for
convenience
"[67
6
]-remap DEAD"
does
many
of
these
[
67
6
]-
add_keysyms
option
in
the
next
paragraph
.
Update
:
for
convenience
"[67
7
]-remap DEAD"
does
many
of
these
mappings
at
once
.
*
To
complement
the
above
workaround
using
the
[
67
7
]-
remap
,
an
option
[
67
8
]-
add_keysyms
was
added
.
This
option
instructs
x11vnc
*
To
complement
the
above
workaround
using
the
[
67
8
]-
remap
,
an
option
[
67
9
]-
add_keysyms
was
added
.
This
option
instructs
x11vnc
to
bind
any
unknown
Keysyms
coming
in
from
VNC
viewers
to
unused
Keycodes
in
the
X
server
.
This
modifies
the
global
state
of
the
X
server
.
When
x11vnc
exits
it
removes
the
extra
keymappings
it
...
...
@@ -5455,7 +5465,7 @@ EndSection
Short
answer
:
disable
key
autorepeating
by
running
the
command
"xset r
off"
on
the
Xserver
where
x11vnc
is
run
(
restore
via
"xset r on"
)
or
use
the
new
(
Jul
/
2004
)
[
6
79
]-
norepeat
x11vnc
option
.
You
will
still
use
the
new
(
Jul
/
2004
)
[
6
80
]-
norepeat
x11vnc
option
.
You
will
still
have
autorepeating
because
that
is
taken
care
of
on
your
VNC
viewer
side
.
...
...
@@ -5479,7 +5489,7 @@ EndSection
off", does the problem go away?
The workaround is to manually apply "xset r off" and "xset r on" as
needed, or to use the [68
0
]-norepeat (which has since Dec/2004 been
needed, or to use the [68
1
]-norepeat (which has since Dec/2004 been
made the default). Note that with X server autorepeat turned off the
VNC viewer side of the connection will (nearly always) do its own
autorepeating so there is no big loss here, unless someone is also
...
...
@@ -5490,7 +5500,7 @@ EndSection
keystrokes!!
Are you using x11vnc to log in to an X session via display manager?
(as described in [68
1
]this FAQ) If so, x11vnc is starting before your
(as described in [68
2
]this FAQ) If so, x11vnc is starting before your
session and it disables autorepeat when you connect, but then after
you log in your session startup (GNOME, KDE, ...) could be resetting
the autorepeat to be on. Or it could be something inside your desktop
...
...
@@ -5514,7 +5524,7 @@ EndSection
machine where I run the VNC viewer does not. Is there a way I can map
a local unused key to send an AltGr? How about a Compose key as well?
Something like "[68
2
]-remap Super_R-Mode_switch" x11vnc option may
Something like "[68
3
]-remap Super_R-Mode_switch" x11vnc option may
work. Note that Super_R is the "Right Windoze(tm) Flaggie" key; you
may want to choose another. The -debug_keyboard option comes in handy
in finding keysym names (so does xev(1)).
...
...
@@ -5537,7 +5547,7 @@ EndSection
Since xmodmap(1) modifies the X server mappings you may not want to do
this (because it affects local work on that machine). Something like
the [68
3
]-remap Alt_L-Meta_L to x11vnc may be sufficient for ones
the [68
4
]-remap Alt_L-Meta_L to x11vnc may be sufficient for ones
needs, and does not modify the X server environment. Note that you
cannot send Alt_L in this case, maybe -remap Super_L-Meta_L would be a
better choice if the Super_L key is typically unused in Unix.
...
...
@@ -5557,7 +5567,7 @@ EndSection
and similar triple mappings (with two in the AltGr/Mode_switch group)
of a keysum to a single keycode.
Use the [68
4
]-nomodtweak option as a workaround. You can also use
Use the [68
5
]-nomodtweak option as a workaround. You can also use
xmodmap to correct these mappings in the server, e.g.:
xmodmap -e "keycode 47 = 3 numbersign"
...
...
@@ -5571,7 +5581,7 @@ EndSection
This can be done directly in some X servers using AccessX and
Pointer_EnableKeys, but is a bit awkward. It may be more convenient to
have x11vnc do the remapping. This can be done via the [68
5
]-remap
have x11vnc do the remapping. This can be done via the [68
6
]-remap
option using the fake "keysyms" Button1, Button2, etc. as the "to"
keys (i.e. the ones after the "-")
...
...
@@ -5580,7 +5590,7 @@ EndSection
button "paste" because (using XFree86/Xorg Emulate3Buttons) you have
to click both buttons on the touch pad at the same time. This
remapping:
[68
6
]-remap Super_R-Button2
[68
7
]-remap Super_R-Button2
maps the Super_R "flag" key press to the Button2 click, thereby making
X pasting a bit easier.
...
...
@@ -5599,10 +5609,10 @@ EndSection
Caps_Lock in the viewer your local machine goes into the Caps_Lock on
state and sends keysym "A" say when you press "a". x11vnc will then
fake things up so that Shift is held down to generate "A". The
[68
7
]-skip_lockkeys option should help to accomplish this. For finer
grain control use something like: "[68
8
]-remap Caps_Lock-None".
[68
8
]-skip_lockkeys option should help to accomplish this. For finer
grain control use something like: "[68
9
]-remap Caps_Lock-None".
Also try the [6
89]-nomodtweak and [690
]-capslock options.
Also try the [6
90]-nomodtweak and [691
]-capslock options.
[Screen Related Issues and Features]
...
...
@@ -5625,7 +5635,7 @@ EndSection
There
may
also
be
scaling
viewers
out
there
(
e
.
g
.
TightVNC
or
UltraVNC
on
Windows
)
that
automatically
shrink
or
expand
the
remote
framebuffer
to
fit
the
local
display
.
Especially
for
hand
-
held
devices
.
See
also
[
69
1
]
this
FAQ
on
x11vnc
scaling
.
[
69
2
]
this
FAQ
on
x11vnc
scaling
.
Q
-
89
:
Does
x11vnc
support
server
-
side
framebuffer
scaling
?
(
E
.
g
.
to
...
...
@@ -5633,7 +5643,7 @@ EndSection
As
of
Jun
/
2004
x11vnc
provides
basic
server
-
side
scaling
.
It
is
a
global
scaling
of
the
desktop
,
not
a
per
-
client
setting
.
To
enable
it
use
the
"[69
2
]-scale fraction"
option
.
"fraction"
can
either
be
a
use
the
"[69
3
]-scale fraction"
option
.
"fraction"
can
either
be
a
floating
point
number
(
e
.
g
.
-
scale
0.5
)
or
the
alternative
m
/
n
fraction
notation
(
e
.
g
.
-
scale
3
/
4
).
Note
that
if
fraction
is
greater
than
one
the
display
is
magnified
.
...
...
@@ -5654,7 +5664,7 @@ EndSection
One
can
also
use
the
":nb"
with
an
integer
scale
factor
(
say
"-scale
2:nb"
)
to
use
x11vnc
as
a
screen
magnifier
for
vision
impaired
[
69
3
]
applications
.
Since
with
integer
scale
factors
the
framebuffers
[
69
4
]
applications
.
Since
with
integer
scale
factors
the
framebuffers
become
huge
and
scaling
operations
time
consuming
,
be
sure
to
use
":nb"
for
the
fastest
response
.
...
...
@@ -5680,7 +5690,7 @@ EndSection
If
one
desires
per
-
client
scaling
for
something
like
1
:
1
from
a
workstation
and
1
:
2
from
a
smaller
device
(
e
.
g
.
handheld
),
currently
the
only
option
is
to
run
two
(
or
more
)
x11vnc
processes
with
different
scalings
listening
on
separate
ports
([
69
4
]-
rfbport
option
,
different
scalings
listening
on
separate
ports
([
69
5
]-
rfbport
option
,
etc
.).
Update
:
As
of
May
/
2006
x11vnc
also
supports
the
UltraVNC
server
-
side
...
...
@@ -5690,8 +5700,8 @@ EndSection
"-rfbversion 3.6" for this to be recognized by UltraVNC viewers.
BTW, whenever you run two or more x11vnc'
s
on
the
same
X
display
and
use
the
[
69
5
]
GUI
,
then
to
avoid
all
of
the
x11vnc
's simultaneously
answering the gui you will need to use something like [69
6
]"-connect
use
the
[
69
6
]
GUI
,
then
to
avoid
all
of
the
x11vnc
's simultaneously
answering the gui you will need to use something like [69
7
]"-connect
file1 -gui ..." with different connect files for each x11vnc you want
to control via the gui (or remote-control). The "-connect file1" usage
gives separate communication channels between a x11vnc proces and the
...
...
@@ -5700,7 +5710,7 @@ EndSection
Update: As of Mar/2005 x11vnc now scales the mouse cursor with the
same scale factor as the screen. If you don'
t
want
that
,
use
the
[
69
7
]
"-scale_cursor frac"
option
to
set
the
cursor
scaling
to
a
[
69
8
]
"-scale_cursor frac"
option
to
set
the
cursor
scaling
to
a
different
factor
(
e
.
g
.
use
"-scale_cursor 1"
to
keep
the
cursor
at
its
natural
unscaled
size
).
...
...
@@ -5722,17 +5732,17 @@ EndSection
screen is not rectangular (e.g. 1280x1024 and 1024x768 monitors joined
together), then there will be "non-existent" areas on the screen. The
X server will return "garbage" image data for these areas and so they
may be distracting to the viewer. The [69
8
]-blackout x11vnc option
may be distracting to the viewer. The [69
9
]-blackout x11vnc option
allows you to blacken-out rectangles by manually specifying their
WxH+X+Y geometries. If your system has the libXinerama library, the
[
699
]-xinerama x11vnc option can be used to have it automatically
[
700
]-xinerama x11vnc option can be used to have it automatically
determine the rectangles to be blackened out. (Note on 8bpp
PseudoColor displays the fill color may not be black). Update:
[70
0
]-xinerama is now on by default.
[70
1
]-xinerama is now on by default.
Some users have reported that the mouse does not behave properly for
their Xinerama display: i.e. the mouse cannot be moved to all regions
of the large display. If this happens try using the [70
1
]-xwarppointer
of the large display. If this happens try using the [70
2
]-xwarppointer
option. This instructs x11vnc to fake mouse pointer motions using the
XWarpPointer function instead of the XTestFakeMotionEvent XTEST
function. (This may be due to a bug in the X server for XTEST when
...
...
@@ -5757,23 +5767,23 @@ EndSection
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
case) from running multiple x11vnc processes. You should modify
/etc/system as mentioned in another [70
2
]FAQ to increase the limit. It
is probably also a good idea to run with the [70
3
]-onetile option in
/etc/system as mentioned in another [70
3
]FAQ to increase the limit. It
is probably also a good idea to run with the [70
4
]-onetile option in
this case (to limit each x11vnc to 3 shm segments), or even
[70
4
]-noshm to use no shm segments.
[70
5
]-noshm to use no shm segments.
Q-92: Can x11vnc show only a portion of the display? (E.g. for a
special purpose rfb application).
As of Mar/2005 x11vnc has the "[70
5
]-clip WxH+X+Y" option to select a
As of Mar/2005 x11vnc has the "[70
6
]-clip WxH+X+Y" option to select a
rectangle of width W, height H and offset (X, Y). Thus the VNC screen
will be the clipped sub-region of the display and be only WxH in size.
One user used -clip to split up a large [70
6
]Xinerama screen into two
One user used -clip to split up a large [70
7
]Xinerama screen into two
more managable smaller screens.
This also works to view a sub-region of a single application window if
the [70
7]-id or [708
]-sid options are used. The offset is measured
the [70
8]-id or [709
]-sid options are used. The offset is measured
from the upper left corner of the selected window.
...
...
@@ -5782,7 +5792,7 @@ EndSection
crash.
As of Dec/2004 x11vnc supports XRANDR. You enable it with the
[7
09
]-xrandr option to make x11vnc monitor XRANDR events and also trap
[7
10
]-xrandr option to make x11vnc monitor XRANDR events and also trap
X server errors if the screen change occurred in the middle of an X
call like XGetImage. Once it traps the screen change it will create a
new framebuffer using the new screen.
...
...
@@ -5792,9 +5802,9 @@ EndSection
then the viewer will automatically resize. Otherwise, the new
framebuffer is fit as best as possible into the original viewer size
(portions of the screen may be clipped, unused, etc). For these
viewers you can try the [71
0
]-padgeom option to make the region big
viewers you can try the [71
1
]-padgeom option to make the region big
enough to hold all resizes and rotations. We have fixed this problem
for the TightVNC Viewer on Unix: [71
1
]enhanced_tightvnc_viewer
for the TightVNC Viewer on Unix: [71
2
]enhanced_tightvnc_viewer
If you specify "-xrandr newfbsize" then vnc viewers that do not
support NewFBSize will be disconnected before the resize. If you
...
...
@@ -5806,7 +5816,7 @@ EndSection
reflect the screen that the VNC viewers see? (e.g. for a handheld
whose screen is rotated 90 degrees).
As of Jul/2006 there is the [71
2
]-rotate option allow this. E.g'
s
:
As of Jul/2006 there is the [71
3
]-rotate option allow this. E.g'
s
:
"-rotate +90"
,
"-rotate -90"
,
"-rotate x"
,
etc
.
...
...
@@ -5871,13 +5881,13 @@ EndSection
This may be a bug in kdesktop_lock. For now the only workaround is to
disable the screensaver. You can try using another one such as
straight xscreensaver (see the instructions [71
3
]here for how to
straight xscreensaver (see the instructions [71
4
]here for how to
disable kdesktop_lock). If you have more info on this or see it
outside of KDE please let us know.
Update: It appears this is due to kdesktop_lock enabling the screen
saver when the Monitor is in DPMS low-power state (e.g. standby,
suspend, or off). In Nov/2006 the x11vnc [71
4
]-nodpms option was added
suspend, or off). In Nov/2006 the x11vnc [71
5
]-nodpms option was added
as a workaround. Normally it is a good thing that the monitor powers
down (since x11vnc can still poll the framebuffer in this state), but
if you experience the kdesktop_lock problem you can specify the
...
...
@@ -5893,15 +5903,19 @@ EndSection
This
appears
to
be
because
the
3
D
OpenGL
/
GLX
hardware
screen
updates
do
not
get
reported
via
the
XDAMAGE
mechanism
.
So
this
is
a
bug
in
[
71
5
]
beryl
or
XDAMAGE
/
Xorg
or
the
(
possibly
3
rd
party
)
video
card
[
71
6
]
beryl
or
XDAMAGE
/
Xorg
or
the
(
possibly
3
rd
party
)
video
card
driver
.
As
a
workaround
apply
the
[
71
6
]-
noxdamage
option
.
As
of
Feb
/
2007
As
a
workaround
apply
the
[
71
7
]-
noxdamage
option
.
As
of
Feb
/
2007
x11vnc
will
try
to
autodetect
the
problem
and
disable
XDAMAGE
if
is
appears
to
be
missing
a
lot
of
updates
.
But
if
you
know
you
are
using
beryl
you
might
as
well
always
supply
-
noxdamage
.
Thanks
to
[
71
7
]
this
beryl
you
might
as
well
always
supply
-
noxdamage
.
Thanks
to
[
71
8
]
this
user
who
reported
the
problem
and
discovered
the
workaround
.
A
developer
for
[
719
]
MiniMyth
reports
that
the
'alphapulse'
tag
of
the
theme
G
.
A
.
N
.
T
.
can
also
cause
problems
,
and
should
be
avoided
when
using
VNC
.
Please
report
a
bug
or
complaint
to
Beryl
and
/
or
Xorg
about
this
:
running
x11vnc
with
-
noxdamage
disables
a
nice
improvement
in
responsiveness
(
especially
for
typing
)
and
also
leads
to
unnecessary
...
...
@@ -5918,9 +5932,9 @@ EndSection
*
Fullscreen
mode
The
way
VMWare
does
Fullscreen
mode
on
Linux
is
to
display
the
Guest
desktop
in
a
separate
Virtual
Console
(
e
.
g
.
VC
8
)
(
see
[
7
18
]
this
FAQ
desktop
in
a
separate
Virtual
Console
(
e
.
g
.
VC
8
)
(
see
[
7
20
]
this
FAQ
on
VC
's for background). Unfortunately, this Fullscreen VC is not an X
server. So x11vnc cannot access it (however, [7
19
]see this discussion
server. So x11vnc cannot access it (however, [7
21
]see this discussion
of -rawfb for a possible workaround). x11vnc works fine with "Normal X
application window" and "Quick-Switch mode" because these use X.
...
...
@@ -5941,13 +5955,13 @@ EndSection
improve
response
.
One
can
also
cut
the
display
depth
(
e
.
g
.
to
16
bpp
)
in
this
2
nd
X
session
to
improve
video
performance
.
This
2
nd
X
session
emulates
Fullscreen
mode
to
some
degree
and
can
be
viewed
via
x11vnc
as
long
as
the
VMWare
X
session
[
72
0
]
is
in
the
active
VC
.
as
long
as
the
VMWare
X
session
[
72
2
]
is
in
the
active
VC
.
Also
note
that
with
a
little
bit
of
playing
with
"xwininfo -all
-children"
output
one
can
extract
the
(
non
-
toplevel
)
windowid
of
the
of
the
Guest
desktop
only
when
VMWare
is
running
as
a
normal
X
application
.
Then
one
can
export
just
the
guest
desktop
(
i
.
e
.
without
the
VMWare
menu
buttons
)
by
use
of
the
[
72
1
]-
id
windowid
option
.
The
the
VMWare
menu
buttons
)
by
use
of
the
[
72
3
]-
id
windowid
option
.
The
caveats
are
the
X
session
VMWare
is
in
must
be
in
the
active
VC
and
the
window
must
be
fully
visible
,
so
this
mode
is
not
terribly
convenient
,
but
could
be
useful
in
some
circumstances
(
e
.
g
.
running
...
...
@@ -5963,10 +5977,10 @@ EndSection
controlled
)
via
VNC
with
x11vnc
?
As
of
Apr
/
2005
there
is
support
for
this
.
Two
options
were
added
:
"[72
2
]-rawfb string"
(
to
indicate
the
raw
framembuffer
device
,
file
,
etc
.
and
its
parameters
)
and
"[72
3
]-pipeinput command"
(
to
provide
an
"[72
4
]-rawfb string"
(
to
indicate
the
raw
framembuffer
device
,
file
,
etc
.
and
its
parameters
)
and
"[72
5
]-pipeinput command"
(
to
provide
an
external
program
that
will
inject
or
otherwise
process
mouse
and
keystroke
input
).
Some
useful
[
72
4
]-
pipeinput
schemes
,
VID
,
CONSOLE
,
keystroke
input
).
Some
useful
[
72
6
]-
pipeinput
schemes
,
VID
,
CONSOLE
,
and
UINPUT
,
have
since
been
built
into
x11vnc
for
convenience
.
This
non
-
X
mode
for
x11vnc
is
somewhat
experimental
because
it
is
so
...
...
@@ -6004,9 +6018,9 @@ EndSection
access
method
).
Only
use
file
if
map
isn
't working. BTW, "mmap" is an
alias for "map" and if you do not supply a type and the file exists,
map is assumed (see the -help output and below for some exceptions to
this). The "snap:" setting applies the [72
5
]-snapfb option with
this). The "snap:" setting applies the [72
7
]-snapfb option with
"file:" type reading (this is useful for exporting webcams or TV tuner
video; see [72
6
]the next FAQ for more info).
video; see [72
8
]the next FAQ for more info).
Also, if the string is of the form "setup:cmd" then cmd is run and the
first line of its output retrieved and used as the rawfb string. This
...
...
@@ -6050,7 +6064,7 @@ EndSection
screen
to
either
shm
or
a
mapped
file
.
The
format
of
these
is
XWD
and
so
the
initial
header
should
be
skipped
.
BTW
,
since
XWD
is
not
strictly
RGB
the
view
will
only
be
approximate
,
but
usable
.
Of
course
for
the
case
of
Xvfb
x11vnc
can
poll
it
much
better
via
the
[
72
7
]
X
for
the
case
of
Xvfb
x11vnc
can
poll
it
much
better
via
the
[
72
9
]
X
API
,
but
you
get
the
idea
.
By
default
in
-
rawfb
mode
x11vnc
will
actually
close
any
X
display
it
...
...
@@ -6079,13 +6093,13 @@ EndSection
tty1
-
tty6
),
or
X
graphical
display
(
usually
starting
at
tty7
).
In
addition
to
the
text
console
other
graphical
ones
may
be
viewed
and
interacted
with
as
well
,
e
.
g
.
DirectFB
or
SVGAlib
apps
,
VMWare
non
-
X
fullscreen
,
or
[
7
28
]
Qt
-
embedded
apps
(
PDAs
/
Handhelds
).
By
default
the
fullscreen
,
or
[
7
30
]
Qt
-
embedded
apps
(
PDAs
/
Handhelds
).
By
default
the
pipeinput
mechanisms
UINPUT
and
CONSOLE
(
keystrokes
only
)
are
automatically
attempted
in
this
mode
under
"-rawfb console"
.
The
Video4Linux
Capture
device
,
/
dev
/
video0
,
etc
is
either
a
Webcam
or
a
TV
capture
device
and
needs
to
have
its
driver
enabled
in
the
kernel
.
See
[
7
29
]
this
FAQ
for
details
.
If
specified
via
"-rawfb Video"
kernel
.
See
[
7
31
]
this
FAQ
for
details
.
If
specified
via
"-rawfb Video"
then
the
pipeinput
method
"VID"
is
applied
(
it
lets
you
change
video
parameters
dynamically
via
keystrokes
).
...
...
@@ -6093,10 +6107,10 @@ EndSection
also
useful
in
testing
.
All
of
the
above
[
73
0
]-
rawfb
options
are
just
for
viewing
the
raw
All
of
the
above
[
73
2
]-
rawfb
options
are
just
for
viewing
the
raw
framebuffer
(
although
some
of
the
aliases
do
imply
keystroke
and
mouse
pipeinput
methods
).
That
may
be
enough
for
certain
applications
of
this
feature
(
e
.
g
.
suppose
a
[
73
1
]
video
camera
mapped
its
framebuffer
this
feature
(
e
.
g
.
suppose
a
[
73
3
]
video
camera
mapped
its
framebuffer
into
memory
and
you
just
wanted
to
look
at
it
via
VNC
).
To
handle
the
pointer
and
keyboard
input
from
the
viewer
users
the
"-pipeinput cmd"
option
was
added
to
indicate
a
helper
program
to
...
...
@@ -6134,7 +6148,7 @@ EndSection
keystrokes
into
the
Linux
console
(
e
.
g
.
the
virtual
consoles
:
/
dev
/
tty1
,
/
dev
/
tty2
,
etc
)
in
x11vnc
/
misc
/
vcinject
.
pl
.
It
is
based
on
the
vncterm
/
LinuxVNC
.
c
program
also
in
the
libvncserver
CVS
.
So
to
view
and
interact
with
VC
#
2
(
assuming
it
is
the
[
73
2
]
active
VC
)
one
view
and
interact
with
VC
#
2
(
assuming
it
is
the
[
73
4
]
active
VC
)
one
can
run
something
like
:
x11vnc
-
rawfb
map
:/
dev
/
fb0
@
1024
x768x16
-
pipeinput
'./vcinject.pl 2'
...
...
@@ -6189,7 +6203,7 @@ EndSection
better to use the more accurate and faster LinuxVNC program. The
advantage x11vnc -rawfb might have is that it can allow interaction
with a non-text application, e.g. one based on SVGAlib or
[73
3]Qt-embedded Also, for example the [734
]VMWare Fullscreen mode is
[73
5]Qt-embedded Also, for example the [736
]VMWare Fullscreen mode is
actually viewable under -rawfb and can be interacted with if uinput is
enabled.
...
...
@@ -6209,9 +6223,9 @@ EndSection
Q
-
102
:
Can
I
export
via
VNC
a
Webcam
or
TV
tuner
framebuffer
using
x11vnc
?
Yes
,
this
is
possible
to
some
degree
with
the
[
73
5
]-
rawfb
option
.
Yes
,
this
is
possible
to
some
degree
with
the
[
73
7
]-
rawfb
option
.
There
is
no
X11
involved
:
snapshots
from
the
video
capture
device
are
used
for
the
screen
image
data
.
See
the
[
73
6
]
previous
FAQ
on
-
rawfb
used
for
the
screen
image
data
.
See
the
[
73
8
]
previous
FAQ
on
-
rawfb
for
background
.
For
best
results
,
use
x11vnc
version
0.8.1
or
later
.
Roughly
,
one
would
do
something
like
this
:
...
...
@@ -6223,7 +6237,7 @@ EndSection
snapshot
to
a
file
that
you
point
-
rawfb
to
;
ask
me
if
it
is
not
clear
what
to
do
).
The
"snap:"
enforces
[
73
7
]-
snapfb
mode
which
appears
to
be
necessary
.
The
"snap:"
enforces
[
73
9
]-
snapfb
mode
which
appears
to
be
necessary
.
The
read
pointer
for
video
capture
devices
cannot
be
repositioned
(
which
would
be
needed
for
scanline
polling
),
but
you
can
read
a
full
frame
of
data
from
the
device
.
...
...
@@ -6245,7 +6259,7 @@ EndSection
Many
video4linux
drivers
tend
to
set
the
framebuffer
to
be
24
bpp
(
as
opposed
to
32
bpp
).
Since
this
can
cause
problems
with
VNC
viewers
,
etc
,
the
[
7
38
]-
24
to32
option
will
be
automatically
imposed
when
in
etc
,
the
[
7
40
]-
24
to32
option
will
be
automatically
imposed
when
in
24
bpp
.
Note
that
by
its
very
nature
,
video
capture
involves
rapid
change
in
...
...
@@ -6253,7 +6267,7 @@ EndSection
wavering
in
brightness
is
always
happening
.
This
can
lead
to
much
network
bandwidth
consumption
for
the
VNC
traffic
and
also
local
CPU
and
I
/
O
resource
usage
.
You
may
want
to
experiment
with
"dialing down"
the
framerate
via
the
[
7
39
]-
wait
,
[
740
]-
slow_fb
,
or
[
741
]-
defer
the
framerate
via
the
[
7
41
]-
wait
,
[
742
]-
slow_fb
,
or
[
743
]-
defer
options
.
Decreasing
the
window
size
and
bpp
also
helps
.
...
...
@@ -6342,7 +6356,7 @@ EndSection
format to HI240, RGB565, RGB24, RGB32, RGB555, and
GREY respectively. See -rawfb video for details.
See also the [74
2
]-freqtab option to supply your own xawtv channel to
See also the [74
4
]-freqtab option to supply your own xawtv channel to
frequency mappings for your country (only ntsc-cable-us is built into
x11vnc).
...
...
@@ -6351,7 +6365,7 @@ EndSection
running on my handheld or PC using the Linux console framebuffer (i.e.
not X11)?
Yes, the basic method for this is the [74
3
]-rawfb scheme where the
Yes, the basic method for this is the [74
5
]-rawfb scheme where the
Linux console framebuffer (usually /dev/fb0) is polled and the uinput
driver is used to inject keystrokes and mouse input. Often you will
just have to type:
...
...
@@ -6364,7 +6378,7 @@ EndSection
x11vnc -rawfb /dev/fb0@640x480x16
Also, to force usage of the uinput injection method use "-pipeinput
UINPUT". See the [74
4
]-pipeinput description for tunable parameters,
UINPUT". See the [74
6
]-pipeinput description for tunable parameters,
etc.
One problem with the x11vnc uinput scheme is that it cannot guess the
...
...
@@ -6380,7 +6394,7 @@ EndSection
Even with the correct acceleration setting there is stil some drift
(probably because of the mouse threshold where the acceleration kicks
in) and so x11vnc needs to reposition the cursor from 0,0 about 5
times a second. See the [74
5
]-pipeinput UINPUT option for tuning
times a second. See the [74
7
]-pipeinput UINPUT option for tuning
parameters that can be set (there are some experimental thresh=N
tuning parameters as well)
...
...
@@ -6414,7 +6428,7 @@ EndSection
Q-104: Now that non-X11 devices can be exported via VNC using x11vnc,
can I build it with no dependencies on X11 header files and libraries?
Yes, as of Jul/2006 x11vnc enables building for [74
6
]-rawfb only
Yes, as of Jul/2006 x11vnc enables building for [74
8
]-rawfb only
support. Just do something like when building:
./configure --without-x (plus any other flags)
make
...
...
@@ -6430,11 +6444,11 @@ EndSection
Yes
,
since
Nov
/
2006
in
the
development
tree
(
x11vnc
-
0.8.4
tarball
)
there
is
support
for
native
Mac
OS
X
Aqua
/
Quartz
displays
using
the
[
74
7
]-
rawfb
mechanism
described
above
.
The
mouse
and
keyboard
input
is
[
74
9
]-
rawfb
mechanism
described
above
.
The
mouse
and
keyboard
input
is
acheived
via
Mac
OS
X
API
's.
So you can use x11vnc as an alternative to [7
48
]OSXvnc (aka Vine
Server), or [7
49
]Apple Remote Desktop (ARD). Perhaps there is some
So you can use x11vnc as an alternative to [7
50
]OSXvnc (aka Vine
Server), or [7
51
]Apple Remote Desktop (ARD). Perhaps there is some
x11vnc feature you'
d
like
to
use
on
Mac
OS
X
,
etc
.
For
a
number
of
activities
(
e
.
g
.
window
drags
)
it
seems
to
be
faster
than
OSXvnc
.
...
...
@@ -6444,7 +6458,7 @@ EndSection
(
XDarwin
)
running
on
Mac
OS
X
(
people
often
install
this
software
to
display
remote
X11
apps
on
their
Mac
OS
X
system
,
or
use
some
old
favorites
locally
such
as
xterm
).
However
in
this
case
x11vnc
will
only
work
reasonably
in
single
window
[
75
0
]-
id
windowid
mode
(
and
the
only
work
reasonably
in
single
window
[
75
2
]-
id
windowid
mode
(
and
the
window
may
need
to
have
mouse
focus
).
If
you
do
not
have
the
DISPLAY
env
.
variable
set
,
x11vnc
will
assume
...
...
@@ -6458,9 +6472,9 @@ EndSection
./configure --without-x
make
Win2VNC/x2vnc: One handy use is to use the [75
1
]-nofb mode to
Win2VNC/x2vnc: One handy use is to use the [75
3
]-nofb mode to
redirect mouse and keyboard input to a nearby Mac (i.e. one to the
side of your desk) via [75
2]x2vnc or Win2VNC. See [753
]this FAQ for
side of your desk) via [75
4]x2vnc or Win2VNC. See [755
]this FAQ for
more info.
Options: Here are the Mac OS X specific x11vnc options:
...
...
@@ -6534,13 +6548,13 @@ rm -f $tmp
performance for the case of a large number of simultaneous VNC viewers
(e.g. classroom broadcasting or a large demo)?
Yes, as of Feb/2007 there is the "[75
4
]-reflect host:N" option to
Yes, as of Feb/2007 there is the "[75
6
]-reflect host:N" option to
connect to the VNC server "host:N" (either another x11vnc or any other
VNC server) and re-export it. VNC viewers then connect to the
x11vnc(s) running -reflect.
The -reflect option is the same as: "-rawfb vnc:host:N". See the
[75
5
]-rawfb description under "VNC HOST" for more details.
[75
7
]-rawfb description under "VNC HOST" for more details.
You can replace "host:N" with "listen" or "listen:port" for reverse
connections.
...
...
@@ -6601,20 +6615,20 @@ rm -f $tmp
re-exports via VNC to its clients C). However, CopyRect and
CursorShape encodings are preserved in the reflection and that helps.
Dragging windows with the mouse can be a problem (especially if S is
not doing wireframing somehow, consider [75
6
]-nodragging if the
not doing wireframing somehow, consider [75
8
]-nodragging if the
problem is severe) For a really fast reflector/repeater it would have
to be implemented from scratch with performance in mind. See these
other projects:
[75
7
]http://sourceforge.net/projects/vnc-reflector/,
[7
58
]http://www.tightvnc.com/projector/ (closed source?),
[7
59
]http://www.ultravnc.com/addons/repeater.html (seems to be a NAT g
[75
9
]http://sourceforge.net/projects/vnc-reflector/,
[7
60
]http://www.tightvnc.com/projector/ (closed source?),
[7
61
]http://www.ultravnc.com/addons/repeater.html (seems to be a NAT g
ateway and not a broadcaster?)
Automation via Reverse Connections: Instead of having the R's
connect directly to S and then the C's connect directly to the R they
should use, some convenience can be achieved by using reverse
connections (the x11vnc "
[
76
0
]
"-connect host1,host2,..."
option
).
connections (the x11vnc "
[
76
2
]
"-connect host1,host2,..."
option
).
Suppose
all
the
clients
"C"
are
started
up
in
Listen
mode
:
client1
>
vncviewer
-
listen
client2
>
vncviewer
-
listen
...
...
@@ -6649,11 +6663,11 @@ ateway and not a broadcaster?)
As
of
Jan
/
2004
x11vnc
supports
the
"CutText"
part
of
the
rfb
protocol
.
Furthermore
,
x11vnc
is
able
to
hold
the
PRIMARY
and
CLIPBOARD
selection
(
Xvnc
does
not
seem
to
do
this
).
If
you
don
't want the
Clipboard/Selection exchanged use the [76
1
]-nosel option. If you don'
t
Clipboard/Selection exchanged use the [76
3
]-nosel option. If you don'
t
want
the
PRIMARY
selection
to
be
polled
for
changes
use
the
[
76
2
]-
noprimary
option
.
(
with
a
similar
thing
for
CLIPBOARD
).
You
can
also
fine
-
tune
it
a
bit
with
the
[
76
3
]-
seldir
dir
option
and
also
[
76
4
]-
input
.
[
76
4
]-
noprimary
option
.
(
with
a
similar
thing
for
CLIPBOARD
).
You
can
also
fine
-
tune
it
a
bit
with
the
[
76
5
]-
seldir
dir
option
and
also
[
76
6
]-
input
.
You
may
need
to
watch
out
for
desktop
utilities
such
as
KDE
's
"Klipper" that do odd things with the selection, clipboard, and
...
...
@@ -6665,7 +6679,7 @@ ateway and not a broadcaster?)
Yes, it is possible with a number of tools that record VNC and
transform it to swf format or others. One such popular tool is
[76
5]pyvnc2swf. There are a number of [766
]tutorials on how to do
[76
7]pyvnc2swf. There are a number of [768
]tutorials on how to do
this. Another option is to use the vnc2mpg that comes in the
LibVNCServer package.
An important thing to remember when doing this is that tuning
...
...
@@ -6681,7 +6695,7 @@ ateway and not a broadcaster?)
do work to some degree under Wine on Linux).
TightVNC file transfer is off by default, if you want to enable it use
the [76
7
]-nofilexfer option.
the [76
9
]-nofilexfer option.
UltraVNC file transfer is off by default, to enable it use something
like "-rfbversion 3.6 -permitfiletransfer"
...
...
@@ -6715,7 +6729,7 @@ ateway and not a broadcaster?)
these extensions you will need to supply this option to x11vnc:
-rfbversion 3.6
Or use [7
68
]-ultrafilexfer which is an alias for the above option and
Or use [7
70
]-ultrafilexfer which is an alias for the above option and
"-permitfiletransfer". UltraVNC evidently treats any other RFB version
number as non-UltraVNC.
...
...
@@ -6727,21 +6741,21 @@ ateway and not a broadcaster?)
* 1/n Server Scaling
* rfbEncodingUltra compression encoding
To disable SingleWindow and ServerInput use [7
69
]-noultraext (the
To disable SingleWindow and ServerInput use [7
71
]-noultraext (the
others are managed by LibVNCServer). See this option too:
[77
0
]-noserverdpms.
[77
2
]-noserverdpms.
Q-111: Can x11vnc emulate UltraVNC'
s
Single
Click
helpdesk
mode
?
I
.
e
.
something
very
simple
for
a
naive
user
to
initiate
a
reverse
vnc
connection
from
their
desktop
to
a
helpdesk
operator
's VNC Viewer.
Yes, UltraVNC'
s
[
77
1
]
Single
Click
(
SC
)
mode
can
be
emulated
reasonably
Yes, UltraVNC'
s
[
77
3
]
Single
Click
(
SC
)
mode
can
be
emulated
reasonably
well
on
Unix
.
We
use
the
term
"helpdesk"
below
,
but
it
could
be
any
sort
of
remote
assistance
you
want
to
set
up
,
e
.
g
.
something
for
unix
-
using
friends
or
family
to
use
.
This
includes
[
77
2
]
Mac
OS
X
.
or
family
to
use
.
This
includes
[
77
4
]
Mac
OS
X
.
Assume
you
create
a
helpdesk
directory
"hd"
on
your
website
:
http
://
www
.
mysite
.
com
/
hd
...
...
@@ -6844,9 +6858,9 @@ fi
SSL Encrypted Helpdesk Connections: Currently x11vnc does not support
reverse connections in SSL [77
3
]-ssl mode. This may change in a future
reverse connections in SSL [77
5
]-ssl mode. This may change in a future
release, until then you would need to cook up something with
[77
4
]STUNNEL.
[77
6
]STUNNEL.
Update: as of Apr/2007 x11vnc supports reverse connections in SSL.
Recipe below will be updated (TBD), basically you just add "-ssl SAVE"
...
...
@@ -7002,7 +7016,7 @@ rypto.a -lwrap
You will have to use an external network redirection for this.
Filesystem mounting is not part of the VNC protocol.
We show a simple [77
5
]Samba example here.
We show a simple [77
7
]Samba example here.
First you will need a tunnel to redirect the SMB requests from the
remote machine to the one you sitting at. We use an ssh tunnel:
...
...
@@ -7039,7 +7053,7 @@ d,ip=127.0.0.1,port=1139
far-away> smbumount /home/fred/smb-haystack-pub
At some point we hope to fold some automation for SMB ssh redir setup
into the [77
6
]Enhanced TightVNC Viewer (SSVNC) package we provide (as
into the [77
8
]Enhanced TightVNC Viewer (SSVNC) package we provide (as
of Sep 2006 it is there for testing).
...
...
@@ -7049,7 +7063,7 @@ d,ip=127.0.0.1,port=1139
You will have to use an external network redirection for this.
Printing is not part of the VNC protocol.
We show a simple Unix to Unix [77
7
]CUPS example here. Non-CUPS port
We show a simple Unix to Unix [77
9
]CUPS example here. Non-CUPS port
redirections (e.g. LPD) should also be possible, but may be a bit more
tricky. If you are viewing on Windows SMB and don'
t
have
a
local
cups
server
it
may
be
trickier
still
(
see
below
).
...
...
@@ -7121,7 +7135,7 @@ d,ip=127.0.0.1,port=1139
"localhost"
.
At
some
point
we
hope
to
fold
some
automation
for
CUPS
ssh
redir
setup
into
the
[
7
78
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
package
we
provide
(
as
into
the
[
7
80
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
package
we
provide
(
as
of
Sep
2006
it
is
there
for
testing
).
...
...
@@ -7222,7 +7236,7 @@ or:
the
applications
will
fail
to
run
because
LD_PRELOAD
will
point
to
libraries
of
the
wrong
wordsize
.
*
At
some
point
we
hope
to
fold
some
automation
for
esd
or
artsd
ssh
redir
setup
into
the
[
7
79
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
package
redir
setup
into
the
[
7
81
]
Enhanced
TightVNC
Viewer
(
SSVNC
)
package
we
provide
(
as
of
Sep
/
2006
it
is
there
for
testing
).
...
...
@@ -7234,9 +7248,9 @@ or:
in Solaris, see Xserver(1) for how to turn it on via +kb), and so you
won'
t
hear
them
if
the
extension
is
not
present
.
If
you
don
't want to hear the beeps use the [78
0
]-nobell option. If
If
you
don
't want to hear the beeps use the [78
2
]-nobell option. If
you want to hear the audio from the remote applications, consider
trying a [78
1
]redirector such as esd.
trying a [78
3
]redirector such as esd.
...
...
@@ -7322,8 +7336,8 @@ References
67. http://www.karlrunge.com/x11vnc/index.html#faq-ssl-tunnel-int
68. http://www.karlrunge.com/x11vnc/ssvnc.html
69. http://sourceforge.net/projects/libvncserver/
70. http://sourceforge.net/project/showfiles.php?group_id=32584&package_id=119006&release_id=
483129
71. http://sourceforge.net/project/shownotes.php?
release_id=483129&group_id=32584
70. http://sourceforge.net/project/showfiles.php?group_id=32584&package_id=119006&release_id=
502277
71. http://sourceforge.net/project/shownotes.php?
group_id=32584&release_id=502277
72. http://www.karlrunge.com/x11vnc/x11vnc-0.9.1.tar.gz
73. http://www.karlrunge.com/x11vnc/index.html#faq-binaries
74. http://www.tightvnc.com/download.html
...
...
@@ -7860,180 +7874,182 @@ References
605. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-xd_mem
606. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-noxdamage
607. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-noxdamage
608. http://
www.karlrunge.com/x11vnc/index.html#faq-beryl
609. http://www.karlrunge.com/x11vnc/index.html#f
b_read_slow
610. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-pointer_mode
608. http://
linpvr.org/minimyth/
609. http://www.karlrunge.com/x11vnc/index.html#f
aq-beryl
610. http://www.karlrunge.com/x11vnc/
index.html#fb_read_slow
611. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-pointer_mode
612. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nodragging
613. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pointer_mode
614. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
threads
615. http://www.karlrunge.com/x11vnc/
index.html#faq-wireframe
616. http://www.karlrunge.com/x11vnc/index.html#faq-
scrollcopyrect
617. http://www.karlrunge.com/x11vnc/index.html#faq-
pointer-mode
618. http://www.karlrunge.com/x11vnc/index.html#f
b_read_slow
619. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-wireframe
612. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pointer_mode
613. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nodragging
614. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pointer_mode
615. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-threads
616. http://www.karlrunge.com/x11vnc/index.html#faq-
wireframe
617. http://www.karlrunge.com/x11vnc/index.html#faq-
scrollcopyrect
618. http://www.karlrunge.com/x11vnc/index.html#f
aq-pointer-mode
619. http://www.karlrunge.com/x11vnc/
index.html#fb_read_slow
620. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-wireframe
621. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-wireframe
622. http://www.karlrunge.com/x11vnc/
index.html#fb_read_slow
623. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-scrollcopyrect
624. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
wireframe
625. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-wire
copyrect
626. http://www.karlrunge.com/x11vnc/
index.html#faq-wireframe
627. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-fixscreen
628. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
scr_skip
629. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-sc
ale
630. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-sc
rollcopyrect
631. http://www.karlrunge.com/x11vnc/
index.html#beta-tes
t
632. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-ncache
633. http://www.karlrunge.com/x11vnc/
ssvnc.html#ycrop
634. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-ncache_no_rootpixma
p
635. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-ncache_
cr
636. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
curso
r
622. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-wireframe
623. http://www.karlrunge.com/x11vnc/
index.html#fb_read_slow
624. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
scrollcopyrect
625. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-wire
frame
626. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-wirecopyrect
627. http://www.karlrunge.com/x11vnc/
index.html#faq-wireframe
628. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
fixscreen
629. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-sc
r_skip
630. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-sc
ale
631. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-scrollcopyrec
t
632. http://www.karlrunge.com/x11vnc/
index.html#beta-test
633. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-ncache
634. http://www.karlrunge.com/x11vnc/
ssvnc.html#ycro
p
635. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-ncache_
no_rootpixmap
636. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
ncache_c
r
637. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-cursor
638. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
overlay
639. http://www.karlrunge.com/x11vnc/
index.html#the-overlay-mode
640. http://www.karlrunge.com/x11vnc/index.html#
solaris10-build
641. http://www.karlrunge.com/x11vnc/index.html#
faq-xfixes-alpha-hacks
642. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-alphacut
643. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-alpha
frac
644. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-alpha
remove
645. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nocursorshap
e
646. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-no
alphablend
647. http://www.karlrunge.com/x11vnc/
ssvnc.html
648. http://www.
tightvnc.com/
649. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nocursor
650. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
cursorpos
651. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
no
cursorpos
652. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-nocursor
shape
653. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
buttonmap
654. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
debug_pointer
655. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
buttonmap
656. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
modtweak
657. http://www.karlrunge.com/x11vnc/
index.html#faq-greaterless
658. http://www.karlrunge.com/x11vnc/index.html#faq-
xkbmodtweak
659. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-debug_keyboard
660. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xkb
661. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
sloppy_keys
662. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
modtweak
638. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
cursor
639. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-overlay
640. http://www.karlrunge.com/x11vnc/index.html#
the-overlay-mode
641. http://www.karlrunge.com/x11vnc/index.html#
solaris10-build
642. http://www.karlrunge.com/x11vnc/
index.html#faq-xfixes-alpha-hacks
643. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-alpha
cut
644. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-alpha
frac
645. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
alpharemov
e
646. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-no
cursorshape
647. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-noalphablend
648. http://www.
karlrunge.com/x11vnc/ssvnc.html
649. http://www.
tightvnc.com/
650. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nocursor
651. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-cursorpos
652. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-nocursor
pos
653. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nocursorshape
654. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
buttonmap
655. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
debug_pointer
656. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
buttonmap
657. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-modtweak
658. http://www.karlrunge.com/x11vnc/index.html#faq-
greaterless
659. http://www.karlrunge.com/x11vnc/
index.html#faq-xkbmodtweak
660. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
debug_keyboard
661. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xkb
662. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
sloppy_keys
663. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-modtweak
664. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
665. http://www.karlrunge.com/x11vnc/
index.html#faq-xkbmodtweak
666. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-debug_keyboard
667. http://www.karlrunge.com/x11vnc/
index.html#faq-greaterless
668. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-xkb
669. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
sloppy_keys
670. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
modtweak
671. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xkb
664. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
modtweak
665. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-remap
666. http://www.karlrunge.com/x11vnc/
index.html#faq-xkbmodtweak
667. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-debug_keyboard
668. http://www.karlrunge.com/x11vnc/
index.html#faq-greaterless
669. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xkb
670. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
sloppy_keys
671. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
modtweak
672. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-xkb
673. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
skip_keycodes
674. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
675. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
add_keysyms
676. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
673. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xkb
674. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
skip_keycodes
675. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
676. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
add_keysyms
677. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-remap
678. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
add_keysyms
679. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
norepeat
678. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
679. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
add_keysyms
680. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-norepeat
681. http://www.karlrunge.com/x11vnc/
index.html#faq-display-manager
682. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-remap
681. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-norepeat
682. http://www.karlrunge.com/x11vnc/
index.html#faq-display-manager
683. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-remap
684. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nomodtweak
685. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
684. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
685. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nomodtweak
686. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-remap
687. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
skip_lockkeys
688. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
689. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nomodtweak
690. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
capsloc
k
691. http://www.karlrunge.com/x11vnc/
index.html#faq-scaling
692. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-scale
693. http://www.
cus.cam.ac.uk/~ssb22/source/vnc-magnification.html
694. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-rfbport
695. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
gui
696. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
connect
697. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
scale_cursor
698. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
blackout
699. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xinerama
687. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
688. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
skip_lockkeys
689. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
remap
690. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nomodtwea
k
691. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-capslock
692. http://www.karlrunge.com/x11vnc/
index.html#faq-scaling
693. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-scale
694. http://www.
cus.cam.ac.uk/~ssb22/source/vnc-magnification.html
695. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
rfbport
696. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
gui
697. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
connect
698. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
scale_cursor
699. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
blackout
700. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-xinerama
701. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-x
warppointer
702. http://www.karlrunge.com/x11vnc/
index.html#faq-solshm
703. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-onetile
704. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
noshm
705. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
clip
706. http://www.karlrunge.com/x11vnc/
index.html#faq-xinerama
707. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-id
701. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-x
inerama
702. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-xwarppointer
703. http://www.karlrunge.com/x11vnc/
index.html#faq-solshm
704. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
onetile
705. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
noshm
706. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-clip
707. http://www.karlrunge.com/x11vnc/
index.html#faq-xinerama
708. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-id
709. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xrandr
710. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
padgeom
711. http://www.karlrunge.com/x11vnc/
ssvnc.html
712. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rotate
713. http://www.
jwz.org/xscreensaver/man1.html
714. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nodpms
715. http://www.
beryl-project.org/
716. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-noxdamage
717. http://www.
dslinux.org/blogs/pepsiman/?p=73
718. http://www.
karlrunge.com/x11vnc/index.html#faq-linuxvc
719. http://
www.karlrunge.com/x11vnc/index.html#faq-rawfb
709. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
id
710. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
xrandr
711. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-padgeom
712. http://www.karlrunge.com/x11vnc/
ssvnc.html
713. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-rotate
714. http://www.
jwz.org/xscreensaver/man1.html
715. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nodpms
716. http://www.
beryl-project.org/
717. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-noxdamage
718. http://www.
dslinux.org/blogs/pepsiman/?p=73
719. http://
linpvr.org/minimyth/
720. http://www.karlrunge.com/x11vnc/index.html#faq-linuxvc
721. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-id
722. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rawfb
723. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
724. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
725. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
snapfb
726. http://www.karlrunge.com/x11vnc/
index.html#faq-video
727. http://www.karlrunge.com/x11vnc/
index.html#faq-xv
fb
728. http://www.karlrunge.com/x11vnc/index.html#faq-
qt-embedded
729. http://www.karlrunge.com/x11vnc/index.html#faq-
video
730. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rawfb
721. http://www.karlrunge.com/x11vnc/
index.html#faq-rawfb
722. http://www.karlrunge.com/x11vnc/
index.html#faq-linuxvc
723. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
id
724. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
rawfb
725. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
726. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-pipeinput
727. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-snap
fb
728. http://www.karlrunge.com/x11vnc/index.html#faq-
video
729. http://www.karlrunge.com/x11vnc/index.html#faq-
xvfb
730. http://www.karlrunge.com/x11vnc/
index.html#faq-qt-embedded
731. http://www.karlrunge.com/x11vnc/index.html#faq-video
732. http://www.karlrunge.com/x11vnc/
index.html#faq-linuxvc
733. http://www.karlrunge.com/x11vnc/index.html#faq-
qt-embedded
734. http://www.karlrunge.com/x11vnc/index.html#faq-
vmware
735. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rawfb
736. http://www.karlrunge.com/x11vnc/index.html#faq-
rawfb
737. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
snap
fb
738. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-24to32
739. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
wait
740. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
slow_fb
741. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
defer
742. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
freqta
b
743. http://www.karlrunge.com/x11vnc/
index.html#faq-rawfb
744. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
745. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-pipeinput
746. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
rawfb
747. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
rawfb
748. http://www.
redstonesoftware.com/vnc.html
749. http://www.
apple.com/remotedesktop/
750. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-id
751. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-id
752. http://
fredrik.hubbe.net/x2vnc.html
753. http://www.karlrunge.com/x11vnc/
index.html#faq-win2vnc
754. http://
www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-reflect
755. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rawfb
756. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nodragging
757. http://
sourceforge.net/projects/vnc-reflector/
758. http://www.
tightvnc.com/projector/
759. http://
www.ultravnc.com/addons/repeater.html
760. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-connect
761. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nose
l
762. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
noprimary
763. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
seldir
764. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
input
765. http://www.
unixuser.org/~euske/vnc2swf/
766. http://w
olphination.com/linux/2006/06/30/how-to-record-videos-of-your-desktop/
767. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nofilexfer
768. http://w
ww.karlrunge.com/x11vnc/x11vnc_opts.html#opt-ultrafilexfer
769. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-no
ultraext
770. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
noserverdpms
771. http://www.
uvnc.com/addons/singleclick.html
772. http://www.karlrunge.com/x11vnc/
index.html#faq-macosx
773. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-ss
l
774. http://
stunnel.mirt.net/
775. http://www.
samba.org/
776. http://
www.karlrunge.com/x11vnc/ssvnc.html
777. http://www.
cups
.org/
732. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-rawfb
733. http://www.karlrunge.com/x11vnc/index.html#faq-
video
734. http://www.karlrunge.com/x11vnc/index.html#faq-
linuxvc
735. http://www.karlrunge.com/x11vnc/
index.html#faq-qt-embedded
736. http://www.karlrunge.com/x11vnc/index.html#faq-
vmware
737. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
raw
fb
738. http://www.karlrunge.com/x11vnc/
index.html#faq-rawfb
739. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
snapfb
740. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
24to32
741. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
wait
742. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
slow_f
b
743. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-defer
744. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
freqtab
745. http://www.karlrunge.com/x11vnc/
index.html#faq-rawfb
746. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
747. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
pipeinput
748. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-rawfb
749. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-rawfb
750. http://www.
redstonesoftware.com/vnc.html
751. http://www.
apple.com/remotedesktop/
752. http://
www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-id
753. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-id
754. http://
fredrik.hubbe.net/x2vnc.html
755. http://www.karlrunge.com/x11vnc/
index.html#faq-win2vnc
756. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
reflect
757. http://
www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-rawfb
758. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-nodragging
759. http://
sourceforge.net/projects/vnc-reflector/
760. http://www.
tightvnc.com/projector/
761. http://www.
ultravnc.com/addons/repeater.htm
l
762. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
connect
763. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
nosel
764. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
noprimary
765. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-seldir
766. http://w
ww.karlrunge.com/x11vnc/x11vnc_opts.html#opt-input
767. http://www.
unixuser.org/~euske/vnc2swf/
768. http://w
olphination.com/linux/2006/06/30/how-to-record-videos-of-your-desktop/
769. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-no
filexfer
770. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-
ultrafilexfer
771. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-noultraext
772. http://www.karlrunge.com/x11vnc/
x11vnc_opts.html#opt-noserverdpms
773. http://www.
uvnc.com/addons/singleclick.htm
l
774. http://
www.karlrunge.com/x11vnc/index.html#faq-macosx
775. http://www.
karlrunge.com/x11vnc/x11vnc_opts.html#opt-ssl
776. http://
stunnel.mirt.net/
777. http://www.
samba
.org/
778. http://www.karlrunge.com/x11vnc/ssvnc.html
779. http://www.karlrunge.com/x11vnc/ssvnc.html
780. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-nobell
781. http://www.karlrunge.com/x11vnc/index.html#faq-sound
779. http://www.cups.org/
780. http://www.karlrunge.com/x11vnc/ssvnc.html
781. http://www.karlrunge.com/x11vnc/ssvnc.html
782. http://www.karlrunge.com/x11vnc/x11vnc_opts.html#opt-nobell
783. http://www.karlrunge.com/x11vnc/index.html#faq-sound
=======================================================================
http://www.karlrunge.com/x11vnc/chainingssh.html:
...
...
@@ -8371,6 +8387,8 @@ References
http://www.karlrunge.com/x11vnc/ssl.html:
_________________________________________________________________
Notes on x11vnc SSL Certificates and Key Management:
The simplest scheme ("x11vnc -ssl") is where x11vnc generates a
...
...
@@ -8451,6 +8469,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
Authority
scheme
below
for
a
way
to
make
this
easier
(
you
just
have
to
do
it
once
).
_________________________________________________________________
Saving
SSL
certificates
and
keys
:
...
...
@@ -8493,6 +8512,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
then that will avoid an annoying dialog box in their Web browsers that
warn that the CommonName doesn'
t
match
the
hostname
.
_________________________________________________________________
Passphrases
for
server
keys
:
...
...
@@ -8516,6 +8536,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
before
x11vnc
can
continue
.
_________________________________________________________________
Being
your
own
Certificate
Authority
:
...
...
@@ -8568,6 +8589,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
public
,
and
they
could
also
be
used
let
in
only
a
subset
of
all
the
clients
.
(
see
[
8
]-
sslverify
)
_________________________________________________________________
How
to
do
the
above
CA
steps
with
x11vnc
:
...
...
@@ -8650,6 +8672,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
[17]ss_vncviewer:
ss_vncviewer -verify ./cacert.pem far-away.east:0
_________________________________________________________________
Tricks for server keys:
...
...
@@ -8671,6 +8694,7 @@ NTIwLjQxMTE2OTEPMA0GA1UEChMGeDExdm5jMS4wLAYDVQQDEyV4MTF2bmMtU0VM
separate from your CA when you do not want to create a 2nd CA
cert+key.
_________________________________________________________________
Using external CA'
s
:
...
...
@@ -8704,6 +8728,7 @@ pem
You also rename the two files (.crt and .pem) to have a shorter
basename if you like.
_________________________________________________________________
Using Client Keys for Authentication:
...
...
@@ -8752,10 +8777,26 @@ pem
and
also
using
self
-
signed
client
keys
(
x11vnc
-
sslGenCert
client
self
:
dilbert
)
Here
is
how
to
convert
our
openssl
crt
/
pem
files
to
pkcs12
format
that
can
be
read
by
Web
browsers
and
Java
:
openssl
pkcs12
-
export
-
in
mycert
.
crt
-
inkey
mycert
.
pem
-
out
mycert
.
p12
it
will
ask
for
a
passphrase
to
protect
mycert
.
p12
.
Update
:
as
of
Apr
2007
in
the
0.9.1
x11vnc
tarball
there
is
a
new
option
setting
"[20]-users sslpeer="
that
will
do
a
switch
user
much
like
[
21
]-
unixpw
does
,
but
this
time
using
the
emailAddress
field
of
the
Certificate
subject
of
the
verified
Client
.
This
mode
requires
[
22
]-
sslverify
turned
on
to
verify
the
clients
via
SSL
.
This
mode
can
be
useful
in
situations
using
[
23
]-
create
or
[
24
]-
svc
where
a
new
X
server
needs
to
be
started
up
as
the
authenticated
user
(
but
unlike
in
-
unixpw
mode
,
the
unix
username
is
not
obviously
known
).
_________________________________________________________________
Additional
utlities
:
You
can
get
information
about
your
keys
via
[
2
0
]-
sslCertInfo
.
These
You
can
get
information
about
your
keys
via
[
2
5
]-
sslCertInfo
.
These
lists
all
your
keys
:
x11vnc
-
sslCertInfo
list
x11vnc
-
sslCertInfo
ll
...
...
@@ -8780,12 +8821,13 @@ pem
(
but
rm
(
1
)
will
be
just
as
effective
).
_________________________________________________________________
More
info
:
See
also
this
[
2
1
]
article
for
some
some
general
info
and
examples
See
also
this
[
2
6
]
article
for
some
some
general
info
and
examples
using
stunnel
and
openssl
on
Windows
with
VNC
.
Also
[
2
2
]
http
://
www
.
stunnel
.
org
/
faq
/
certs
.
html
[
2
7
]
http
://
www
.
stunnel
.
org
/
faq
/
certs
.
html
References
...
...
@@ -8808,9 +8850,14 @@ References
17.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
ss_vncviewer
18.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
ss_vncviewer
19.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
sslverify
20.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
sslCertInfo
21.
http
://
www
.
securityfocus
.
com
/
infocus
/
1677
22.
http
://
www
.
stunnel
.
org
/
faq
/
certs
.
html
20.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
users
21.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
unixpw
22.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
sslverify
23.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
create
24.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
svc
25.
http
://
www
.
karlrunge
.
com
/
x11vnc
/
x11vnc_opts
.
html
#
opt
-
sslCertInfo
26.
http
://
www
.
securityfocus
.
com
/
infocus
/
1677
27.
http
://
www
.
stunnel
.
org
/
faq
/
certs
.
html
=======================================================================
http
://
www
.
karlrunge
.
com
/
x11vnc
/
ssl
-
portal
.
html
:
...
...
@@ -9647,6 +9694,8 @@ Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
[1](To Downloads) [2](To Quick Start)
[ssvnc.gif]
The Enhanced TightVNC Viewer package started as a project to add some
patches to the long neglected Unix TightVNC Viewer. However, now the
front-end GUI and wrapper scripts features dwarf the Unix TightVNC
...
...
@@ -9754,7 +9803,7 @@ Unix and Mac OS X:
used as well.
On MacOSX there is also a SSVNC.app directory icon you can click on
to
Finder to start the application.
in
Finder to start the application.
Windows:
...
...
@@ -9948,7 +9997,10 @@ Enhanced TightVNC viewer (SSVNC) options:
Note: the Ultravnc extensions only apply to servers that support
them. x11vnc/libvncserver supports some of them.
Nearly all of these can be changed dynamically in the Popup menu.
Nearly all of these can be changed dynamically in the Popup menu
(press F8 for it):
[viewer_menu.gif] [unixviewer.gif]
Windows:
...
...
@@ -10523,7 +10575,7 @@ x11vnc: a VNC server for real X displays
Here are all of x11vnc command line options:
% x11vnc -opts (see below for -help long descriptions)
x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-
18
x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-
27
x11vnc options:
-display disp -auth file -N
...
...
@@ -10637,7 +10689,7 @@ libvncserver-tight-extension options:
% x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-
18
x11vnc: allow VNC connections to real X11 displays. 0.9.1 lastmod: 2007-04-
27
(type "
x11vnc
-
opts
" to just list the options.)
...
...
@@ -11479,7 +11531,8 @@ Options:
In
this
mode
you
can
set
X11VNC_SKIP_DISPLAY
to
a
comma
separated
list
of
displays
(
e
.
g
.
":0,:1"
)
to
ignore
in
the
finding
process
.
in
the
finding
process
.
This
can
also
be
set
by
the
user
via
"nd="
using
"-"
instead
of
","
An
interesting
option
is
WAIT
:
cmd
=
FINDCREATEDISPLAY
that
is
like
FINDDISPLAY
in
that
is
uses
the
same
method
...
...
@@ -11516,6 +11569,10 @@ Options:
Where
/.../
x11vnc
is
the
full
path
to
x11vnc
.
If
for
some
reason
you
do
not
want
x11vnc
to
ever
try
to
find
an
existing
display
set
the
env
.
var
X11VNC_FINDDISPLAY_ALWAYS_FAILS
=
1
(
also
-
env
...)
Use
WAIT
:
cmd
=
FINDCREATEDISPLAY
-
print
to
print
out
the
script
used
.
You
can
specify
the
preferred
order
via
e
.
g
.,
WAIT
:
cmd
=
FINDCREATEDISPLAY
-
Xdummy
,
Xvfb
,
X
and
/
or
...
...
@@ -12243,6 +12300,28 @@ Options:
If you want to limit which users this will be done for,
provide them as a comma separated list after "unixpw="
Similarly, in -ssl mode, if "-users sslpeer=" is
supplied then after an SSL client authenticates with his
cert (the -sslverify option is required for this) x11vnc
will extract a UNIX username from the "emailAddress"
field (username@hostname.com) of the "Subject" in the
x509 SSL cert and then try to switch to that user as
though "-users +username" had been supplied. If you
want to limit which users this will be done for, provide
them as a comma separated list after "sslpeer=".
Set the env. var X11VNC_SSLPEER_CN to use the Common
Name (normally a hostname) instead of the Email field.
NOTE: the x11vnc administrator must take great care
that any client certs he adds to -sslverify have the
correct UNIX username in the "emailAddress" field
of the cert. Otherwise a user may be able to log in
as another. The following command can be of use in
checking: "openssl x509 -text -in file.crt", see the
"Subject:" line. Also, along with the normal RFB_*
env. vars. (see -accept) passed to external cmd=
commands, RFB_SSL_CLIENT_CERT will be set to the
client'
s
x509
certificate
string
.
To
immediately
switch
to
a
user
*
before
*
connections
to
the
X
display
are
made
or
any
files
opened
use
the
"="
character
:
"-users =bob"
.
That
user
needs
to
...
...
@@ -12767,6 +12846,8 @@ Options:
for
rapid
retrieval
.
So
a
W
x
H
frambuffer
is
expanded
to
a
W
x
(
n
+
1
)*
H
one
.
Use
0
to
disable
.
Default
:
XXX
.
The
"n"
is
actually
optional
,
the
default
is
10.
For
this
and
the
other
-
ncache
*
options
below
you
can
abbreviate
"-ncache"
with
"-nc"
.
Also
,
"-nonc"
is
the
same
as
"-ncache 0"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/connections.c
View file @
3fcab6f1
...
...
@@ -413,6 +413,11 @@ int run_user_command(char *cmd, rfbClientPtr client, char *mode, char *input,
}
else
{
set_env
(
"RFB_STATE"
,
"UNKNOWN"
);
}
if
(
certret_str
)
{
set_env
(
"RFB_SSL_CLIENT_CERT"
,
certret_str
);
}
else
{
set_env
(
"RFB_SSL_CLIENT_CERT"
,
""
);
}
/* set RFB_CLIENT_PORT to peer port for command to use */
if
(
cd
&&
cd
->
client_port
>
0
)
{
...
...
@@ -491,6 +496,9 @@ int run_user_command(char *cmd, rfbClientPtr client, char *mode, char *input,
/* gone, accept, afteraccept */
ok
=
0
;
if
(
!
strcmp
(
mode
,
"env"
))
{
return
1
;
}
if
(
!
strcmp
(
mode
,
"accept"
)
&&
cmd_ok
(
"accept"
))
{
ok
=
1
;
}
...
...
This diff is collapsed.
Click to expand it.
x11vnc/help.c
View file @
3fcab6f1
...
...
@@ -869,7 +869,8 @@ void print_help(int mode) {
"
\n
"
" In this mode you can set X11VNC_SKIP_DISPLAY to a comma
\n
"
" separated list of displays (e.g.
\"
:0,:1
\"
) to ignore
\n
"
" in the finding process.
\n
"
" in the finding process. This can also be set by the
\n
"
" user via
\"
nd=
\"
using
\"
-
\"
instead of
\"
,
\"\n
"
"
\n
"
" An interesting option is WAIT:cmd=FINDCREATEDISPLAY
\n
"
" that is like FINDDISPLAY in that is uses the same method
\n
"
...
...
@@ -906,6 +907,10 @@ void print_help(int mode) {
"
\n
"
" Where /.../x11vnc is the full path to x11vnc.
\n
"
"
\n
"
" If for some reason you do not want x11vnc to ever
\n
"
" try to find an existing display set the env. var
\n
"
" X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 (also -env ...)
\n
"
"
\n
"
" Use WAIT:cmd=FINDCREATEDISPLAY-print to print out the
\n
"
" script used. You can specify the preferred order via
\n
"
" e.g., WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb,X and/or
\n
"
...
...
@@ -1643,6 +1648,28 @@ void print_help(int mode) {
" If you want to limit which users this will be done for,
\n
"
" provide them as a comma separated list after
\"
unixpw=
\"\n
"
"
\n
"
" Similarly, in -ssl mode, if
\"
-users sslpeer=
\"
is
\n
"
" supplied then after an SSL client authenticates with his
\n
"
" cert (the -sslverify option is required for this) x11vnc
\n
"
" will extract a UNIX username from the
\"
emailAddress
\"\n
"
" field (username@hostname.com) of the
\"
Subject
\"
in the
\n
"
" x509 SSL cert and then try to switch to that user as
\n
"
" though
\"
-users +username
\"
had been supplied. If you
\n
"
" want to limit which users this will be done for, provide
\n
"
" them as a comma separated list after
\"
sslpeer=
\"
.
\n
"
" Set the env. var X11VNC_SSLPEER_CN to use the Common
\n
"
" Name (normally a hostname) instead of the Email field.
\n
"
" NOTE: the x11vnc administrator must take great care
\n
"
" that any client certs he adds to -sslverify have the
\n
"
" correct UNIX username in the
\"
emailAddress
\"
field
\n
"
" of the cert. Otherwise a user may be able to log in
\n
"
" as another. The following command can be of use in
\n
"
" checking:
\"
openssl x509 -text -in file.crt
\"
, see the
\n
"
"
\"
Subject:
\"
line. Also, along with the normal RFB_*
\n
"
" env. vars. (see -accept) passed to external cmd=
\n
"
" commands, RFB_SSL_CLIENT_CERT will be set to the
\n
"
" client's x509 certificate string.
\n
"
"
\n
"
" To immediately switch to a user *before* connections
\n
"
" to the X display are made or any files opened use the
\n
"
"
\"
=
\"
character:
\"
-users =bob
\"
. That user needs to
\n
"
...
...
@@ -2175,6 +2202,8 @@ void print_help(int mode) {
" for rapid retrieval. So a W x H frambuffer is expanded
\n
"
" to a W x (n+1)*H one. Use 0 to disable. Default: XXX.
\n
"
"
\n
"
" The
\"
n
\"
is actually optional, the default is 10.
\n
"
"
\n
"
" For this and the other -ncache* options below you can
\n
"
" abbreviate
\"
-ncache
\"
with
\"
-nc
\"
. Also,
\"
-nonc
\"\n
"
" is the same as
\"
-ncache 0
\"\n
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/README
View file @
3fcab6f1
...
...
@@ -234,9 +234,9 @@ Solaris, FreeBSD, etc. Unpack your archive and see the subdirectories of
./bin
for the ones that were shipped in this project, e.g. ./bin/Linux.i686
Run "uname -sm" to see your OS+arch combination
. (See th
e
./bin/ssvnc_cmd -h output for how to override platform autodection
via the UNAME env. var).
Run "uname -sm" to see your OS+arch combination
(n.b. all Linux x86 ar
e
mapped to Linux.i686). (See the ./bin/ssvnc_cmd -h output for how to
override platform autodection
via the UNAME env. var).
External Dependencies:
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/bin/ssvnc
View file @
3fcab6f1
...
...
@@ -25,16 +25,12 @@ if [ "X$FULLNAME" = "XKarl J. Runge" ]; then
VNCVIEWER_POPUP_FIX
=
1
export
VNCVIEWER_POPUP_FIX
#if uname -smr | grep 'Linux 2\.4.*i686' > /dev/null; then
# UNAME="Linux.i686.older"
# export UNAME
#fi
PATH
=
`
echo
"
$PATH
"
|
sed
-e
's,runge/bin/override,-------------,'
`
fi
if
[
"X
$WISH
"
=
"X"
]
;
then
WISH
=
wish
for
try
in
wish wish8.3 wish8.4 wish8.5
for
try
in
wish wish8.3 wish8.4 wish8.5
wish8.6
do
if
type
$try
>
/dev/null
;
then
WISH
=
$try
...
...
@@ -53,7 +49,7 @@ export SSVNC_LAUNCH
#
name
=
$UNAME
if
[
"X
$name
"
=
"X"
]
;
then
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
`
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
-e
's/Linux\.i.86/Linux.i686/'
`
fi
f
=
"
$0
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/bin/ssvnc_cmd
View file @
3fcab6f1
...
...
@@ -113,7 +113,7 @@ fi
#
name
=
$UNAME
if
[
"X
$name
"
=
"X"
]
;
then
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
`
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
-e
's/Linux\.i.86/Linux.i686/'
`
fi
f
=
"
$0
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl
View file @
3fcab6f1
...
...
@@ -2760,7 +2760,7 @@ proc launch_unix {hp} {
global env
set env
(
SS_VNCVIEWER_RM
)
$passwdfile
}
else
{
catch
{
exec
sh -c
"sleep 15; rm
$passwdfile
"
&
}
catch
{
exec
sh -c
"sleep 15; rm
$passwdfile
2>/dev/null
"
&
}
}
if
{
$darwin
_cotvnc
}
{
set cmd
"
$cmd
--PasswordFile
$passwdfile
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/build.unix
View file @
3fcab6f1
...
...
@@ -49,7 +49,7 @@ fi
#
name
=
$UNAME
if
[
"X
$name
"
=
"X"
]
;
then
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
`
name
=
`
uname
-sm
|
sed
-e
's/ /./g'
-e
's/Linux\.i.86/Linux.i686/'
`
fi
if
[
"X
$name
"
=
"X"
]
;
then
echo
"cannot determine platform: os.arch, e.g. Linux.i686"
...
...
@@ -71,7 +71,8 @@ if [ -d $dest ]; then
if
[
"X
$x
"
=
"Xn"
]
;
then
exit
fi
rm
-rf
$dest
rm
-f
$dest
/
*
stunnel
*
rm
-f
$dest
/
*
vncviewer
*
fi
mkdir
-p
$dest
||
exit
1
...
...
This diff is collapsed.
Click to expand it.
x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-full.patch
View file @
3fcab6f1
...
...
@@ -5557,507 +5557,6 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/tight.c vnc_unixsrc/vncviewer
return True;
}
diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/vncviewer._man vnc_unixsrc/vncviewer/vncviewer._man
--- vnc_unixsrc.orig/vncviewer/vncviewer._man 1969-12-31 19:00:00.000000000 -0500
+++ vnc_unixsrc/vncviewer/vncviewer._man 2007-03-20 10:11:33.000000000 -0400
@@ -0,0 +1,497 @@
+'\" t
+.\" ** The above line should force tbl to be a preprocessor **
+.\" Man page for X vncviewer
+.\"
+.\" Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de
+.\" Copyright (C) 2000,2001 Red Hat, Inc.
+.\" Copyright (C) 2001-2003 Constantin Kaplinsky <const@ce.cctpu.edu.ru>
+.\"
+.\" You may distribute under the terms of the GNU General Public
+.\" License as specified in the file LICENCE.TXT that comes with the
+.\" TightVNC distribution.
+.\"
+.TH vncviewer 1 "January 2003" "" "TightVNC"
+.SH NAME
+vncviewer \- an X viewer client for VNC
+.SH SYNOPSIS
+.B vncviewer
+.RI [\| options \|]
+.RI [\| host \|][\| :display \|]
+.br
+.B vncviewer
+.RI [\| options \|]
+.RI [\| host \|][\| ::port \|]
+.br
+.B vncviewer
+.RI [\| options \|]
+.IR \-listen
+.RI [\| display \|]
+.br
+.B vncviewer
+.IR \-help
+.br
+.SH DESCRIPTION
+.B vncviewer
+is an Xt\-based client application for the VNC (Virtual Network
+Computing) system. It can connect to any VNC\-compatible server such
+as \fBXvnc\fR or WinVNC, allowing you to control desktop environment
+of a different machine.
+
+You can use F8 to display a pop\-up utility menu. Press F8 twice to
+pass single F8 to the remote side.
+.SH OPTIONS
+.TP
+\fB\-help\fR
+Prints a short usage notice to stderr.
+.TP
+\fB\-listen\fR
+Make the viewer listen on port 5500+\fIdisplay\fR for reverse
+connections from a server. WinVNC supports reverse connections using
+the "Add New Client" menu option, or the \-connect command line
+option. \fBXvnc\fR requires the use of the helper program
+\fBvncconnect\fR.
+.TP
+\fB\-via\fR \fIgateway\fR
+Automatically create encrypted TCP tunnel to the \fIgateway\fR machine
+before connection, connect to the \fIhost\fR through that tunnel
+(TightVNC\-specific). By default, this option invokes SSH local port
+forwarding, assuming that SSH client binary can be accessed as
+/usr/bin/ssh. Note that when using the \fB\-via\fR option, the host
+machine name should be specified as known to the gateway machine, e.g.
+"localhost" denotes the \fIgateway\fR, not the machine where vncviewer
+was launched. See the ENVIRONMENT section below for the information on
+configuring the \fB\-via\fR option.
+.TP
+\fB\-shared\fR
+When connecting, specify that a shared connection is requested. In
+TightVNC, this is the default mode, allowing you to share the desktop
+with other clients already using it.
+.TP
+\fB\-noshared\fR
+When connecting, specify that the session may not be shared. This
+would either disconnect other connected clients or refuse your
+connection, depending on the server configuration.
+.TP
+\fB\-viewonly\fR
+Disable transfer of mouse and keyboard events from the client to the
+server.
+.TP
+\fB\-fullscreen\fR
+Start in full\-screen mode. Please be aware that operating in
+full\-screen mode may confuse X window managers. Typically, such
+conflicts cause incorrect handling of input focus or make the viewer
+window disappear mysteriously. See the grabKeyboard setting in the
+RESOURCES section below for a method to solve input focus problem.
+.TP
+\fB\-noraiseonbeep\fR
+By default, the viewer shows and raises its window on remote beep
+(bell) event. This option disables such behaviour
+(TightVNC\-specific).
+.TP
+\fB\-user\fR \fIusername\fR
+User name for Unix login authentication. Default is to use current
+Unix user name. If this option was given, the viewer will prefer Unix
+login authentication over the standard VNC authentication.
+.TP
+\fB\-passwd\fR \fIpasswd\-file\fR
+File from which to get the password (as generated by the
+\fBvncpasswd\fR(1) program). This option affects only the standard VNC
+authentication.
+.TP
+\fB\-encodings\fR \fIencoding\-list\fR
+TightVNC supports several different compression methods to encode
+screen updates; this option specifies a set of them to use in order of
+preference. Encodings are specified separated with spaces, and must
+thus be enclosed in quotes if more than one is specified. Available
+encodings, in default order for a remote connection, are "copyrect
+tight hextile zlib corre rre raw". For a local connection (to the same
+machine), the default order to try is "raw copyrect tight hextile zlib
+corre rre". Raw encoding is always assumed as a last option if no
+other encoding can be used for some reason. For more information on
+encodings, see the section ENCODINGS below.
+.TP
+\fB\-bgr233\fR
+Always use the BGR233 format to encode pixel data. This reduces
+network traffic, but colors may be represented inaccurately. The
+bgr233 format is an 8\-bit "true color" format, with 2 bits blue, 3
+bits green, and 3 bits red.
+.TP
+\fB\-owncmap\fR
+Try to use a PseudoColor visual and a private colormap. This allows
+the VNC server to control the colormap.
+.TP
+\fB\-truecolour\fR, \fB\-truecolor\fR
+Try to use a TrueColor visual.
+.TP
+\fB\-depth\fR \fIdepth\fR
+On an X server which supports multiple TrueColor visuals of different
+depths, attempt to use the specified one (in bits per pixel); if
+successful, this depth will be requested from the VNC server.
+.TP
+\fB\-compresslevel \fIlevel\fR
+Use specified compression \fIlevel\fR (0..9) for "tight" and "zlib"
+encodings (TightVNC\-specific). Level 1 uses minimum of CPU time and
+achieves weak compression ratios, while level 9 offers best
+compression but is slow in terms of CPU time consumption on the server
+side. Use high levels with very slow network connections, and low
+levels when working over high\-speed LANs. It's not recommended to use
+compression level 0, reasonable choices start from the level 1.
+.TP
+\fB\-quality \fIlevel\fR
+Use the specified JPEG quality \fIlevel\fR (0..9) for the "tight"
+encoding (TightVNC\-specific). Quality level 0 denotes bad image
+quality but very impressive compression ratios, while level 9 offers
+very good image quality at lower compression ratios. Note that the
+"tight" encoder uses JPEG to encode only those screen areas that look
+suitable for lossy compression, so quality level 0 does not always
+mean unacceptable image quality.
+.TP
+\fB\-nojpeg\fR
+Disable lossy JPEG compression in Tight encoding (TightVNC\-specific).
+Disabling JPEG compression is not a good idea in typical cases, as
+that makes the Tight encoder less efficient. You might want to use
+this option if it's absolutely necessary to achieve perfect image
+quality (see also the \fB\-quality\fR option).
+.TP
+\fB\-nocursorshape\fR
+Disable cursor shape updates, protocol extensions used to handle
+remote cursor movements locally on the client side
+(TightVNC\-specific). Using cursor shape updates decreases delays with
+remote cursor movements, and can improve bandwidth usage dramatically.
+.TP
+\fB\-x11cursor\fR
+Use a real X11 cursor with X-style cursor shape updates, instead of
+drawing the remote cursor on the framebuffer. This option also
+disables the dot cursor, and disables cursor position updates in
+non-fullscreen mode.
+.TP
+\fB\-autopass\fR
+Read a plain-text password from stdin. This option affects only the
+standard VNC authentication.
+
+.SH Enhanced TightVNC Viewer OPTIONS
+.TP
+Enhanced TightVNC Viewer web page is located at:
+.TP
+http://www.karlrunge.com/x11vnc/ssvnc.html
+.TP
+Note: ZRLE encoding is now supported.
+.TP
+Note: F9 is shortcut to Toggle FullScreen mode.
+.TP
+\fB\-use64\fR
+In \fB\-bgr233\fR mode, use 64 colors instead of 256.
+.TP
+\fB\-bgr222\fR
+Same as \fB\-use64\fR.
+.TP
+\fB\-use8\fR
+In \fB\-bgr233\fR mode, use 8 colors instead of 256.
+.TP
+\fB\-bgr111\fR
+Same as \fB\-use8\fR.
+.TP
+\fB\-16bpp\fR
+If the vnc viewer X display is depth 24 at 32bpp
+request a 16bpp format from the VNC server to cut
+network traffic by up to 2X, then tranlate the
+pixels to 32bpp locally.
+.TP
+\fB\-bgr565\fR
+Same as \fB\-16bpp\fR.
+.TP
+\fB\-alpha\fR
+Use alphablending transparency for local cursors
+requires: x11vnc server, both client and server
+must be 32bpp and same endianness.
+.TP
+\fB\-ycrop\fR n
+Only show the top n rows of the framebuffer. For
+use with x11vnc \fB\-ncache\fR client caching option
+to help "hide" the pixel cache region.
+Use a negative value (e.g. \fB\-1\fR) for autodetection.
+Autodetection will always take place if the remote
+fb height is more than 2 times the width.
+.TP
+\fB\-sbwidth\fR n
+Scrollbar width, default is very narrow: 2 pixels,
+it is narrow to avoid distraction in \fB\-ycrop\fR mode.
+.TP
+\fB\-rawlocal\fR
+Prefer raw encoding for localhost, default is
+no, i.e. assumes you have a SSH tunnel instead.
+.TP
+\fB\-graball\fR
+Grab the entire X server when in fullscreen mode,
+needed by some old window managers like fvwm2.
+.TP
+\fB\-popupfix\fR
+Warp the popup back to the pointer position,
+needed by some old window managers like fvwm2.
+.TP
+\fB\-grabkbd\fR
+Grab the X keyboard when in fullscreen mode,
+needed by some window managers. Same as \fB\-grabkeyboard\fR.
+\fB\-grabkbd\fR is the default, use \fB\-nograbkbd\fR to disable.
+.TP
+\fB\-bs/-nobs\fR
+Whether or not to use X server Backingstore for the
+main viewer window. The default is to not, mainly
+because most Linux, etc, systems X servers disable
+*all* Backingstore by default. To re-enable it put
+
+Option "Backingstore"
+
+in the Device section of /etc/X11/xorg.conf.
+In -bs mode with no X server backingstore, whenever an
+area of the screen is re-exposed it must go out to the
+VNC server to retrieve the pixels. This is too slow.
+
+In -nobs mode, memory is allocated by the viewer to
+provide its own backing of the main viewer window. This
+actually makes some activities faster (changes in large
+regions) but can appear to "flash" too much.
+.TP
+\fB\-noshm\fR
+Disable use of MIT shared memory extension (not recommended)
+.TP
+\fB New Popup actions:\fR
+
+ Cursor Shape: ~ -nocursorshape
+ X11 Cursor: ~ -x11cursor
+ Cursor Alphablend: ~ -alpha
+ Disable JPEG: ~ -nojpeg
+ Prefer raw for localhost ~ -rawlocal
+ Full Color as many colors as local screen allows.
+ Grey scale (16 & 8-bpp) ~ -grey, for low colors 16/8bpp modes only.
+ 16 bit color (BGR565) ~ -bgr565
+ 8 bit color (BGR233) ~ -bgr233
+ 256 colors ~ -bgr233 default # of colors.
+ 64 colors ~ -bgr222 / -use64
+ 8 colors ~ -bgr111 / -use8
+
+
+ Disable Remote Input Ultravnc ext. Try to prevent input and
+ viewing of monitor at physical display.
+ Single Window Ultravnc ext. Grab and a single window.
+ (click on the window you want).
+ Set 1/n Server Scale Ultravnc ext. Scale desktop by 1/n.
+ prompt is from the terminal.
+ Text Chat Ultravnc ext. Do Text Chat, currently
+ input via the terminal (no window).
+
+ Note: the Ultravnc extensions only apply to servers that support
+ them. x11vnc/libvncserver supports some of them.
+
+.SH ENCODINGS
+The server supplies information in whatever format is desired by the
+client, in order to make the client as easy as possible to implement.
+If the client represents itself as able to use multiple formats, the
+server will choose one.
+
+.I Pixel format
+refers to the representation of an individual pixel. The most common
+formats are 24 and 16 bit "true\-color" values, and 8\-bit "color map"
+representations, where an arbitrary map converts the color number to
+RGB values.
+
+.I Encoding
+refers to how a rectangle of pixels are sent (all pixel information in
+VNC is sent as rectangles). All rectangles come with a header giving
+the location and size of the rectangle and an encoding type used by
+the data which follows. These types are listed below.
+.TP
+.B Raw
+The raw encoding simply sends width*height pixel values. All clients
+are required to support this encoding type. Raw is also the fastest
+when the server and viewer are on the same machine, as the connection
+speed is essentially infinite and raw encoding minimizes processing
+time.
+.TP
+.B CopyRect
+The Copy Rectangle encoding is efficient when something is being
+moved; the only data sent is the location of a rectangle from which
+data should be copied to the current location. Copyrect could also be
+used to efficiently transmit a repeated pattern.
+.TP
+.B RRE
+The Rise\-and\-Run\-length\-Encoding is basically a 2D version of
+run\-length encoding (RLE). In this encoding, a sequence of identical
+pixels are compressed to a single value and repeat count. In VNC, this
+is implemented with a background color, and then specifications of an
+arbitrary number of subrectangles and color for each. This is an
+efficient encoding for large blocks of constant color.
+.TP
+.B CoRRE
+This is a minor variation on RRE, using a maximum of 255x255 pixel
+rectangles. This allows for single\-byte values to be used, reducing
+packet size. This is in general more efficient, because the savings
+from sending 1\-byte values generally outweighs the losses from the
+(relatively rare) cases where very large regions are painted the same
+color.
+.TP
+.B Hextile
+Here, rectangles are split up in to 16x16 tiles, which are sent in a
+predetermined order. The data within the tiles is sent either raw or
+as a variant on RRE. Hextile encoding is usually the best choice for
+using in high\-speed network environments (e.g. Ethernet local\-area
+networks).
+.TP
+.B Zlib
+Zlib is a very simple encoding that uses zlib library to compress raw
+pixel data. This encoding achieves good compression, but consumes a
+lot of CPU time. Support for this encoding is provided for
+compatibility with VNC servers that might not understand Tight
+encoding which is more efficient than Zlib in nearly all real\-life
+situations.
+.TP
+.B Tight
+Like Zlib encoding, Tight encoding uses zlib library to compress the
+pixel data, but it pre\-processes data to maximize compression ratios,
+and to minimize CPU usage on compression. Also, JPEG compression may
+be used to encode color\-rich screen areas (see the description of
+\-quality and \-nojpeg options above). Tight encoding is usually the
+best choice for low\-bandwidth network environments (e.g. slow modem
+connections).
+.SH RESOURCES
+X resources that \fBvncviewer\fR knows about, aside from the
+normal Xt resources, are as follows:
+.TP
+.B shareDesktop
+Equivalent of \fB\-shared\fR/\fB\-noshared\fR options. Default true.
+.TP
+.B viewOnly
+Equivalent of \fB\-viewonly\fR option. Default false.
+.TP
+.B fullScreen
+Equivalent of \fB\-fullscreen\fR option. Default false.
+.TP
+.B grabKeyboard
+Grab keyboard in full-screen mode. This can help to solve problems
+with losing keyboard focus. Default false.
+.TP
+.B raiseOnBeep
+Equivalent of \fB\-noraiseonbeep\fR option, when set to false. Default
+true.
+.TP
+.B passwordFile
+Equivalent of \fB\-passwd\fR option.
+.TP
+.B userLogin
+Equivalent of \fB\-user\fR option.
+.TP
+.B passwordDialog
+Whether to use a dialog box to get the password (true) or get it from
+the tty (false). Irrelevant if \fBpasswordFile\fR is set. Default
+false.
+.TP
+.B encodings
+Equivalent of \fB\-encodings\fR option.
+.TP
+.B compressLevel
+Equivalent of \fB\-compresslevel\fR option (TightVNC\-specific).
+.TP
+.B qualityLevel
+Equivalent of \fB\-quality\fR option (TightVNC\-specific).
+.TP
+.B enableJPEG
+Equivalent of \fB\-nojpeg\fR option, when set to false. Default true.
+.TP
+.B useRemoteCursor
+Equivalent of \fB\-nocursorshape\fR option, when set to false
+(TightVNC\-specific). Default true.
+.TP
+.B useBGR233
+Equivalent of \fB\-bgr233\fR option. Default false.
+.TP
+.B nColours
+When using BGR233, try to allocate this many "exact" colors from the
+BGR233 color cube. When using a shared colormap, setting this resource
+lower leaves more colors for other X clients. Irrelevant when using
+truecolor. Default is 256 (i.e. all of them).
+.TP
+.B useSharedColours
+If the number of "exact" BGR233 colors successfully allocated is less
+than 256 then the rest are filled in using the "nearest" colors
+available. This resource says whether to only use the "exact" BGR233
+colors for this purpose, or whether to use other clients' "shared"
+colors as well. Default true (i.e. use other clients' colors).
+.TP
+.B forceOwnCmap
+Equivalent of \fB\-owncmap\fR option. Default false.
+.TP
+.B forceTrueColour
+Equivalent of \fB\-truecolour\fR option. Default false.
+.TP
+.B requestedDepth
+Equivalent of \fB\-depth\fR option.
+.TP
+.B useSharedMemory
+Use MIT shared memory extension if on the same machine as the X
+server. Default true.
+.TP
+.B wmDecorationWidth, wmDecorationHeight
+The total width and height taken up by window manager decorations.
+This is used to calculate the maximum size of the VNC viewer window.
+Default is width 4, height 24.
+.TP
+.B bumpScrollTime, bumpScrollPixels
+When in full screen mode and the VNC desktop is bigger than the X
+display, scrolling happens whenever the mouse hits the edge of the
+screen. The maximum speed of scrolling is bumpScrollPixels pixels
+every bumpScrollTime milliseconds. The actual speed of scrolling will
+be slower than this, of course, depending on how fast your machine is.
+Default 20 pixels every 25 milliseconds.
+.TP
+.B popupButtonCount
+The number of buttons in the popup window. See the README file for
+more information on how to customize the buttons.
+.TP
+.B debug
+For debugging. Default false.
+.TP
+.B rawDelay, copyRectDelay
+For debugging, see the README file for details. Default 0 (off).
+.SH ENVIRONMENT
+When started with the \fB\-via\fR option, vncviewer reads the
+\fBVNC_VIA_CMD\fR environment variable, expands patterns beginning
+with the "%" character, and executes result as a command assuming that
+it would create TCP tunnel that should be used for VNC connection. If
+not set, this environment variable defaults to "/usr/bin/ssh -f -L
+%L:%H:%R %G sleep 20".
+
+The following patterns are recognized in the \fBVNC_VIA_CMD\fR (note
+that all the patterns %G, %H, %L and %R must be present in the command
+template):
+.TP
+.B %%
+A literal "%";
+.TP
+.B %G
+gateway host name;
+.TP
+.B %H
+remote VNC host name, as known to the gateway;
+.TP
+.B %L
+local TCP port number;
+.TP
+.B %R
+remote TCP port number.
+.SH SEE ALSO
+\fBvncserver\fR(1), \fBXvnc\fR(1), \fBvncpasswd\fR(1),
+\fBvncconnect\fR(1), \fBssh\fR(1)
+.SH AUTHORS
+Original VNC was developed in AT&T Laboratories Cambridge. TightVNC
+additions was implemented by Constantin Kaplinsky. Many other people
+participated in development, testing and support.
+
+\fBMan page authors:\fR
+.br
+Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>,
+.br
+Terran Melconian <terran@consistent.org>,
+.br
+Tim Waugh <twaugh@redhat.com>,
+.br
+Constantin Kaplinsky <const@ce.cctpu.edu.ru>
diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/vncviewer.c vnc_unixsrc/vncviewer/vncviewer.c
--- vnc_unixsrc.orig/vncviewer/vncviewer.c 2004-01-13 09:22:05.000000000 -0500
+++ vnc_unixsrc/vncviewer/vncviewer.c 2007-04-10 14:14:58.000000000 -0400
...
...
This diff is collapsed.
Click to expand it.
x11vnc/options.c
View file @
3fcab6f1
...
...
@@ -220,6 +220,7 @@ int ncache_pad = 0;
#endif
int
ncache_xrootpmap
=
NCACHE_XROOTPMAP
;
int
ncache0
=
0
;
int
ncache_default
=
10
;
int
ncache_copyrect
=
0
;
int
ncache_wf_raises
=
1
;
int
ncache_dt_change
=
1
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/options.h
View file @
3fcab6f1
...
...
@@ -162,6 +162,7 @@ extern int wireframe_in_progress;
extern
int
ncache
;
extern
int
ncache0
;
extern
int
ncache_default
;
extern
int
ncache_copyrect
;
extern
int
ncache_wf_raises
;
extern
int
ncache_dt_change
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/sslhelper.c
View file @
3fcab6f1
...
...
@@ -1315,6 +1315,11 @@ if (db) fprintf(stderr, "buf: '%s'\n", buf);
return
1
;
}
static
char
*
certret
=
NULL
;
static
int
certret_fd
=
-
1
;
static
mode_t
omode
;
char
*
certret_str
=
NULL
;
void
accept_openssl
(
int
mode
,
int
presock
)
{
int
sock
=
-
1
,
listen
=
-
1
,
cport
,
csock
,
vsock
;
int
status
,
n
,
i
,
db
=
0
;
...
...
@@ -1456,6 +1461,23 @@ void accept_openssl(int mode, int presock) {
name
=
NULL
;
}
if
(
certret
)
{
free
(
certret
);
}
if
(
certret_str
)
{
free
(
certret_str
);
certret_str
=
NULL
;
}
certret
=
strdup
(
"/tmp/x11vnc-certret.XXXXXX"
);
omode
=
umask
(
077
);
certret_fd
=
mkstemp
(
certret
);
umask
(
omode
);
if
(
certret_fd
<
0
)
{
free
(
certret
);
certret
=
NULL
;
certret_fd
=
-
1
;
}
/* now fork the child to handle the SSL: */
pid
=
fork
();
...
...
@@ -1785,6 +1807,7 @@ if (db) fprintf(stderr, "iface: %s\n", iface);
signal
(
SIGALRM
,
SIG_DFL
);
close
(
csock
);
if
(
vsock
<
0
)
{
rfbLog
(
"SSL: accept_openssl: connection from ssl_helper failed.
\n
"
);
rfbLogPerror
(
"accept"
);
...
...
@@ -1794,11 +1817,42 @@ if (db) fprintf(stderr, "iface: %s\n", iface);
if
(
mode
==
OPENSSL_INETD
||
ssl_no_fail
)
{
clean_up_exit
(
1
);
}
if
(
certret_fd
>=
0
)
{
close
(
certret_fd
);
certret_fd
=
-
1
;
}
if
(
certret
)
{
unlink
(
certret
);
}
return
;
}
if
(
db
)
fprintf
(
stderr
,
"accept_openssl: vsock: %d
\n
"
,
vsock
);
n
=
read
(
vsock
,
rcookie
,
strlen
(
cookie
));
if
(
certret
)
{
struct
stat
sbuf
;
sbuf
.
st_size
=
0
;
if
(
certret_fd
>=
0
&&
stat
(
certret
,
&
sbuf
)
==
0
&&
sbuf
.
st_size
>
0
)
{
certret_str
=
(
char
*
)
malloc
(
sbuf
.
st_size
+
1
);
read
(
certret_fd
,
certret_str
,
sbuf
.
st_size
);
close
(
certret_fd
);
certret_fd
=
-
1
;
}
if
(
certret_fd
>=
0
)
{
close
(
certret_fd
);
certret_fd
=
-
1
;
}
unlink
(
certret
);
if
(
certret_str
&&
strstr
(
certret_str
,
"NOCERT"
)
==
certret_str
)
{
free
(
certret_str
);
certret_str
=
NULL
;
}
if
(
0
&&
certret_str
)
{
fprintf
(
stderr
,
"certret_str[%d]:
\n
%s
\n
"
,
sbuf
.
st_size
,
certret_str
);
}
}
if
(
n
!=
(
int
)
strlen
(
cookie
)
||
strncmp
(
cookie
,
rcookie
,
n
))
{
rfbLog
(
"SSL: accept_openssl: cookie from ssl_helper failed. %d
\n
"
,
n
);
if
(
errno
!=
0
)
{
...
...
@@ -2065,6 +2119,30 @@ if (db > 1) fprintf(stderr, "ssl_init: 4\n");
}
rfbLog
(
"SSL: ssl_helper[%d]: SSL_accept() succeeded for: %s
\n
"
,
getpid
(),
name
);
if
(
SSL_get_verify_result
(
ssl
)
==
X509_V_OK
)
{
X509
*
x
;
FILE
*
cr
=
NULL
;
if
(
certret
!=
NULL
)
{
cr
=
fopen
(
certret
,
"w"
);
}
x
=
SSL_get_peer_certificate
(
ssl
);
if
(
x
==
NULL
)
{
rfbLog
(
"SSL: ssl_helper[%d]: accepted client %s x509 peer cert is null
\n
"
,
getpid
(),
name
);
if
(
cr
!=
NULL
)
{
fprintf
(
cr
,
"NOCERT
\n
"
);
fclose
(
cr
);
}
}
else
{
rfbLog
(
"SSL: ssl_helper[%d]: accepted client %s x509 cert is:
\n
"
,
getpid
(),
name
);
X509_print_ex_fp
(
stderr
,
x
,
0
,
XN_FLAG_MULTILINE
);
if
(
cr
!=
NULL
)
{
X509_print_ex_fp
(
cr
,
x
,
0
,
XN_FLAG_MULTILINE
);
fclose
(
cr
);
}
}
}
free
(
name
);
return
1
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/sslhelper.h
View file @
3fcab6f1
...
...
@@ -14,6 +14,7 @@ extern int openssl_port_num;
extern
int
https_sock
;
extern
pid_t
openssl_last_helper_pid
;
extern
char
*
openssl_last_ip
;
extern
char
*
certret_str
;
extern
void
raw_xfer
(
int
csock
,
int
s_in
,
int
s_out
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/ssltools.h
View file @
3fcab6f1
...
...
@@ -1295,7 +1295,7 @@ char create_display[] =
"
\n
"
"have_root=
\"\"\n
"
"id0=`id`
\n
"
"if id | grep -w root > /dev/null; then
\n
"
"if id |
sed -e 's/ gid.*$//' |
grep -w root > /dev/null; then
\n
"
" have_root=
\"
1
\"\n
"
"fi
\n
"
"
\n
"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/user.c
View file @
3fcab6f1
...
...
@@ -29,11 +29,11 @@ static void switch_user_task_dummy(void);
static
void
switch_user_task_solid_bg
(
void
);
static
char
*
get_login_list
(
int
with_display
);
static
char
**
user_list
(
char
*
user_str
);
static
void
user2uid
(
char
*
user
,
uid_t
*
uid
,
char
**
name
,
char
**
home
);
static
void
user2uid
(
char
*
user
,
uid_t
*
uid
,
gid_t
*
gid
,
char
**
name
,
char
**
home
);
static
int
lurk
(
char
**
users
);
static
int
guess_user_and_switch
(
char
*
str
,
int
fb_mode
);
static
int
try_user_and_display
(
uid_t
uid
,
char
*
dpystr
);
static
int
switch_user_env
(
uid_t
uid
,
char
*
name
,
char
*
home
,
int
fb_mode
);
static
int
try_user_and_display
(
uid_t
uid
,
gid_t
gid
,
char
*
dpystr
);
static
int
switch_user_env
(
uid_t
uid
,
gid_t
gid
,
char
*
name
,
char
*
home
,
int
fb_mode
);
static
void
try_to_switch_users
(
void
);
...
...
@@ -236,7 +236,7 @@ static char **user_list(char *user_str) {
return
list
;
}
static
void
user2uid
(
char
*
user
,
uid_t
*
uid
,
char
**
name
,
char
**
home
)
{
static
void
user2uid
(
char
*
user
,
uid_t
*
uid
,
gid_t
*
gid
,
char
**
name
,
char
**
home
)
{
int
numerical
=
1
;
char
*
q
;
...
...
@@ -271,6 +271,7 @@ static void user2uid(char *user, uid_t *uid, char **name, char **home) {
}
if
(
pw
)
{
*
uid
=
pw
->
pw_uid
;
*
gid
=
pw
->
pw_gid
;
*
name
=
pw
->
pw_name
;
/* n.b. use immediately */
*
home
=
pw
->
pw_dir
;
}
...
...
@@ -281,6 +282,7 @@ static void user2uid(char *user, uid_t *uid, char **name, char **home) {
static
int
lurk
(
char
**
users
)
{
uid_t
uid
;
gid_t
gid
;
int
success
=
0
,
dmin
=
-
1
,
dmax
=
-
1
;
char
*
p
,
*
logins
,
**
u
;
...
...
@@ -390,10 +392,10 @@ static int lurk(char **users) {
}
}
user2uid
(
user
,
&
uid
,
&
name
,
&
home
);
user2uid
(
user
,
&
uid
,
&
gid
,
&
name
,
&
home
);
free
(
t
);
if
(
!
uid
)
{
if
(
!
uid
||
!
gid
)
{
ok
=
0
;
}
...
...
@@ -406,8 +408,8 @@ static int lurk(char **users) {
if
(
dn
>=
0
)
{
sprintf
(
dpystr
,
":%d"
,
dn
);
}
if
(
try_user_and_display
(
uid
,
dpystr
))
{
if
(
switch_user_env
(
uid
,
name
,
home
,
0
))
{
if
(
try_user_and_display
(
uid
,
gid
,
dpystr
))
{
if
(
switch_user_env
(
uid
,
gid
,
name
,
home
,
0
))
{
rfbLog
(
"lurk: now user: %s @ %s
\n
"
,
name
,
dpystr
);
started_as_root
=
2
;
...
...
@@ -539,7 +541,7 @@ static int guess_user_and_switch(char *str, int fb_mode) {
return
ret
;
}
static
int
try_user_and_display
(
uid_t
uid
,
char
*
dpystr
)
{
static
int
try_user_and_display
(
uid_t
uid
,
gid_t
gid
,
char
*
dpystr
)
{
/* NO strtoks */
#if LIBVNCSERVER_HAVE_FORK && LIBVNCSERVER_HAVE_SYS_WAIT_H && LIBVNCSERVER_HAVE_PWD_H
pid_t
pid
,
pidw
;
...
...
@@ -578,7 +580,7 @@ static int try_user_and_display(uid_t uid, char *dpystr) {
signal
(
SIGQUIT
,
SIG_DFL
);
signal
(
SIGTERM
,
SIG_DFL
);
rc
=
switch_user_env
(
uid
,
name
,
home
,
0
);
rc
=
switch_user_env
(
uid
,
gid
,
name
,
home
,
0
);
if
(
!
rc
)
{
exit
(
1
);
}
...
...
@@ -606,6 +608,7 @@ int switch_user(char *user, int fb_mode) {
/* NO strtoks */
int
doit
=
0
;
uid_t
uid
=
0
;
gid_t
gid
=
0
;
char
*
name
,
*
home
;
if
(
*
user
==
'+'
)
{
...
...
@@ -617,20 +620,23 @@ int switch_user(char *user, int fb_mode) {
return
guess_user_and_switch
(
user
,
fb_mode
);
}
user2uid
(
user
,
&
uid
,
&
name
,
&
home
);
user2uid
(
user
,
&
uid
,
&
gid
,
&
name
,
&
home
);
if
(
uid
==
(
uid_t
)
-
1
||
uid
==
0
)
{
return
0
;
}
if
(
gid
==
0
)
{
return
0
;
}
if
(
!
doit
&&
dpy
)
{
/* see if this display works: */
char
*
dstr
=
DisplayString
(
dpy
);
doit
=
try_user_and_display
(
uid
,
dstr
);
doit
=
try_user_and_display
(
uid
,
gid
,
dstr
);
}
if
(
doit
)
{
int
rc
=
switch_user_env
(
uid
,
name
,
home
,
fb_mode
);
int
rc
=
switch_user_env
(
uid
,
gid
,
name
,
home
,
fb_mode
);
if
(
rc
)
{
started_as_root
=
2
;
}
...
...
@@ -640,7 +646,7 @@ int switch_user(char *user, int fb_mode) {
}
}
static
int
switch_user_env
(
uid_t
uid
,
char
*
name
,
char
*
home
,
int
fb_mode
)
{
static
int
switch_user_env
(
uid_t
uid
,
gid_t
gid
,
char
*
name
,
char
*
home
,
int
fb_mode
)
{
/* NO strtoks */
char
*
xauth
;
int
reset_fb
=
0
;
...
...
@@ -657,6 +663,13 @@ static int switch_user_env(uid_t uid, char *name, char *home, int fb_mode) {
clean_shm
(
0
);
free_tiles
();
}
if
(
setgid
(
gid
)
!=
0
)
{
if
(
reset_fb
)
{
/* 2 means we did clean_shm and free_tiles */
do_new_fb
(
2
);
}
return
0
;
}
if
(
setuid
(
uid
)
!=
0
)
{
if
(
reset_fb
)
{
/* 2 means we did clean_shm and free_tiles */
...
...
@@ -1115,6 +1128,7 @@ void user_supplied_opts(char *opts) {
"rotate"
,
"ro"
,
"geometry"
,
"geom"
,
"ge"
,
"noncache"
,
"nc"
,
"nodisplay"
,
"nd"
,
NULL
};
...
...
@@ -1485,12 +1499,89 @@ if (0) db = 1;
int
n
;
int
nodisp
=
0
;
int
saw_xdmcp
=
0
;
char
*
usslpeer
=
NULL
;
memset
(
line1
,
0
,
1024
);
memset
(
line2
,
0
,
16384
);
if
(
users_list
&&
strstr
(
users_list
,
"sslpeer="
)
==
users_list
)
{
int
ok
=
0
;
char
*
u
=
NULL
,
*
upeer
=
NULL
;
if
(
certret_str
)
{
char
*
q
,
*
p
,
*
str
=
strdup
(
certret_str
);
q
=
strstr
(
str
,
"Subject: "
);
if
(
!
q
)
return
0
;
p
=
strstr
(
q
,
"
\n
"
);
if
(
p
)
*
p
=
'\0'
;
q
=
strstr
(
q
,
"CN="
);
if
(
!
q
)
return
0
;
if
(
!
getenv
(
"X11VNC_SSLPEER_CN"
))
{
p
=
q
;
q
=
strstr
(
q
,
"/emailAddress="
);
if
(
!
q
)
q
=
strstr
(
p
,
"/Email="
);
if
(
!
q
)
return
0
;
}
q
=
strstr
(
q
,
"="
);
if
(
!
q
)
return
0
;
q
++
;
p
=
strstr
(
q
,
" "
);
if
(
p
)
*
p
=
'\0'
;
p
=
strstr
(
q
,
"@"
);
if
(
p
)
*
p
=
'\0'
;
p
=
strstr
(
q
,
"/"
);
if
(
p
)
*
p
=
'\0'
;
upeer
=
strdup
(
q
);
if
(
strcmp
(
upeer
,
""
))
{
p
=
upeer
;
while
(
*
p
!=
'\0'
)
{
char
c
=
*
p
;
if
(
!
isalnum
((
int
)
c
))
{
*
p
=
'\0'
;
break
;
}
p
++
;
}
if
(
strcmp
(
upeer
,
""
))
{
ok
=
1
;
}
}
}
if
(
!
ok
||
!
upeer
)
{
return
0
;
}
rfbLog
(
"sslpeer unix username extracted from x509 cert: %s
\n
"
,
upeer
);
u
=
(
char
*
)
malloc
(
strlen
(
upeer
+
2
));
u
[
0
]
=
'\0'
;
if
(
!
strcmp
(
users_list
,
"sslpeer="
))
{
sprintf
(
u
,
"+%s"
,
upeer
);
}
else
{
char
*
p
,
*
str
=
strdup
(
users_list
);
p
=
strtok
(
str
+
strlen
(
"sslpeer="
),
","
);
while
(
p
)
{
if
(
!
strcmp
(
p
,
upeer
))
{
sprintf
(
u
,
"+%s"
,
upeer
);
break
;
}
p
=
strtok
(
NULL
,
","
);
}
free
(
str
);
}
if
(
u
[
0
]
==
'\0'
)
{
rfbLog
(
"sslpeer cannot determine user: %s
\n
"
,
upeer
);
free
(
u
);
return
0
;
}
free
(
u
);
usslpeer
=
upeer
;
}
/* only sets environment variables: */
run_user_command
(
""
,
latest_client
,
"env"
,
NULL
,
0
,
NULL
);
if
(
!
strcmp
(
cmd
,
"FINDDISPLAY"
)
||
strstr
(
cmd
,
"FINDCREATEDISPLAY"
)
==
cmd
)
{
char
*
nd
=
""
;
tmp_fd
=
mkstemp
(
tmp
);
if
(
tmp_fd
<
0
)
{
rfbLog
(
"wait_for_client: open failed: %s
\n
"
,
tmp
);
...
...
@@ -1498,7 +1589,12 @@ if (0) db = 1;
clean_up_exit
(
1
);
}
chmod
(
tmp
,
0644
);
write
(
tmp_fd
,
find_display
,
strlen
(
find_display
));
if
(
getenv
(
"X11VNC_FINDDISPLAY_ALWAYS_FAILS"
))
{
char
*
s
=
"#!/bin/sh
\n
echo _FAIL_
\n
exit 1
\n
"
;
write
(
tmp_fd
,
s
,
strlen
(
s
));
}
else
{
write
(
tmp_fd
,
find_display
,
strlen
(
find_display
));
}
close
(
tmp_fd
);
nodisp
=
1
;
...
...
@@ -1536,6 +1632,7 @@ if (!keep_unixpw_opts) {
}
else
if
(
strstr
(
t
,
"failsafe"
))
{
sprintf
(
xsess
,
"failsafe"
);
}
q
=
strstr
(
t
,
"ge="
);
if
(
!
q
)
q
=
strstr
(
t
,
"geom="
);
if
(
!
q
)
q
=
strstr
(
t
,
"geometry="
);
...
...
@@ -1566,28 +1663,60 @@ if (!keep_unixpw_opts) {
}
free
(
t
);
}
set_env
(
"FD_GEOM"
,
geom
);
set_env
(
"FD_SESS"
,
xsess
);
if
(
unixpw
&&
keep_unixpw_user
)
{
create_cmd
=
(
char
*
)
malloc
(
strlen
(
tmp
)
if
(
usslpeer
||
(
unixpw
&&
keep_unixpw_user
))
{
char
*
uu
=
usslpeer
;
if
(
!
uu
)
{
uu
=
keep_unixpw_user
;
}
create_cmd
=
(
char
*
)
malloc
(
strlen
(
tmp
)
+
1
+
strlen
(
"env USER='' "
)
+
strlen
(
"
env FD_SESS
='' "
)
+
strlen
(
"
env FD_GEOM
='' /bin/sh "
)
+
strlen
(
keep_unixpw_user
)
+
1
+
strlen
(
"
FD_GEOM
='' "
)
+
strlen
(
"
FD_SESS
='' /bin/sh "
)
+
strlen
(
uu
)
+
1
+
strlen
(
geom
)
+
1
+
strlen
(
xsess
)
+
1
+
strlen
(
opts
)
+
1
);
sprintf
(
create_cmd
,
"env USER='%s' FD_GEOM='%s' FD_SESS='%s' /bin/sh %s %s"
,
keep_unixpw_user
,
geom
,
xsess
,
tmp
,
opts
);
uu
,
geom
,
xsess
,
tmp
,
opts
);
}
else
{
create_cmd
=
(
char
*
)
malloc
(
strlen
(
tmp
)
+
strlen
(
"/bin/sh "
)
+
1
+
strlen
(
opts
)
+
1
);
sprintf
(
create_cmd
,
"/bin/sh %s %s"
,
tmp
,
opts
);
}
if
(
db
)
fprintf
(
stderr
,
"create_cmd: %s
\n
"
,
create_cmd
);
}
cmd
=
(
char
*
)
malloc
(
strlen
(
tmp
)
+
strlen
(
"/bin/sh "
)
+
1
);
sprintf
(
cmd
,
"/bin/sh %s"
,
tmp
);
if
(
unixpw
&&
keep_unixpw_opts
&&
keep_unixpw_opts
[
0
]
!=
'\0'
)
{
char
*
q
,
*
t
=
keep_unixpw_opts
;
q
=
strstr
(
t
,
"nd="
);
if
(
!
q
)
q
=
strstr
(
t
,
"nodisplay="
);
if
(
q
)
{
char
*
t2
;
q
=
strchr
(
q
,
'='
)
+
1
;
t
=
strdup
(
q
);
q
=
t
;
t2
=
strchr
(
t
,
','
);
if
(
t2
)
*
t2
=
'\0'
;
while
(
*
t
!=
'\0'
)
{
if
(
*
t
==
'-'
)
{
*
t
=
','
;
}
t
++
;
}
if
(
!
strchr
(
q
,
'\''
))
{
if
(
!
quiet
)
rfbLog
(
"set X11VNC_SKIP_DISPLAY: %s
\n
"
,
q
);
nd
=
q
;
}
}
}
cmd
=
(
char
*
)
malloc
(
strlen
(
"env X11VNC_SKIP_DISPLAY='' "
)
+
strlen
(
nd
)
+
strlen
(
tmp
)
+
strlen
(
"/bin/sh "
)
+
1
);
sprintf
(
cmd
,
"env X11VNC_SKIP_DISPLAY='%s' /bin/sh %s"
,
nd
,
tmp
);
}
rfbLog
(
"wait_for_client: running: %s
\n
"
,
cmd
);
...
...
@@ -1605,6 +1734,9 @@ if (db) fprintf(stderr, "create_cmd: %s\n", create_cmd);
}
if
(
db
)
{
fprintf
(
stderr
,
"line: "
);
write
(
2
,
line
,
n
);
write
(
2
,
"
\n
"
,
1
);
fprintf
(
stderr
,
"res=%d n=%d
\n
"
,
res
,
n
);}
if
(
!
res
)
{
rfbLog
(
"wait_for_client: find display cmd failed
\n
"
);
}
if
(
!
res
&&
create_cmd
)
{
FILE
*
mt
=
fopen
(
tmp
,
"w"
);
...
...
@@ -1702,7 +1834,22 @@ if (db) fprintf(stderr, "\n");
FILE
*
p
;
int
rc
;
close_exec_fds
();
p
=
popen
(
cmd
,
"r"
);
if
(
usslpeer
)
{
char
*
c
;
if
(
getuid
()
==
0
)
{
c
=
(
char
*
)
malloc
(
strlen
(
"su - '' -c
\"
"
)
+
strlen
(
usslpeer
)
+
strlen
(
cmd
)
+
1
+
1
);
sprintf
(
c
,
"su - '%s' -c
\"
%s
\"
"
,
usslpeer
,
cmd
);
}
else
{
c
=
strdup
(
cmd
);
}
p
=
popen
(
c
,
"r"
);
free
(
c
);
}
else
{
p
=
popen
(
cmd
,
"r"
);
}
if
(
!
p
)
{
rfbLog
(
"wait_for_client: cmd failed: %s
\n
"
,
cmd
);
rfbLogPerror
(
"popen"
);
...
...
@@ -1722,6 +1869,10 @@ if (db) fprintf(stderr, "\n");
n
=
fread
(
line2
,
1
,
16384
,
p
);
rc
=
pclose
(
p
);
if
(
rc
!=
0
)
{
rfbLog
(
"wait_for_client: find display cmd failed
\n
"
);
}
if
(
create_cmd
&&
rc
!=
0
)
{
FILE
*
mt
=
fopen
(
tmp
,
"w"
);
if
(
!
mt
)
{
...
...
@@ -1767,7 +1918,9 @@ if (db) fprintf(stderr, "line1=%s\n", line1);
if
(
strstr
(
line1
,
"DISPLAY="
)
!=
line1
)
{
rfbLog
(
"wait_for_client: bad reply '%s'
\n
"
,
line1
);
unixpw_msg
(
"No DISPLAY found."
,
3
);
if
(
unixpw
)
{
unixpw_msg
(
"No DISPLAY found."
,
3
);
}
clean_up_exit
(
1
);
}
...
...
@@ -1849,7 +2002,17 @@ fprintf(stderr, "\n");}
}
}
if
(
users_list_save
&&
keep_unixpw_user
)
{
if
(
usslpeer
)
{
char
*
u
=
(
char
*
)
malloc
(
strlen
(
usslpeer
+
2
));
sprintf
(
u
,
"+%s"
,
usslpeer
);
if
(
switch_user
(
u
,
0
))
{
rfbLog
(
"sslpeer switched to user: %s
\n
"
,
usslpeer
);
}
else
{
rfbLog
(
"sslpeer failed to switch to user: %s
\n
"
,
usslpeer
);
}
free
(
u
);
}
else
if
(
users_list_save
&&
keep_unixpw_user
)
{
char
*
user
=
keep_unixpw_user
;
char
*
u
=
(
char
*
)
malloc
(
strlen
(
user
)
+
1
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc.1
View file @
3fcab6f1
...
...
@@ -2,7 +2,7 @@
.TH X11VNC "1" "April 2007" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.9.1, lastmod: 2007-04-
18
version: 0.9.1, lastmod: 2007-04-
27
.SH SYNOPSIS
.B x11vnc
[OPTION]...
...
...
@@ -1016,7 +1016,8 @@ It is used in the Apache SSL-portal example (see FAQ).
.IP
In this mode you can set X11VNC_SKIP_DISPLAY to a comma
separated list of displays (e.g. ":0,:1") to ignore
in the finding process.
in the finding process. This can also be set by the
user via "nd=" using "-" instead of ","
.IP
An interesting option is WAIT:cmd=FINDCREATEDISPLAY
that is like FINDDISPLAY in that is uses the same method
...
...
@@ -1055,6 +1056,10 @@ on the machine. E.g. a desktop service:
.IP
Where /.../x11vnc is the full path to x11vnc.
.IP
If for some reason you do not want x11vnc to ever
try to find an existing display set the env. var
X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 (also \fB-env\fR ...)
.IP
Use WAIT:cmd=FINDCREATEDISPLAY-print to print out the
script used. You can specify the preferred order via
e.g., WAIT:cmd=FINDCREATEDISPLAY-Xdummy,Xvfb,X and/or
...
...
@@ -1866,6 +1871,28 @@ user as though "\fB-users\fR \fI+username\fR" had been supplied.
If you want to limit which users this will be done for,
provide them as a comma separated list after "unixpw="
.IP
Similarly, in \fB-ssl\fR mode, if "\fB-users\fR \fIsslpeer=\fR" is
supplied then after an SSL client authenticates with his
cert (the \fB-sslverify\fR option is required for this) x11vnc
will extract a UNIX username from the "emailAddress"
field (username@hostname.com) of the "Subject" in the
x509 SSL cert and then try to switch to that user as
though "\fB-users\fR \fI+username\fR" had been supplied. If you
want to limit which users this will be done for, provide
them as a comma separated list after "sslpeer=".
Set the env. var X11VNC_SSLPEER_CN to use the Common
Name (normally a hostname) instead of the Email field.
NOTE: the x11vnc administrator must take great care
that any client certs he adds to \fB-sslverify\fR have the
correct UNIX username in the "emailAddress" field
of the cert. Otherwise a user may be able to log in
as another. The following command can be of use in
checking: "openssl x509 \fB-text\fR \fB-in\fR file.crt", see the
"Subject:" line. Also, along with the normal RFB_*
env. vars. (see \fB-accept)\fR passed to external cmd=
commands, RFB_SSL_CLIENT_CERT will be set to the
client's x509 certificate string.
.IP
To immediately switch to a user *before* connections
to the X display are made or any files opened use the
"=" character: "\fB-users\fR \fI=bob\fR". That user needs to
...
...
@@ -2552,6 +2579,8 @@ below the actual framebuffer to cache screen contents
for rapid retrieval. So a W x H frambuffer is expanded
to a W x (n+1)*H one. Use 0 to disable. Default: XXX.
.IP
The \fIn\fR is actually optional, the default is 10.
.IP
For this and the other \fB-ncache*\fR options below you can
abbreviate "\fB-ncache\fR" with "\fB-nc\fR". Also, "\fB-nonc\fR"
is the same as "\fB-ncache\fR \fI0\fR"
...
...
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc.c
View file @
3fcab6f1
...
...
@@ -2248,8 +2248,17 @@ int main(int argc, char* argv[]) {
show_dragging
=
0
;
#ifndef NO_NCACHE
}
else
if
(
!
strcmp
(
arg
,
"-ncache"
)
||
!
strcmp
(
arg
,
"-nc"
))
{
CHECK_ARGC
ncache
=
atoi
(
argv
[
++
i
]);
if
(
i
<
argc
-
1
)
{
char
*
s
=
argv
[
i
+
1
];
if
(
s
[
0
]
!=
'-'
)
{
ncache
=
atoi
(
s
);
i
++
;
}
else
{
ncache
=
ncache_default
;
}
}
else
{
ncache
=
ncache_default
;
}
if
(
ncache
%
2
!=
0
)
{
ncache
++
;
}
...
...
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc_defs.c
View file @
3fcab6f1
...
...
@@ -15,7 +15,7 @@ int xtrap_base_event_type = 0;
int
xdamage_base_event_type
=
0
;
/* date +'lastmod: %Y-%m-%d' */
char
lastmod
[]
=
"0.9.1 lastmod: 2007-04-
18
"
;
char
lastmod
[]
=
"0.9.1 lastmod: 2007-04-
27
"
;
/* X display info */
...
...
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