Commit 014e911f authored by runge's avatar runge

x11vnc: -wireframe, -wirecopyrect, -privremote, -safer, -nocmd, -unsafe, -noviewonly

parent c46cdf94
2005-04-19 Karl Runge <runge@karlrunge.com>
* x11vnc: -wireframe, -wirecopyrect. Back to the 90's with
wireframes to avoid window move/resize lurching.
* safer remote control defaults. -privremote, -safer, -nocmds.
* debug_xevents, debug_xdamage. -noviewonly for rawfb mode.
2005-04-10 Karl Runge <runge@karlrunge.com> 2005-04-10 Karl Runge <runge@karlrunge.com>
* configure.ac: add mmap * configure.ac: add mmap
* x11vnc: -rawfb, -pipeinput, -xtrap, -flag, ... * x11vnc: -rawfb, -pipeinput, -xtrap, -flag, ...
......
2005-04-19 Karl Runge <runge@karlrunge.com>
* somewhat safer remote-control defaults, and addnl options for
more safe operation: -privremote, -safer, -nocmds, -unsafe
* -wireframe, -wirecopyrect: instead of having user look at a
slowly moving, lurching window, guess when a window is being
moved/resized and just show a wireframe. -wirecopyrect means to
apply rfbDoCopyRegion to the detected move as well.
* debugging switches for X events and X damage: debug_xevents
debug_xdamage.
* -rawfb bugfixes. -noviewonly hack to still send UI to X.
2005-04-11 Karl Runge <runge@karlrunge.com> 2005-04-11 Karl Runge <runge@karlrunge.com>
* fix -clip under -rawfb, fix offset bug under file lseeking. * fix -clip under -rawfb, fix offset bug under file lseeking.
* add -rawfb setup:cmd mode to initialize fb. ex: misc/ranfb.pl * add -rawfb setup:cmd mode to initialize fb. example: misc/ranfb.pl
2005-04-10 Karl Runge <runge@karlrunge.com> 2005-04-10 Karl Runge <runge@karlrunge.com>
* -rawfb non X-polling (i.e. shm, mmap, lseek). * -rawfb non X-polling (i.e. shm, mmap, lseek).
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -24,6 +24,7 @@ x11vnc -pipeinput/-rawfb utilities: ...@@ -24,6 +24,7 @@ x11vnc -pipeinput/-rawfb utilities:
vcinject.pl perl script like LinuxVNC.c, for x11vnc viewing of linux console vcinject.pl perl script like LinuxVNC.c, for x11vnc viewing of linux console
slide.pl amusing example using x11vnc -rawfb for jpeg slideshow. slide.pl amusing example using x11vnc -rawfb for jpeg slideshow.
ranfb.pl example -rawfb setup:./ranfb.pl to set up a framebuffer.
Misc. scripts: Misc. scripts:
......
...@@ -229,6 +229,10 @@ Tuning ...@@ -229,6 +229,10 @@ Tuning
input_skip: input_skip:
=D nodragging =D nodragging
-- --
wireframe
wireframe_mode:
=-C:never,top,always wirecopyrect:
--
noshm noshm
flipbyteorder flipbyteorder
onetile onetile
...@@ -370,6 +374,10 @@ Set the -solid color value. ...@@ -370,6 +374,10 @@ Set the -solid color value.
set helptext(xrandr_mode) " set helptext(xrandr_mode) "
Set the -xrandr mode value. Set the -xrandr mode value.
"
set helptext(wireframe_mode) "
Set the -wireframe mode string value.
" "
set helptext(simple-gui) " set helptext(simple-gui) "
...@@ -2821,6 +2829,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} { ...@@ -2821,6 +2829,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} {
set nitem "sb" set nitem "sb"
} elseif {$nitem == "xrandr_mode"} { } elseif {$nitem == "xrandr_mode"} {
set nitem "xrandr" set nitem "xrandr"
} elseif {$nitem == "wireframe_mode"} {
set nitem "wireframe"
} elseif {$nitem == "solid_color"} { } elseif {$nitem == "solid_color"} {
set nitem "solid" set nitem "solid"
} }
......
...@@ -235,6 +235,10 @@ ...@@ -235,6 +235,10 @@
" input_skip:\n" " input_skip:\n"
" =D nodragging\n" " =D nodragging\n"
" --\n" " --\n"
" wireframe\n"
" wireframe_mode:\n"
" =-C:never,top,always wirecopyrect:\n"
" --\n"
" noshm\n" " noshm\n"
" flipbyteorder\n" " flipbyteorder\n"
" onetile\n" " onetile\n"
...@@ -378,6 +382,10 @@ ...@@ -378,6 +382,10 @@
"Set the -xrandr mode value.\n" "Set the -xrandr mode value.\n"
"\"\n" "\"\n"
"\n" "\n"
" set helptext(wireframe_mode) \"\n"
"Set the -wireframe mode string value.\n"
"\"\n"
"\n"
" set helptext(simple-gui) \"\n" " set helptext(simple-gui) \"\n"
"Toggle between menu items corresponding the most basic ones\n" "Toggle between menu items corresponding the most basic ones\n"
"and all possible settings. I.e. toggle between a simple gui\n" "and all possible settings. I.e. toggle between a simple gui\n"
...@@ -2827,6 +2835,8 @@ ...@@ -2827,6 +2835,8 @@
" set nitem \"sb\"\n" " set nitem \"sb\"\n"
" } elseif {$nitem == \"xrandr_mode\"} {\n" " } elseif {$nitem == \"xrandr_mode\"} {\n"
" set nitem \"xrandr\"\n" " set nitem \"xrandr\"\n"
" } elseif {$nitem == \"wireframe_mode\"} {\n"
" set nitem \"wireframe\"\n"
" } elseif {$nitem == \"solid_color\"} {\n" " } elseif {$nitem == \"solid_color\"} {\n"
" set nitem \"solid\"\n" " set nitem \"solid\"\n"
" }\n" " }\n"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
.TH X11VNC "1" "April 2005" "x11vnc " "User Commands" .TH X11VNC "1" "April 2005" "x11vnc " "User Commands"
.SH NAME .SH NAME
x11vnc - allow VNC connections to real X11 displays x11vnc - allow VNC connections to real X11 displays
version: 0.7.2, lastmod: 2005-04-11 version: 0.7.2, lastmod: 2005-04-19
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...
...@@ -948,6 +948,65 @@ slow setups, but you lose all visual feedback for drags, ...@@ -948,6 +948,65 @@ slow setups, but you lose all visual feedback for drags,
text selection, and some menu traversals. It overrides text selection, and some menu traversals. It overrides
any \fB-pointer_mode\fR setting any \fB-pointer_mode\fR setting
.PP .PP
\fB-wireframe\fR \fI[str],\fR \fB-nowireframe\fR
.IP
Try to detect window moves or resizes when a mouse
button is held down and show a wireframe instead of
the full opaque window. This is based completely on
heuristics and may not always work: it depends on your
window manager and even how you move things around.
See \fB-pointer_mode\fR below for discussion of the "bogging
down" problem this tries to avoid. Default: \fB-wireframe\fR
.IP
The value "str" is optional and, of course, is
packed with many tunable parameters for this scheme:
.IP
Format: shade,linewidth,percent,T+B+L+R,t1+t2+t3+t4
Default: 0xff,3,0,32+8+8+8,0.15+0.35+4.0+0.1
.IP
If you leave nothing between commas: ",," the default
value is used. If you don't specify enough commas,
the trailing parameters are set to their defaults.
.IP
"shade" indicate the "color" for the wireframe,
usually a greyscale: 0-255, however for 16 and 32bpp you
can specify an rgb.txt X color (e.g. "dodgerblue") or
a value > 255 is treated as RGB (e.g. red is 0xff0000).
"linewidth" sets the width of the wireframe in pixels.
"percent" indicates to not apply the wireframe scheme
to windows with area less than this percent of the
full screen.
.IP
"T+B+L+R" indicates four integers for how close in
pixels the pointer has to be from the Top, Bottom, Left,
or Right edges of the window to consider wireframing.
This is a speedup to quickly exclude a window from being
wireframed: set them all to zero to not try the speedup
(scrolling and selecting text will likely be slower).
.IP
"t1+t2+t3+t4" specify four floating point times in
seconds: t1 is how long to wait for the pointer to move,
t2 is how long to wait for the window to start moving
or being resized (for some window managers this can be
rather long), t3 is how long to keep a wireframe moving
before repainting the window. t4 is the minimum time
between sending wireframe "animations". For a slow
link this might be a better choice: 0.25+0.6+6.0+0.15
.PP
\fB-wirecopyrect\fR \fImode,\fR \fB-nowirecopyrect\fR
.IP
Since the \fB-wireframe\fR mechanism evidently tracks moving
windows, a speedup can be obtained by telling the VNC
viewers to locally copy the translated window region.
This is the VNC CopyRect encoding: the framebuffer
update doesn't need to send the actual new image data.
"mode" can be "never" (same as \fB-nowirecopyrect)\fR
to never try the copyrect, "top" means only do it if
the window was not covered by any other windows, and
"always" means to translate the orginally unobscured
region (this may look odd as the remaining pieces come
in, but helps on a slow link) Default: always
.PP
\fB-pointer_mode\fR \fIn\fR \fB-pointer_mode\fR \fIn\fR
.IP .IP
Various pointer motion update schemes. "\fB-pm\fR" is Various pointer motion update schemes. "\fB-pm\fR" is
...@@ -973,7 +1032,6 @@ events before repolling the screen. ...@@ -973,7 +1032,6 @@ events before repolling the screen.
n=2 is an improved scheme: by watching the current rate n=2 is an improved scheme: by watching the current rate
of input events it tries to detect if it should try to of input events it tries to detect if it should try to
"eat" additional pointer events before continuing. "eat" additional pointer events before continuing.
This mode was the default until Apr 2005.
.IP .IP
n=3 is basically the same as n=2 except with slightly n=3 is basically the same as n=2 except with slightly
tweaked parameters. We made this a new one so one tweaked parameters. We made this a new one so one
...@@ -1171,8 +1229,8 @@ a file use: ...@@ -1171,8 +1229,8 @@ a file use:
"map:/path/to/a/file@WxHxB". If there is trouble "map:/path/to/a/file@WxHxB". If there is trouble
with mmap, use "file:/..." for slower with mmap, use "file:/..." for slower
.IR lseek (2) .IR lseek (2)
based based reading. If you do not supply a type "map"
reading. is assumed if the file exists.
.IP .IP
If string is "setup:cmd", then the command "cmd" If string is "setup:cmd", then the command "cmd"
is run and the first line from it is read and used is run and the first line from it is read and used
...@@ -1204,10 +1262,16 @@ for the first two examples) ...@@ -1204,10 +1262,16 @@ for the first two examples)
All user input is discarded. Most of the X11 (screen, All user input is discarded. Most of the X11 (screen,
keyboard, mouse) options do not make sense and many keyboard, mouse) options do not make sense and many
will cause this mode to crash, so please think twice will cause this mode to crash, so please think twice
before setting/changing them. If you don't want x11vnc before setting/changing them.
to close the DISPLAY in rawfb mode, then capitalize .IP
the prefix, SHM:, MAP: etc. Keeping the display open If you don't want x11vnc to close the X DISPLAY in
enables default remote-control channel. rawfb mode, then capitalize the prefix, SHM:, MAP:,
FILE: Keeping the display open enables the default
remote-control channel, which could be useful. Also,
if you also specify \fB-noviewonly,\fR then the mouse and
keyboard input are still sent to the X display, this
usage should be very rare, i.e. doing something strange
with /dev/fb0.
.PP .PP
\fB-pipeinput\fR \fIcmd\fR \fB-pipeinput\fR \fIcmd\fR
.IP .IP
...@@ -1569,6 +1633,16 @@ dragging disable \fB-nodragging\fR mode. ...@@ -1569,6 +1633,16 @@ dragging disable \fB-nodragging\fR mode.
.IP .IP
nodragging enable \fB-nodragging\fR mode. nodragging enable \fB-nodragging\fR mode.
.IP .IP
wireframe enable \fB-wireframe\fR mode.
.IP
nowireframe disable \fB-wireframe\fR mode.
.IP
wireframe:str enable \fB-wireframe\fR mode string.
.IP
wireframe_mode:str enable \fB-wireframe\fR mode string.
.IP
wirecopyrect:str set \fB-wirecopyrect\fR string.
.IP
pointer_mode:n set \fB-pointer_mode\fR to n. same as "pm" pointer_mode:n set \fB-pointer_mode\fR to n. same as "pm"
.IP .IP
input_skip:n set \fB-input_skip\fR to n. input_skip:n set \fB-input_skip\fR to n.
...@@ -1719,31 +1793,33 @@ solid nosolid blackout xinerama noxinerama xtrap ...@@ -1719,31 +1793,33 @@ solid nosolid blackout xinerama noxinerama xtrap
noxtrap xrandr noxrandr xrandr_mode padgeom quiet q noxtrap xrandr noxrandr xrandr_mode padgeom quiet q
noquiet modtweak nomodtweak xkb noxkb skip_keycodes noquiet modtweak nomodtweak xkb noxkb skip_keycodes
add_keysyms noadd_keysyms clear_mods noclear_mods add_keysyms noadd_keysyms clear_mods noclear_mods
clear_keys noclear_keys remap repeat norepeat fb nofb clear_keys noclear_keys remap repeat norepeat
bell nobell sel nosel primary noprimary cursorshape fb nofb bell nobell sel nosel primary noprimary
nocursorshape cursorpos nocursorpos cursor show_cursor cursorshape nocursorshape cursorpos nocursorpos
noshow_cursor nocursor arrow xfixes noxfixes xdamage cursor show_cursor noshow_cursor nocursor arrow
noxdamage xd_area xd_mem alphacut alphafrac alpharemove xfixes noxfixes xdamage noxdamage xd_area xd_mem
noalpharemove alphablend noalphablend xwarp xwarppointer alphacut alphafrac alpharemove noalpharemove alphablend
noxwarp noxwarppointer buttonmap dragging nodragging noalphablend xwarp xwarppointer noxwarp noxwarppointer
buttonmap dragging nodragging wireframe_mode
wireframe nowireframe wirecopyrect nowirecopyrect
pointer_mode pm input_skip input client_input speeds pointer_mode pm input_skip input client_input speeds
debug_pointer dp nodebug_pointer nodp debug_keyboard dk debug_pointer dp nodebug_pointer nodp debug_keyboard dk
nodebug_keyboard nodk deferupdate defer wait rfbwait nap nodebug_keyboard nodk deferupdate defer wait rfbwait
nonap sb screen_blank fs gaps grow fuzz snapfb nosnapfb nap nonap sb screen_blank fs gaps grow fuzz snapfb
rawfb setup: progressive rfbport http nohttp httpport nosnapfb rawfb progressive rfbport http nohttp httpport
httpdir enablehttpproxy noenablehttpproxy alwaysshared httpdir enablehttpproxy noenablehttpproxy alwaysshared
noalwaysshared nevershared noalwaysshared dontdisconnect noalwaysshared nevershared noalwaysshared dontdisconnect
nodontdisconnect desktop noremote nodontdisconnect desktop noremote
.IP .IP
aro= debug_xevents: display vncdisplay desktopname aro= debug_xevents debug_xdamage display vncdisplay
http_url auth users rootshift clipshift scale_str desktopname http_url auth users rootshift clipshift
scaled_x scaled_y scale_numer scale_denom scale_str scaled_x scaled_y scale_numer scale_denom
scale_fac scaling_blend scaling_nomult4 scaling_pad scale_fac scaling_blend scaling_nomult4 scaling_pad
scaling_interpolate inetd safer unsafe passwdfile scaling_interpolate inetd privremote unsafe safer
using_shm logfile o flag rc norc h help V version nocmds passwdfile using_shm logfile o flag rc norc h
lastmod bg sigpipe threads pipeinput clients help V version lastmod bg sigpipe threads pipeinput
client_count pid ext_xtest ext_xtrap ext_xkb ext_xshm clients client_count pid ext_xtest ext_xtrap ext_xkb
ext_xinerama ext_overlay ext_xfixes ext_xdamage ext_xshm ext_xinerama ext_overlay ext_xfixes ext_xdamage
ext_xrandr rootwin num_buttons button_mask mouse_x ext_xrandr rootwin num_buttons button_mask mouse_x
mouse_y bpp depth indexed_color dpy_x dpy_y wdpy_x mouse_y bpp depth indexed_color dpy_x dpy_y wdpy_x
wdpy_y off_x off_y cdpy_x cdpy_y coff_x coff_y rfbauth wdpy_y off_x off_y cdpy_x cdpy_y coff_x coff_y rfbauth
...@@ -1785,27 +1861,46 @@ of the desktop. If the "\fB-connect\fR \fI/path/to/file\fR" ...@@ -1785,27 +1861,46 @@ of the desktop. If the "\fB-connect\fR \fI/path/to/file\fR"
channel is being used, obviously anyone who can write channel is being used, obviously anyone who can write
to /path/to/file can remotely control x11vnc. So be to /path/to/file can remotely control x11vnc. So be
sure to protect the X display and that file's write sure to protect the X display and that file's write
permissions. permissions. See \fB-privremote\fR below.
.IP .IP
If you are paranoid and do not think \fB-noremote\fR is If you are paranoid and do not think \fB-noremote\fR is
enough, to disable the VNC_CONNECT property channel enough, to disable the VNC_CONNECT property channel
completely use \fB-novncconnect.\fR completely use \fB-novncconnect,\fR or use the \fB-safer\fR
option that shuts many things off.
.PP .PP
\fB-unsafe\fR \fB-unsafe\fR
.IP .IP
If x11vnc is running as root (e.g. inetd or Xsetup for A few remote commands are disabled by default
a display manager) a few remote commands are disabled (currently: id:pick, accept:<cmd>, gone:<cmd>, and
(currently: id:pick, accept:<cmd>, and gone:<cmd>) rawfb:setup:<cmd>) because they are associated with
because they are associated with running external running external programs. If you specify \fB-unsafe,\fR then
programs. If you specify \fB-unsafe,\fR then these remote these remote-control commands are allowed. Note that
control commands are allowed when running as root. you can still specify these parameters on the command
When running as non-root all commands are allowed. line, they just cannot be changed via remote-control.
See \fB-safer\fR below.
.PP .PP
\fB-safer\fR \fB-safer\fR
.IP .IP
Even if not running as root, disable the above unsafe Equivalent to: \fB-novncconnect\fR \fB-noremote\fR and prohibiting
remote control commands. \fB-gui\fR and the \fB-connect\fR file. Shuts off communcation
channels.
.PP
\fB-privremote\fR
.IP
Perform some sanity checks and only allow remote-control
commands if it appears that the X DISPLAY and/or
connectfile cannot be accessed by other users. (not
complete, does not check for empty access control list)
.PP
\fB-nocmds\fR
.IP
No external commands (e.g.
.IR system (3)
,
.IR popen (3)
,
.IR exec (3)
)
will be run.
.PP .PP
\fB-deny_all\fR \fB-deny_all\fR
.IP .IP
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment