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
52ba8bfb
Commit
52ba8bfb
authored
Aug 30, 2004
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc: -cursor change shape handling, configure.ac: add more macros for X extensions
parent
3a4f41f6
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1653 additions
and
863 deletions
+1653
-863
ChangeLog
ChangeLog
+6
-0
configure.ac
configure.ac
+52
-19
ChangeLog
x11vnc/ChangeLog
+9
-0
README
x11vnc/README
+160
-69
x11vnc.1
x11vnc/x11vnc.1
+114
-47
x11vnc.c
x11vnc/x11vnc.c
+1312
-728
No files found.
ChangeLog
View file @
52ba8bfb
2004-08-29 Karl Runge <runge@karlrunge.com>
* x11vnc: changes in cursor shape handling: use rfbSetCursor()
* cursor shape options: -cursor, -cursor (X|some|most)
* -vncconnect the default.
* configure.ac: add more macros for X extensions.
2004-08-15 Karl Runge <runge@karlrunge.com>
2004-08-15 Karl Runge <runge@karlrunge.com>
* x11vnc: -overlay to fix colors with Sun 8+24 overlay visuals.
* x11vnc: -overlay to fix colors with Sun 8+24 overlay visuals.
* -sid option.
* -sid option.
...
...
configure.ac
View file @
52ba8bfb
...
@@ -39,29 +39,62 @@ AM_CONDITIONAL(WITH_FFMPEG, test ! -z "$with_ffmpeg")
...
@@ -39,29 +39,62 @@ AM_CONDITIONAL(WITH_FFMPEG, test ! -z "$with_ffmpeg")
# Checks for X libraries
# Checks for X libraries
HAVE_X="false"
HAVE_X="false"
AC_PATH_XTRA
AC_PATH_XTRA
AH_TEMPLATE(HAVE_XSHM, [MIT-SHM extension build environment present])
AH_TEMPLATE(HAVE_XTEST, [XTEST extension build environment present])
AH_TEMPLATE(HAVE_XKEYBOARD, [XKEYBOARD extension build environment present])
AH_TEMPLATE(HAVE_XKEYBOARD, [XKEYBOARD extension build environment present])
AH_TEMPLATE(HAVE_LIBXINERAMA, [XINERAMA extension build environment present])
AH_TEMPLATE(HAVE_LIBXINERAMA, [XINERAMA extension build environment present])
AH_TEMPLATE(HAVE_LIBXRANDR, [XRANDR extension build environment present])
AH_TEMPLATE(HAVE_LIBXFIXES, [XFIXES extension build environment present])
AH_TEMPLATE(HAVE_LIBXDAMAGE, [XDAMAGE extension build environment present])
if test "$X_CFLAGS" != "-DX_DISPLAY_MISSING"; then
if test "$X_CFLAGS" != "-DX_DISPLAY_MISSING"; then
saved_CPPFLAGS="$CPPFLAGS"
AC_CHECK_LIB(X11, XGetImage, HAVE_X="true",
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
HAVE_X="false",
AC_CHECK_HEADER(X11/XKBlib.h, HAVE_XKBLIB_H="true",
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
HAVE_XKBLIB_H="false", [#include <X11/Xlib.h>])
CPPFLAGS="$saved_CPPFLAGS"
if test $HAVE_X = "true"; then
if test $HAVE_XKBLIB_H = "true"; then
X_PRELIBS="$X_PRELIBS -lXext"
AC_CHECK_LIB(X11, XkbSelectEvents,
[AC_DEFINE(HAVE_XKEYBOARD)], ,
AC_CHECK_LIB(Xext, XShmGetImage,
[AC_DEFINE(HAVE_XSHM)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
fi
AC_CHECK_LIB(Xinerama, XineramaQueryScreens,
AC_CHECK_LIB(Xtst, XTestFakeKeyEvent,
X_PRELIBS="$X_PRELIBS -lXinerama"
X_PRELIBS="$X_PRELIBS -lXtst"
[AC_DEFINE(HAVE_LIBXINERAMA)], ,
[AC_DEFINE(HAVE_XTEST)], ,
$X_LIBS $X_PRELIBS -lX11 -lXext $X_EXTRA_LIBS)
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, HAVE_XTEST="true",
HAVE_XTEST="false",
saved_CPPFLAGS="$CPPFLAGS"
$X_LIBS $X_PRELIBS -lX11 -lXext $X_EXTRA_LIBS)
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
if test $HAVE_XTEST = "true"; then
AC_CHECK_HEADER(X11/XKBlib.h, HAVE_XKBLIB_H="true",
X_LIBS="$X_LIBS $X_PRELIBS -lXtst -lXext -lX11 $X_EXTRA_LIBS"
HAVE_XKBLIB_H="false", [#include <X11/Xlib.h>])
HAVE_X="true"
CPPFLAGS="$saved_CPPFLAGS"
if test $HAVE_XKBLIB_H = "true"; then
AC_CHECK_LIB(X11, XkbSelectEvents,
[AC_DEFINE(HAVE_XKEYBOARD)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
fi
AC_CHECK_LIB(Xinerama, XineramaQueryScreens,
X_PRELIBS="$X_PRELIBS -lXinerama"
[AC_DEFINE(HAVE_LIBXINERAMA)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
AC_CHECK_LIB(Xrandr, XRRSelectInput,
X_PRELIBS="$X_PRELIBS -lXrandr"
[AC_DEFINE(HAVE_LIBXRANDR)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
AC_CHECK_LIB(Xfixes, XFixesGetCursorImage,
X_PRELIBS="$X_PRELIBS -lXfixes"
[AC_DEFINE(HAVE_LIBXFIXES)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
AC_CHECK_LIB(Xdamage, XDamageQueryExtension,
X_PRELIBS="$X_PRELIBS -lXdamage"
[AC_DEFINE(HAVE_LIBXDAMAGE)], ,
$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
X_LIBS="$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS"
fi
fi
fi
fi
AC_SUBST(X_LIBS)
AC_SUBST(X_LIBS)
...
...
x11vnc/ChangeLog
View file @
52ba8bfb
2004-08-29 Karl Runge <runge@karlrunge.com>
* remove old mouse patch code, now use rfbSetCursor (+ workarounds)
* changed cursor shape options (no more -mouse, ...) to '-cursor mode'
where 'mode' can be empty "X", "some", or "most". "some" adds
heuristics for two more cursors.
* -nocursorshape added.
* ifdef checks for XSHM and XTEST. Add *_wr wrappers as well.
* -vncconnect is now the default.
2004-08-15 Karl Runge <runge@karlrunge.com>
2004-08-15 Karl Runge <runge@karlrunge.com>
* -overlay option to fix color problems on Sun machines with 8+24
* -overlay option to fix color problems on Sun machines with 8+24
and 24+8 overlay visuals, uses Solaris XReadScreen().
and 24+8 overlay visuals, uses Solaris XReadScreen().
...
...
x11vnc/README
View file @
52ba8bfb
This diff is collapsed.
Click to expand it.
x11vnc/x11vnc.1
View file @
52ba8bfb
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
.TH X11VNC "1" "August 2004" "x11vnc " "User Commands"
.TH X11VNC "1" "August 2004" "x11vnc " "User Commands"
.SH NAME
.SH NAME
x11vnc - allow VNC connections to real X11 displays
x11vnc - allow VNC connections to real X11 displays
version: 0.6.3pre, lastmod: 2004-08-
15
version: 0.6.3pre, lastmod: 2004-08-
29
.SH SYNOPSIS
.SH SYNOPSIS
.B x11vnc
.B x11vnc
[OPTION]...
[OPTION]...
...
@@ -63,14 +63,20 @@ man pages.
...
@@ -63,14 +63,20 @@ man pages.
.PP
.PP
\fB-id\fR \fIwindowid\fR
\fB-id\fR \fIwindowid\fR
.IP
.IP
Show the window corresponding to \fIwindowid\fR not the
Show the window corresponding to \fIwindowid\fR not
entire display. Warning: bugs! new toplevels missed!...
the entire display. New windows like popup menus,
etc may not be seen, or will be clipped. x11vnc may
crash if the window changes size, is iconified, etc.
Use
.IR xwininfo (1)
to get the window id. Primarily useful
for exporting very simple applications.
.PP
.PP
\fB-sid\fR \fIwindowid\fR
\fB-sid\fR \fIwindowid\fR
.IP
.IP
As \fB-id,\fR but instead of using the window directly it
As \fB-id,\fR but instead of using the window directly it
shifts a root view to it:
shows saveUnders menus, etc
,
shifts a root view to it:
this shows saveUnders menus
,
although they will be clipped if they extend beyond
etc,
although they will be clipped if they extend beyond
the window.
the window.
.PP
.PP
\fB-flashcmap\fR
\fB-flashcmap\fR
...
@@ -90,11 +96,12 @@ and 24+8 overlay visuals (the 32 bits per pixel are
...
@@ -90,11 +96,12 @@ and 24+8 overlay visuals (the 32 bits per pixel are
packed with 8 for PseudoColor and 24 for TrueColor).
packed with 8 for PseudoColor and 24 for TrueColor).
.IP
.IP
Currently \fB-overlay\fR only works on Solaris (it uses
Currently \fB-overlay\fR only works on Solaris (it uses
XReadScreen(3X11)). There are still some problems with
XReadScreen(3X11)). There is a problem with image
surrounding-region painting for popup menus (but not
"bleeding" around transient popup menus (but not
for the popup menu itself); a workaround is to disable
for the menu itself): a workaround is to disable
SaveUnders (pass \fB-su\fR to Xsun). Amusingly, if \fB-overlay\fR
SaveUnders by passing the "-su" argument to Xsun
is used with \fB-mouse,\fR the mouse cursor shape is correct.
(in /etc/dt/config/Xservers, say). Also note that,
the mouse cursor shape is exactly correct in this mode.
.IP
.IP
Use \fB-overlay\fR as a workaround for situations like these:
Use \fB-overlay\fR as a workaround for situations like these:
Some legacy applications require the default visual
Some legacy applications require the default visual
...
@@ -107,7 +114,13 @@ Under \fB-overlay,\fR performance will be somewhat degraded
...
@@ -107,7 +114,13 @@ Under \fB-overlay,\fR performance will be somewhat degraded
due to the extra image transformations required.
due to the extra image transformations required.
For optimal performance do not use \fB-overlay,\fR but rather
For optimal performance do not use \fB-overlay,\fR but rather
configure the X server so that the default visual is
configure the X server so that the default visual is
depth 24 TrueColor and have all apps use that visual.
depth 24 TrueColor and try to have all apps use that
visual (some apps have \fB-use24\fR or \fB-visual\fR options).
.PP
\fB-overlay_nocursor\fR
.IP
Sets \fB-overlay,\fR but does not try to draw the exact mouse
cursor shape using the overlay mechanism.
.PP
.PP
\fB-visual\fR \fIn\fR
\fB-visual\fR \fIn\fR
.IP
.IP
...
@@ -124,9 +137,10 @@ or for worse the visual depth is forced to be m.
...
@@ -124,9 +137,10 @@ or for worse the visual depth is forced to be m.
.PP
.PP
\fB-scale\fR \fIfraction\fR
\fB-scale\fR \fIfraction\fR
.IP
.IP
Scale the framebuffer by factor \fIfraction\fR. Values
Scale the framebuffer by factor \fIfraction\fR.
less than 1 shrink the fb. Note: image may not be sharp
Values less than 1 shrink the fb. Note: image may not
and response may be slower. If \fIfraction\fR contains
be sharp and response may be slower. Currently the
cursor shape is not scaled. If \fIfraction\fR contains
a decimal point "." it is taken as a floating point
a decimal point "." it is taken as a floating point
number, alternatively the notation "m/n" may be used
number, alternatively the notation "m/n" may be used
to denote fractions exactly, e.g. \fB-scale\fR 2/3.
to denote fractions exactly, e.g. \fB-scale\fR 2/3.
...
@@ -136,7 +150,7 @@ Scaling Options: can be added after \fIfraction\fR via
...
@@ -136,7 +150,7 @@ Scaling Options: can be added after \fIfraction\fR via
If you just want a quick, rough scaling without
If you just want a quick, rough scaling without
blending, append ":nb" to \fIfraction\fR (e.g. \fB-scale\fR
blending, append ":nb" to \fIfraction\fR (e.g. \fB-scale\fR
1/3:nb). For compatibility with vncviewers the scaled
1/3:nb). For compatibility with vncviewers the scaled
width is adjusted to be a multiple of 4
,
to disable
width is adjusted to be a multiple of 4
:
to disable
this use ":n4". More esoteric options: ":in" use
this use ":n4". More esoteric options: ":in" use
interpolation scheme even when shrinking, ":pad",
interpolation scheme even when shrinking, ":pad",
pad scaled width and height to be multiples of scaling
pad scaled width and height to be multiples of scaling
...
@@ -173,13 +187,17 @@ read and then the file is truncated.
...
@@ -173,13 +187,17 @@ read and then the file is truncated.
\fB-vncconnect\fR
\fB-vncconnect\fR
.IP
.IP
Monitor the VNC_CONNECT X property set by the standard
Monitor the VNC_CONNECT X property set by the standard
.PP
\fB-novncconnect\fR
.IP
VNC program
VNC program
.IR vncconnect (1)
.IR vncconnect (1)
. When the property is
set
. When the property is
to host or host:port establish a reverse connection.
set to "host" or "host:port" establish a reverse
Using
connection.
Using
.IR xprop (1)
.IR xprop (1)
instead of vncconnect may work, see FAQ.
instead of vncconnect may
work, see the FAQ. Default: \fB-vncconnect\fR
.PP
.PP
\fB-inetd\fR
\fB-inetd\fR
.IP
.IP
...
@@ -306,8 +324,8 @@ endianness. Ignored unless \fB-noshm\fR is set.
...
@@ -306,8 +324,8 @@ endianness. Ignored unless \fB-noshm\fR is set.
\fB-onetile\fR
\fB-onetile\fR
.IP
.IP
Do not use the new copy_tiles() framebuffer mechanism,
Do not use the new copy_tiles() framebuffer mechanism,
just use 1 shm tile for polling.
Same as \fB-old_copytile.\fR
just use 1 shm tile for polling.
Limits shm segments
Limits shm segments
used to 3.
used to 3.
.PP
.PP
\fB-blackout\fR \fIstring\fR
\fB-blackout\fR \fIstring\fR
.IP
.IP
...
@@ -319,8 +337,10 @@ each rectangle.
...
@@ -319,8 +337,10 @@ each rectangle.
.IP
.IP
If your screen is composed of multiple monitors
If your screen is composed of multiple monitors
glued together via XINERAMA, and that screen is
glued together via XINERAMA, and that screen is
non-rectangular this option will try to guess the areas
non-rectangular this option will try to guess the
to black out (if your system has libXinerama).
areas to black out (if your system has libXinerama).
In general on XINERAMA displays you may need to use the
\fB-xwarppointer\fR option if the mouse pointer misbehaves.
.PP
.PP
\fB-o\fR \fIlogfile\fR
\fB-o\fR \fIlogfile\fR
.IP
.IP
...
@@ -376,7 +396,9 @@ and "," + "<" keys). Default: \fB-modtweak\fR
...
@@ -376,7 +396,9 @@ and "," + "<" keys). Default: \fB-modtweak\fR
\fB-xkb\fR
\fB-xkb\fR
.IP
.IP
When in modtweak mode, use the XKEYBOARD extension
When in modtweak mode, use the XKEYBOARD extension
(if it exists) to do the modifier tweaking.
(if it exists) to do the modifier tweaking. This is
powerful and should be tried if there are still
keymapping problems when using the simpler \fB-modtweak.\fR
.PP
.PP
\fB-skip_keycodes\fR \fIstring\fR
\fB-skip_keycodes\fR \fIstring\fR
.IP
.IP
...
@@ -453,34 +475,79 @@ Do not poll the PRIMARY selection for changes to send
...
@@ -453,34 +475,79 @@ Do not poll the PRIMARY selection for changes to send
back to clients. (PRIMARY is still set on received
back to clients. (PRIMARY is still set on received
changes, however).
changes, however).
.PP
.PP
\fB-nocursor\fR
\fB-cursor\fR \fI[mode],\fR \fB-nocursor\fR
.IP
.IP
Do not have the VNC viewer show a local cursor.
Sets how the pointer cursor shape (little icon at the
.PP
mouse pointer) should be handled. The "mode" string
\fB-mouse\fR
is optional and is described below. The default
.IP
is to show some sort of cursor shape(s). How this
Draw a 2nd cursor at the current X pointer position.
is done depends on the VNC viewer and the X server.
.PP
Use \fB-nocursor\fR to disable cursor shapes completely.
\fB-mouseX\fR
.IP
.IP
Some VNC viewers support the TightVNC CursorPosUpdates
As \fB-mouse,\fR but also draw an "X" when pointer is on
and CursorShapeUpdates extensions (cuts down on
root background.
network traffic by not having to send the cursor image
.PP
every time the pointer is moved), in which case these
\fB-X\fR
extensions are used (see \fB-nocursorshape\fR and \fB-nocursorpos\fR
.IP
below). For other viewers the cursor shape is written
Shorthand for \fB-mouseX\fR \fB-nocursor.\fR
directly to the framebuffer every time the pointer is
.PP
moved or changed and gets sent along with the other
\fB-xwarppointer\fR
framebuffer updates. In this case, there will be
.IP
some lag between the vnc viewer pointer and the remote
Move the pointer with XWarpPointer() instead of XTEST
cursor position.
(try as a workaround if pointer behaves poorly, e.g.
.IP
on touchscreens or other non-standard setups).
If the X display supports retrieving the cursor shape
information from the X server, then the default
is to use that mode. On Solaris this requires
the SUN_OVL extension and the \fB-overlay\fR option to be
supplied. (see also the \fB-overlay_nomouse\fR option). (Soon)
on XFree86/Xorg the XFIXES extension is required.
Either can be disabled with \fB-nocursor,\fR and also some
values of the "mode" option below.
.IP
The "mode" string can be used to fine-tune the
displaying of cursor shapes. It can be used the
following ways:
.IP
"-cursor X" - when the cursor appears to be on the
root window, draw the familiar X shape. Some desktops
such as GNOME cover up the root window completely,
and so this will not work, try "X1", etc, to try to
shift the tree depth. On high latency links or slow
machines there will be a time lag between expected and
the actual cursor shape.
.IP
"-cursor some" - like "X" but use additional
heuristics to try to guess if the window should have
a windowmanager-like resizer cursor or a text input
I-beam cursor. This is a complete hack, but may be
useful in some situations because it provides a little
more feedback about the cursor shape.
.IP
"-cursor most" - try to show as many cursors as
possible. Often this will only be the same as "some".
On Solaris if XFIXES is not available, \fB-overlay\fR mode
will be used.
.PP
\fB-nocursorshape\fR
.IP
Do not use the TightVNC CursorShapeUpdates extension
even if clients support it. See \fB-cursor\fR above.
.PP
.PP
\fB-cursorpos,\fR \fB-nocursorpos\fR
\fB-cursorpos,\fR \fB-nocursorpos\fR
.IP
.IP
Option \fB-cursorpos\fR enables sending the X cursor position
Option \fB-cursorpos\fR enables sending the X cursor position
back to all vnc clients that support the TightVNC
back to all vnc clients that support the TightVNC
CursorPosUpdates extension. Default: \fB-cursorpos\fR
CursorPosUpdates extension. Other clients will be able
to see the pointer motions. Default: \fB-cursorpos\fR
.PP
\fB-xwarppointer\fR
.IP
Move the pointer with XWarpPointer(3X) instead of XTEST
extension. Use this as a workaround if the pointer
motion behaves incorrectly, e.g. on touchscreens or
other non-standard setups. Also sometimes needed on
XINERAMA displays.
.PP
.PP
\fB-buttonmap\fR \fIstring\fR
\fB-buttonmap\fR \fIstring\fR
.IP
.IP
...
...
x11vnc/x11vnc.c
View file @
52ba8bfb
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