Commit 3a7e70de authored by runge's avatar runge

x11vnc: more improvements to -scrollcopyrect and -xkb modes.

parent 34f714bc
2005-05-14 Karl Runge <runge@karlrunge.com>
* x11vnc: more work on -scrollcopyrect and -xkb modes.
2005-05-07 Johannes E. Schindelin <Johannes.Schindelin@gmx.de> 2005-05-07 Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
* libvncserver/rfbserver.c: fix memory leak pointed out by Tim Jansen * libvncserver/rfbserver.c: fix memory leak pointed out by Tim Jansen
* libvncserver/{httpd,main,rfbserver,sockets}.c, rfb/rfb.h: * libvncserver/{httpd,main,rfbserver,sockets}.c, rfb/rfb.h:
......
2005-05-14 Karl Runge <runge@karlrunge.com>
* much more work on "-scrollcopyrect" mode... getting usable.
* remove -pointer_mode 3, shift everyone back down
* -dbg "crash shell" for debugging
* -add_keysyms now the default, periodically clears if needed.
* try to autodetect if -xkb would be a good idea.
* improve keycode guessing for -xkb mode (force ISO_Level3_Shift)
* -remap DEAD, etc. for dead/mute keys remappings.
2005-05-02 Karl Runge <runge@karlrunge.com> 2005-05-02 Karl Runge <runge@karlrunge.com>
* initial support for using RECORD to detect some types of window * initial support for using RECORD to detect some types of window
scrolls. This is "-scrollcopyrect" mode, use -noscrollcopyrect scrolls. This is "-scrollcopyrect" mode, use -noscrollcopyrect
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -132,6 +132,7 @@ Keyboard ...@@ -132,6 +132,7 @@ Keyboard
=D norepeat =D norepeat
=D add_keysyms =D add_keysyms
skip_keycodes: skip_keycodes:
skip_dups
modtweak modtweak
xkb xkb
-- --
...@@ -180,6 +181,15 @@ Misc ...@@ -180,6 +181,15 @@ Misc
-- --
=RA remote-cmd: =RA remote-cmd:
=GA all-settings =GA all-settings
--
=GAL Misc-Tuning::
fs:
gaps:
grow:
fuzz:
readtimeout:
snapfb
threads
Debugging Debugging
debug_pointer debug_pointer
...@@ -191,8 +201,10 @@ Debugging ...@@ -191,8 +201,10 @@ Debugging
-- --
debug_xevents debug_xevents
debug_xdamage debug_xdamage
debug_wireframe =-C:0,1,2,3 debug_wireframe:
debug_scroll debug_scroll
debug_tiles
dbg
-- --
=GA show-start-cmd =GA show-start-cmd
=DG debug_gui =DG debug_gui
...@@ -234,15 +246,24 @@ Tuning ...@@ -234,15 +246,24 @@ Tuning
input_skip: input_skip:
=D nodragging =D nodragging
-- --
noshm
flipbyteorder
onetile
--
xdamage
xd_area:
xd_mem:
--
wireframe wireframe
wireframe_mode: wireframe_mode:
=-C:never,top,always wirecopyrect: =-C:never,top,always wirecopyrect:
--
=-C:never,keys,mouse,always scrollcopyrect: =-C:never,keys,mouse,always scrollcopyrect:
scr_area: scr_area:
-- scr_skip:
noshm scr_inc:
flipbyteorder scr_keys:
onetile scr_parms:
-- D -- D
speeds: speeds:
=D wait: =D wait:
...@@ -250,18 +271,6 @@ Tuning ...@@ -250,18 +271,6 @@ Tuning
=D nap =D nap
screen_blank: screen_blank:
-- --
fs:
gaps:
grow:
fuzz:
snapfb
--
xdamage
xd_area:
xd_mem:
--
threads
--
progressive: progressive:
" "
} }
...@@ -395,6 +404,11 @@ and one for power users. ...@@ -395,6 +404,11 @@ and one for power users.
set helptext(all) $helpall set helptext(all) $helpall
set helptext(Misc-Tuning:) "
These contain some miscellaneous tuning parameters that are not
often used. Placed here to avoid overcrowding in the Tuning menu.
"
set helptext(gui) " set helptext(gui) "
tkx11vnc is a simple frontend to x11vnc. Nothing fancy, it merely tkx11vnc is a simple frontend to x11vnc. Nothing fancy, it merely
provides an interface to each of the many x11vnc command line options and provides an interface to each of the many x11vnc command line options and
...@@ -701,7 +715,7 @@ proc help_win {item} { ...@@ -701,7 +715,7 @@ proc help_win {item} {
set text "Help on $item:\n\n" set text "Help on $item:\n\n"
if {[is_gui_internal $item]} { if {[is_gui_internal $item]} {
if {$item != "gui" && $item != "all"} { if {$item != "gui" && $item != "all" && $item != "Misc-Tuning:"} {
append text " + Is a gui internal Action (cannot be set).\n"; append text " + Is a gui internal Action (cannot be set).\n";
} }
} elseif {[is_action $item]} { } elseif {[is_action $item]} {
...@@ -1157,6 +1171,9 @@ proc push_new_value {item name new {query 1}} { ...@@ -1157,6 +1171,9 @@ proc push_new_value {item name new {query 1}} {
if {$do_query_all} { if {$do_query_all} {
set all [all_query_vars] set all [all_query_vars]
set qargs [list "-Q" $all] set qargs [list "-Q" $all]
global last_query_all_time
set last_query_all_time [clock seconds]
} }
set rqargs [concat $rargs $qargs] set rqargs [concat $rargs $qargs]
...@@ -1646,6 +1663,7 @@ proc all_query_vars {} { ...@@ -1646,6 +1663,7 @@ proc all_query_vars {} {
proc query_all {{quiet 0}} { proc query_all {{quiet 0}} {
global query_ans_list query_aro_list all_settings global query_ans_list query_aro_list all_settings
global last_query_all_time
set qry [all_query_vars] set qry [all_query_vars]
...@@ -1663,6 +1681,7 @@ proc query_all {{quiet 0}} { ...@@ -1663,6 +1681,7 @@ proc query_all {{quiet 0}} {
append_text "Failed to retrieve settings.\n" append_text "Failed to retrieve settings.\n"
} }
} }
set last_query_all_time [clock seconds]
return $all return $all
} }
...@@ -1816,6 +1835,9 @@ proc do_action {item} { ...@@ -1816,6 +1835,9 @@ proc do_action {item} {
} elseif {$item == "tail-logfile"} { } elseif {$item == "tail-logfile"} {
tail_logfile tail_logfile
return return
} elseif {$item == "Misc-Tuning:"} {
menu_help "$item"
return
} elseif {$item == "stop+quit"} { } elseif {$item == "stop+quit"} {
push_new_value "stop" "stop" 1 0 push_new_value "stop" "stop" 1 0
set_connected no set_connected no
...@@ -2481,6 +2503,29 @@ proc make_menu_items {} { ...@@ -2481,6 +2503,29 @@ proc make_menu_items {} {
} }
} }
proc menu_posted {} {
global last_query_all_time query_all_freq
global connected_to_x11vnc
set now [clock seconds]
if {$connected_to_x11vnc} {
set quiet 0
set refresh [expr "$last_query_all_time + $query_all_freq"]
# puts "menu_posted $now $last_query_all_time"
# puts "menu_posted $refresh"
if {$now > $refresh} {
append_text "Refreshing settings... "
query_all $quiet
if {$quiet} {
append_text "done\n"
}
}
}
}
proc make_widgets {} { proc make_widgets {} {
global template global template
global menu_b menu_m menu_count global menu_b menu_m menu_count
...@@ -2557,7 +2602,7 @@ proc make_widgets {} { ...@@ -2557,7 +2602,7 @@ proc make_widgets {} {
-anchor w -menu $menu -background $fbg \ -anchor w -menu $menu -background $fbg \
-font $bfont -font $bfont
pack $menub -side top -fill x pack $menub -side top -fill x
menu $menu -tearoff 0 menu $menu -tearoff 0 -postcommand menu_posted
} }
} }
pack $f -side top -fill x pack $f -side top -fill x
...@@ -3032,6 +3077,7 @@ global bfont ffont old_labels ...@@ -3032,6 +3077,7 @@ global bfont ffont old_labels
global connected_to_x11vnc global connected_to_x11vnc
global delay_sleep extra_sleep extra_sleep_split global delay_sleep extra_sleep extra_sleep_split
global cache_all_query_vars global cache_all_query_vars
global last_query_all_time query_all_freq
set unset_str "(unset)" set unset_str "(unset)"
set connected_to_x11vnc 0 set connected_to_x11vnc 0
...@@ -3045,6 +3091,8 @@ set reply_xdisplay "" ...@@ -3045,6 +3091,8 @@ set reply_xdisplay ""
set all_settings "None so far." set all_settings "None so far."
set always_update 1 set always_update 1
set cache_all_query_vars "" set cache_all_query_vars ""
set query_all_freq 120
set last_query_all_time [clock seconds]
# these are no longer used under x11vnc -sync: # these are no longer used under x11vnc -sync:
set delay_sleep 350 set delay_sleep 350
......
...@@ -138,6 +138,7 @@ ...@@ -138,6 +138,7 @@
" =D norepeat\n" " =D norepeat\n"
" =D add_keysyms\n" " =D add_keysyms\n"
" skip_keycodes:\n" " skip_keycodes:\n"
" skip_dups\n"
" modtweak\n" " modtweak\n"
" xkb\n" " xkb\n"
" --\n" " --\n"
...@@ -186,6 +187,15 @@ ...@@ -186,6 +187,15 @@
" --\n" " --\n"
" =RA remote-cmd:\n" " =RA remote-cmd:\n"
" =GA all-settings\n" " =GA all-settings\n"
" --\n"
" =GAL Misc-Tuning::\n"
" fs:\n"
" gaps:\n"
" grow:\n"
" fuzz:\n"
" readtimeout:\n"
" snapfb\n"
" threads\n"
"\n" "\n"
"Debugging\n" "Debugging\n"
" debug_pointer\n" " debug_pointer\n"
...@@ -197,8 +207,10 @@ ...@@ -197,8 +207,10 @@
" --\n" " --\n"
" debug_xevents\n" " debug_xevents\n"
" debug_xdamage\n" " debug_xdamage\n"
" debug_wireframe\n" " =-C:0,1,2,3 debug_wireframe:\n"
" debug_scroll\n" " debug_scroll\n"
" debug_tiles\n"
" dbg\n"
" --\n" " --\n"
" =GA show-start-cmd\n" " =GA show-start-cmd\n"
" =DG debug_gui\n" " =DG debug_gui\n"
...@@ -240,15 +252,24 @@ ...@@ -240,15 +252,24 @@
" input_skip:\n" " input_skip:\n"
" =D nodragging\n" " =D nodragging\n"
" --\n" " --\n"
" noshm\n"
" flipbyteorder\n"
" onetile\n"
" --\n"
" xdamage\n"
" xd_area:\n"
" xd_mem:\n"
" --\n"
" wireframe\n" " wireframe\n"
" wireframe_mode:\n" " wireframe_mode:\n"
" =-C:never,top,always wirecopyrect:\n" " =-C:never,top,always wirecopyrect:\n"
" --\n"
" =-C:never,keys,mouse,always scrollcopyrect:\n" " =-C:never,keys,mouse,always scrollcopyrect:\n"
" scr_area:\n" " scr_area:\n"
" --\n" " scr_skip:\n"
" noshm\n" " scr_inc:\n"
" flipbyteorder\n" " scr_keys:\n"
" onetile\n" " scr_parms:\n"
" -- D\n" " -- D\n"
" speeds:\n" " speeds:\n"
" =D wait:\n" " =D wait:\n"
...@@ -256,18 +277,6 @@ ...@@ -256,18 +277,6 @@
" =D nap\n" " =D nap\n"
" screen_blank:\n" " screen_blank:\n"
" --\n" " --\n"
" fs:\n"
" gaps:\n"
" grow:\n"
" fuzz:\n"
" snapfb\n"
" --\n"
" xdamage\n"
" xd_area:\n"
" xd_mem:\n"
" --\n"
" threads\n"
" --\n"
" progressive:\n" " progressive:\n"
"\"\n" "\"\n"
"}\n" "}\n"
...@@ -401,6 +410,11 @@ ...@@ -401,6 +410,11 @@
"\n" "\n"
" set helptext(all) $helpall\n" " set helptext(all) $helpall\n"
"\n" "\n"
" set helptext(Misc-Tuning:) \"\n"
"These contain some miscellaneous tuning parameters that are not\n"
"often used. Placed here to avoid overcrowding in the Tuning menu.\n"
"\"\n"
"\n"
" set helptext(gui) \"\n" " set helptext(gui) \"\n"
"tkx11vnc is a simple frontend to x11vnc. Nothing fancy, it merely\n" "tkx11vnc is a simple frontend to x11vnc. Nothing fancy, it merely\n"
"provides an interface to each of the many x11vnc command line options and\n" "provides an interface to each of the many x11vnc command line options and\n"
...@@ -707,7 +721,7 @@ ...@@ -707,7 +721,7 @@
" set text \"Help on $item:\\n\\n\"\n" " set text \"Help on $item:\\n\\n\"\n"
"\n" "\n"
" if {[is_gui_internal $item]} {\n" " if {[is_gui_internal $item]} {\n"
" if {$item != \"gui\" && $item != \"all\"} {\n" " if {$item != \"gui\" && $item != \"all\" && $item != \"Misc-Tuning:\"} {\n"
" append text \" + Is a gui internal Action (cannot be set).\\n\";\n" " append text \" + Is a gui internal Action (cannot be set).\\n\";\n"
" }\n" " }\n"
" } elseif {[is_action $item]} {\n" " } elseif {[is_action $item]} {\n"
...@@ -1163,6 +1177,9 @@ ...@@ -1163,6 +1177,9 @@
" if {$do_query_all} {\n" " if {$do_query_all} {\n"
" set all [all_query_vars]\n" " set all [all_query_vars]\n"
" set qargs [list \"-Q\" $all]\n" " set qargs [list \"-Q\" $all]\n"
"\n"
" global last_query_all_time\n"
" set last_query_all_time [clock seconds]\n"
" }\n" " }\n"
"\n" "\n"
" set rqargs [concat $rargs $qargs]\n" " set rqargs [concat $rargs $qargs]\n"
...@@ -1652,6 +1669,7 @@ ...@@ -1652,6 +1669,7 @@
"\n" "\n"
"proc query_all {{quiet 0}} {\n" "proc query_all {{quiet 0}} {\n"
" global query_ans_list query_aro_list all_settings\n" " global query_ans_list query_aro_list all_settings\n"
" global last_query_all_time\n"
"\n" "\n"
" set qry [all_query_vars]\n" " set qry [all_query_vars]\n"
"\n" "\n"
...@@ -1669,6 +1687,7 @@ ...@@ -1669,6 +1687,7 @@
" append_text \"Failed to retrieve settings.\\n\"\n" " append_text \"Failed to retrieve settings.\\n\"\n"
" }\n" " }\n"
" }\n" " }\n"
" set last_query_all_time [clock seconds]\n"
" return $all\n" " return $all\n"
"}\n" "}\n"
"\n" "\n"
...@@ -1822,6 +1841,9 @@ ...@@ -1822,6 +1841,9 @@
" } elseif {$item == \"tail-logfile\"} {\n" " } elseif {$item == \"tail-logfile\"} {\n"
" tail_logfile\n" " tail_logfile\n"
" return\n" " return\n"
" } elseif {$item == \"Misc-Tuning:\"} {\n"
" menu_help \"$item\"\n"
" return\n"
" } elseif {$item == \"stop+quit\"} {\n" " } elseif {$item == \"stop+quit\"} {\n"
" push_new_value \"stop\" \"stop\" 1 0\n" " push_new_value \"stop\" \"stop\" 1 0\n"
" set_connected no\n" " set_connected no\n"
...@@ -2487,6 +2509,29 @@ ...@@ -2487,6 +2509,29 @@
" }\n" " }\n"
"}\n" "}\n"
"\n" "\n"
"proc menu_posted {} {\n"
" global last_query_all_time query_all_freq\n"
" global connected_to_x11vnc\n"
" set now [clock seconds]\n"
"\n"
"\n"
" if {$connected_to_x11vnc} {\n"
" set quiet 0\n"
" set refresh [expr \"$last_query_all_time + $query_all_freq\"]\n"
"\n"
" # puts \"menu_posted $now $last_query_all_time\"\n"
" # puts \"menu_posted $refresh\"\n"
"\n"
" if {$now > $refresh} {\n"
" append_text \"Refreshing settings... \"\n"
" query_all $quiet\n"
" if {$quiet} {\n"
" append_text \"done\\n\"\n"
" }\n"
" }\n"
" }\n"
"}\n"
"\n"
"proc make_widgets {} {\n" "proc make_widgets {} {\n"
" global template \n" " global template \n"
" global menu_b menu_m menu_count\n" " global menu_b menu_m menu_count\n"
...@@ -2563,7 +2608,7 @@ ...@@ -2563,7 +2608,7 @@
" -anchor w -menu $menu -background $fbg \\\n" " -anchor w -menu $menu -background $fbg \\\n"
" -font $bfont\n" " -font $bfont\n"
" pack $menub -side top -fill x\n" " pack $menub -side top -fill x\n"
" menu $menu -tearoff 0\n" " menu $menu -tearoff 0 -postcommand menu_posted\n"
" }\n" " }\n"
" }\n" " }\n"
" pack $f -side top -fill x\n" " pack $f -side top -fill x\n"
...@@ -3038,6 +3083,7 @@ ...@@ -3038,6 +3083,7 @@
"global connected_to_x11vnc\n" "global connected_to_x11vnc\n"
"global delay_sleep extra_sleep extra_sleep_split\n" "global delay_sleep extra_sleep extra_sleep_split\n"
"global cache_all_query_vars\n" "global cache_all_query_vars\n"
"global last_query_all_time query_all_freq\n"
"\n" "\n"
"set unset_str \"(unset)\"\n" "set unset_str \"(unset)\"\n"
"set connected_to_x11vnc 0\n" "set connected_to_x11vnc 0\n"
...@@ -3051,6 +3097,8 @@ ...@@ -3051,6 +3097,8 @@
"set all_settings \"None so far.\"\n" "set all_settings \"None so far.\"\n"
"set always_update 1\n" "set always_update 1\n"
"set cache_all_query_vars \"\"\n" "set cache_all_query_vars \"\"\n"
"set query_all_freq 120\n"
"set last_query_all_time [clock seconds]\n"
"\n" "\n"
"# these are no longer used under x11vnc -sync:\n" "# these are no longer used under x11vnc -sync:\n"
"set delay_sleep 350\n" "set delay_sleep 350\n"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
.TH X11VNC "1" "May 2005" "x11vnc " "User Commands" .TH X11VNC "1" "May 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-05-02 version: 0.7.2, lastmod: 2005-05-14
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...
...@@ -647,6 +647,11 @@ Print this help text. ...@@ -647,6 +647,11 @@ Print this help text.
.IP .IP
Print program version and last modification date. Print program version and last modification date.
.PP .PP
\fB-dbg\fR
.IP
instead of exiting after cleaning up, run a simple
"debug crash shell" when fatal errors are trapped.
.PP
\fB-q\fR \fB-q\fR
.IP .IP
Be quiet by printing less informational output to Be quiet by printing less informational output to
...@@ -677,12 +682,16 @@ identical keyboards). Also useful in resolving cases ...@@ -677,12 +682,16 @@ identical keyboards). Also useful in resolving cases
where a Keysym is bound to multiple keys (e.g. "<" + ">" where a Keysym is bound to multiple keys (e.g. "<" + ">"
and "," + "<" keys). Default: \fB-modtweak\fR and "," + "<" keys). Default: \fB-modtweak\fR
.PP .PP
\fB-xkb\fR \fB-xkb,\fR \fB-noxkb\fR
.IP .IP
When in modtweak mode, use the XKEYBOARD extension (if When in modtweak mode, use the XKEYBOARD extension (if
the X display supports it) to do the modifier tweaking. the X display supports it) to do the modifier tweaking.
This is powerful and should be tried if there are still This is powerful and should be tried if there are still
keymapping problems when using \fB-modtweak\fR by itself. keymapping problems when using \fB-modtweak\fR by itself.
The default is to check whether some common keysyms,
e.g. !, @, [, are only accessible via \fB-xkb\fR mode and if
so then automatically enable the mode. To disable this
automatic detection use \fB-noxkb.\fR
.PP .PP
\fB-skip_keycodes\fR \fIstring\fR \fB-skip_keycodes\fR \fIstring\fR
.IP .IP
...@@ -695,12 +704,21 @@ when ambiguities exist (more than one Keycode per ...@@ -695,12 +704,21 @@ when ambiguities exist (more than one Keycode per
Keysym). Run 'xmodmap \fB-pk'\fR to see your keymapping. Keysym). Run 'xmodmap \fB-pk'\fR to see your keymapping.
Example: "\fB-skip_keycodes\fR \fI94,114\fR" Example: "\fB-skip_keycodes\fR \fI94,114\fR"
.PP .PP
\fB-add_keysyms\fR \fB-skip_dups,\fR \fB-noskip_dups\fR
.IP
Some VNC viewers send impossible repeated key events,
e.g. key-down, key-down, key-up, key-up all for the
same key, or 20 downs in a row for the same key!
Setting \fB-skip_dups\fR means to skip these duplicates and
just process the first event. Default: \fB-skip_dups\fR
.PP
\fB-add_keysyms,\fR \fB-noadd_keysyms\fR
.IP .IP
If a Keysym is received from a VNC viewer and If a Keysym is received from a VNC viewer and
that Keysym does not exist in the X server, then that Keysym does not exist in the X server, then
add the Keysym to the X server's keyboard mapping. add the Keysym to the X server's keyboard mapping.
Added Keysyms will be removed when x11vnc exits. Added Keysyms will be removed periodically and also
when x11vnc exits. Default: \fB-add_keysyms\fR
.PP .PP
\fB-clear_mods\fR \fB-clear_mods\fR
.IP .IP
...@@ -727,17 +745,57 @@ header file for a list of Keysym names, or use ...@@ -727,17 +745,57 @@ header file for a list of Keysym names, or use
To map a key to a button click, use the fake Keysyms To map a key to a button click, use the fake Keysyms
"Button1", ..., etc. E.g: "\fB-remap\fR \fISuper_R-Button2\fR" "Button1", ..., etc. E.g: "\fB-remap\fR \fISuper_R-Button2\fR"
(useful for pasting on a laptop) (useful for pasting on a laptop)
.IP
Dead keys: "dead" (or silent, mute) keys are keys that
do not produce a character but must be followed by a 2nd
keystroke. This is often used for accenting characters,
e.g. to put "'" on top of "a" by pressing the dead
key and then "a". Note that this interpretation
is not part of core X11, it is up to the toolkit or
application to decide how to react to the sequence.
The X11 names for these keysyms are "dead_grave",
"dead_acute", etc. However some VNC viewers send the
keysyms "grave", "acute" instead thereby disabling
the accenting. To work around this \fB-remap\fR can be used.
For example "\fB-remap\fR \fIgrave-dead_grave,acute-dead_acute\fR"
.IP
As a convenience, "\fB-remap\fR \fIDEAD\fR" applies these remaps:
.IP
g grave-dead_grave
a acute-dead_acute
c asciicircum-dead_circumflex
t asciitilde-dead_tilde
m macron-dead_macron
b breve-dead_breve
D abovedot-dead_abovedot
d diaeresis-dead_diaeresis
o degree-dead_abovering
A doubleacute-dead_doubleacute
r caron-dead_caron
e cedilla-dead_cedilla
.IP
.IP
If you just want a subset use the first letter
label, e.g. "\fB-remap\fR \fIDEAD=ga\fR" to get the first two.
Additional remaps may also be supplied via commas,
e.g. "\fB-remap\fR \fIDEAD=ga,Super_R-Button2\fR". Finally,
"DEAD=missing" means to apply all of the above as
long as the left hand member is not already in the
X11 keymap.
.PP .PP
\fB-norepeat,\fR \fB-repeat\fR \fB-norepeat,\fR \fB-repeat\fR
.IP .IP
Option \fB-norepeat\fR disables X server key auto repeat Option \fB-norepeat\fR disables X server key auto repeat when
when VNC clients are connected. This works around a VNC clients are connected and VNC keyboard input is
not idle for more than 5 minutes. This works around a
repeating keystrokes bug (triggered by long processing repeating keystrokes bug (triggered by long processing
delays between key down and key up client events: delays between key down and key up client events: either
either from large screen changes or high latency). from large screen changes or high latency).
Default: \fB-norepeat\fR
.IP
Note: your VNC viewer side will likely do autorepeating, Note: your VNC viewer side will likely do autorepeating,
so this is no loss unless someone is simultaneously at so this is no loss unless someone is simultaneously at
the real X display. Default: \fB-norepeat\fR the real X display.
.IP .IP
Use "\fB-norepeat\fR \fIN\fR" to set how many times norepeat will Use "\fB-norepeat\fR \fIN\fR" to set how many times norepeat will
be reset if something else (e.g. X session manager) be reset if something else (e.g. X session manager)
...@@ -1018,6 +1076,12 @@ Note: there can be painting errors when using \fB-scale\fR ...@@ -1018,6 +1076,12 @@ Note: there can be painting errors when using \fB-scale\fR
so CopyRect is skipped when scaling unless you specify so CopyRect is skipped when scaling unless you specify
\fB-wirecopyrect\fR on the command line or by remote-control. \fB-wirecopyrect\fR on the command line or by remote-control.
.PP .PP
\fB-debug_wireframe\fR
.IP
Turn on debugging info printout for the wireframe
heuristics. "\fB-dwf\fR" is an alias. Specify multiple
times for more output.
.PP
\fB-scrollcopyrect\fR \fImode,\fR \fB-noscrollcopyrect\fR \fB-scrollcopyrect\fR \fImode,\fR \fB-noscrollcopyrect\fR
.IP .IP
Like \fB-wirecopyrect,\fR but use heuristics to try to guess Like \fB-wirecopyrect,\fR but use heuristics to try to guess
...@@ -1036,12 +1100,13 @@ This scheme will not always detect scrolls, but when ...@@ -1036,12 +1100,13 @@ This scheme will not always detect scrolls, but when
it does there is a nice speedup from using the VNC it does there is a nice speedup from using the VNC
CopyRect encoding (see \fB-wirecopyrect).\fR The speedup CopyRect encoding (see \fB-wirecopyrect).\fR The speedup
is both in reduced network traffic and reduced X is both in reduced network traffic and reduced X
framebuffer polling/copying. On the other hand, framebuffer polling/copying. On the other hand, it may
it may induce undesired transients (e.g. a terminal induce undesired transients (e.g. a terminal cursor
cursor being scrolled up when it should not be) or other being scrolled up when it should not be) or other
painting errors. These are automatically repaired in a painting errors (window tearing, bunching-up, etc).
short period of time. If this is unacceptable disable These are automatically repaired in a short period
the feature with \fB-noscrollcopyrect.\fR of time. If this is unacceptable disable the feature
with \fB-noscrollcopyrect.\fR
.IP .IP
"mode" can be "never" (same as \fB-noscrollcopyrect)\fR "mode" can be "never" (same as \fB-noscrollcopyrect)\fR
to never try the copyrect, "keys" means to try it to never try the copyrect, "keys" means to try it
...@@ -1065,6 +1130,113 @@ scrollbar first and then shifted the large panel ...@@ -1065,6 +1130,113 @@ scrollbar first and then shifted the large panel
it controlled. We want to be sure to skip the small it controlled. We want to be sure to skip the small
scrollbar and get the large panel. Default: 60000 scrollbar and get the large panel. Default: 60000
.PP .PP
\fB-scr_skip\fR \fIlist\fR
.IP
Skip scroll detection for applications matching
the comma separated list of strings in \fIlist\fR.
Some applications implement their scrolling in
strange ways where the XCopyArea, etc, also applies
to invisible portions of the window: if we CopyRect
those areas it looks awful during the scroll and
there may be painting errors left after the scroll.
Soffice.bin is the worst known offender.
.IP
Use "##" to denote the start of the application class
(e.g. "##XTerm") and "++" to denote the start
of the application instance name (e.g. "++xterm").
The string your list is matched against is of the form
"^^WM_NAME##Class++Instance<same-for-any-subwindows>"
The "xlsclients \fB-la"\fR command will provide this info.
.IP
If a pattern is prefixed with "KEY:" it only applies
to Keystroke generated scrolls (e.g. Up arrow). If it
is prefixed with "MOUSE:" it only applies to Mouse
induced scrolls (e.g. dragging on a scrollbar).
Default: ##Soffice.bin
.PP
\fB-scr_inc\fR \fIlist\fR
.IP
Opposite of \fB-scr_skip:\fR this list is consulted first
and if there is a match the window will be monitored
via RECORD for scrolls irrespective of \fB-scr_skip.\fR
Use \fB-scr_skip\fR '*' to skip anything that does not match
your \fB-scr_inc.\fR Use \fB-scr_inc\fR '*' to include everything.
.PP
\fB-scr_keys\fR \fIlist\fR
.IP
For keystroke scroll detection, only apply the RECORD
heuristics to the comma separated list of keysyms in
\fIlist\fR. You may find the RECORD overhead for every
one of your keystrokes disrupts typing too much, but you
don't want to turn it off completely with "\fB-scr\fR \fImouse\fR"
and \fB-scr_parms\fR does not work or is too confusing.
.IP
The listed keysyms can be numeric or the keysym
names in the <X11/keysymdef.h> header file or from the
.IR xev (1)
program. Example: "\fB-scr_keys\fR \fIUp,Down,Return\fR".
One probably wants to have application specific lists
(e.g. for terminals, etc) but that is too icky to think
about for now...
.IP
If \fIlist\fR begins with the "-" character the list
is taken as an exclude list: all keysyms except those
list will be considered. The special string "builtin"
expands to an internal list of keysyms that are likely
to cause scrolls. BTW, by default modifier keys,
Shift_L, Control_R, etc, are skipped since they almost
never induce scrolling by themselves.
.PP
\fB-scr_parms\fR \fIstring\fR
.IP
Set various parameters for the scrollcopyrect mode.
The format is similar to that for \fB-wireframe\fR and packed
with lots of parameters:
.IP
Format: T+B+L+R,t1+t2+t3,s1+s2+s3+s4+s5
Default: 0+64+32+32,0.02+0.10+0.9,0.03+0.06+0.5+0.1+5.0
.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
"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 scrollcopyrect.
If \fB-wireframe\fR overlaps it takes precedence. This is a
speedup to quickly exclude a window from being watched
for scrollcopyrect: set them all to zero to not try
the speedup (things like selecting text will likely
be slower).
.IP
"t1+t2+t3" specify three floating point times in
seconds that apply to scrollcopyrect detection with
*Keystroke* input: t1 is how long to wait after a key
is pressed for the first scroll, t2 is how long to keep
looking after a Keystroke scroll for more scrolls.
t3 is how frequently to try to update surrounding
scrollbars outside of the scrolling area (0.0 to
disable)
.IP
"s1+s2+s3+s4+s5" specify five floating point times
in seconds that apply to scrollcopyrect detection with
*Mouse* input: s1 is how long to wait after a mouse
button is pressed for the first scroll, s2 is how long
to keep waiting for additional scrolls after the first
Mouse scroll was detected. s3 is how frequently to
try to update surrounding scrollbars outside of the
scrolling area (0.0 to disable). s4 is how long to
buffer pointer motion (to try to get fewer, bigger
mouse scrolls). s5 is the maximum time to spend just
updating the scroll window without updating the rest
of the screen.
.PP
\fB-debug_scroll\fR
.IP
Turn on debugging info printout for the scroll
heuristics. "\fB-ds\fR" is an alias. Specify it multiple
times for more output.
.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
...@@ -1077,7 +1249,7 @@ screen changes: everything will bog down when dragging ...@@ -1077,7 +1249,7 @@ screen changes: everything will bog down when dragging
or scrolling. So a scheme has to be used to "eat" or scrolling. So a scheme has to be used to "eat"
much of that pointer input before re-polling the screen much of that pointer input before re-polling the screen
and sending out framebuffer updates. The mode number and sending out framebuffer updates. The mode number
\fIn\fR can be 0 to 5 and selects one of the schemes \fIn\fR can be 0 to 4 and selects one of the schemes
desribed below. desribed below.
.IP .IP
n=0: does the same as \fB-nodragging.\fR (all screen polling n=0: does the same as \fB-nodragging.\fR (all screen polling
...@@ -1091,22 +1263,18 @@ n=2 is an improved scheme: by watching the current rate ...@@ -1091,22 +1263,18 @@ 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.
.IP .IP
n=3 is basically the same as n=2 except with slightly n=3 is basically a dynamic \fB-nodragging\fR mode: it detects
tweaked parameters. We made this a new one so one
could use \fB-pm\fR 2 for the old behavior. NOT FINISHED.
.IP
n=4 is basically a dynamic \fB-nodragging\fR mode: it detects
when the mouse motion has paused and then refreshes when the mouse motion has paused and then refreshes
the display. the display.
.IP .IP
n=5 attempts to measures network rates and latency, n=4 attempts to measures network rates and latency,
the video card read rate, and how many tiles have been the video card read rate, and how many tiles have been
changed on the screen. From this, it aggressively tries changed on the screen. From this, it aggressively tries
to push screen "frames" when it decides it has enough to push screen "frames" when it decides it has enough
resources to do so. NOT FINISHED. resources to do so. NOT FINISHED.
.IP .IP
The default n is 2. Note that modes 2, 3, 4, 5 will The default n is 2. Note that modes 2, 3, 4 will skip
skip \fB-input_skip\fR keyboard events (but it will not count \fB-input_skip\fR keyboard events (but it will not count
pointer events). Also note that these modes are not pointer events). Also note that these modes are not
available in \fB-threads\fR mode which has its own pointer available in \fB-threads\fR mode which has its own pointer
event handling mechanism. event handling mechanism.
...@@ -1128,7 +1296,7 @@ Default: 10 ...@@ -1128,7 +1296,7 @@ Default: 10
.IP .IP
x11vnc tries to estimate some speed parameters that x11vnc tries to estimate some speed parameters that
are used to optimize scheduling (e.g. \fB-pointer_mode\fR are used to optimize scheduling (e.g. \fB-pointer_mode\fR
5) and other things. Use the \fB-speeds\fR option to set 4) and other things. Use the \fB-speeds\fR option to set
these manually. The triple \fIrd,bw,lat\fR corresponds these manually. The triple \fIrd,bw,lat\fR corresponds
to video h/w read rate in MB/sec, network bandwidth to to video h/w read rate in MB/sec, network bandwidth to
clients in KB/sec, and network latency to clients in clients in KB/sec, and network latency to clients in
...@@ -1173,6 +1341,13 @@ Time in ms to wait for updates before sending to client ...@@ -1173,6 +1341,13 @@ Time in ms to wait for updates before sending to client
Time in ms to pause between screen polls. Used to cut Time in ms to pause between screen polls. Used to cut
down on load. Default: 30 down on load. Default: 30
.PP .PP
\fB-readtimeout\fR \fIn\fR
.IP
Set libvncserver rfbMaxClientWait to n seconds. On
slow links that take a long time to paint the first
screen libvncserver may hit the timeout and drop the
connection. Default: 20 seconds.
.PP
\fB-nap\fR \fB-nap\fR
.IP .IP
Monitor activity and if it is low take longer naps Monitor activity and if it is low take longer naps
...@@ -1191,7 +1366,8 @@ for about 1.5 secs). Use 0 to disable. Default: 60 ...@@ -1191,7 +1366,8 @@ for about 1.5 secs). Use 0 to disable. Default: 60
\fB-noxdamage\fR \fB-noxdamage\fR
.IP .IP
Do not use the X DAMAGE extension to detect framebuffer Do not use the X DAMAGE extension to detect framebuffer
changes even if it is available. changes even if it is available. Use \fB-xdamage\fR if your
default is to have it off.
.IP .IP
x11vnc's use of the DAMAGE extension: 1) significantly x11vnc's use of the DAMAGE extension: 1) significantly
reduces the load when the screen is not changing much, reduces the load when the screen is not changing much,
...@@ -1259,6 +1435,10 @@ by checking the tile near the boundary. Default: 3 ...@@ -1259,6 +1435,10 @@ by checking the tile near the boundary. Default: 3
Tolerance in pixels to mark a tiles edges as changed. Tolerance in pixels to mark a tiles edges as changed.
Default: 2 Default: 2
.PP .PP
\fB-debug_tiles\fR
.IP
Print debugging output for tiles, fb updates, etc.
.PP
\fB-snapfb\fR \fB-snapfb\fR
.IP .IP
Instead of polling the X display framebuffer (fb) for Instead of polling the X display framebuffer (fb) for
...@@ -1436,22 +1616,22 @@ Please report reproducible bugs. ...@@ -1436,22 +1616,22 @@ Please report reproducible bugs.
The following \fB-remote/-R\fR commands are supported: The following \fB-remote/-R\fR commands are supported:
.IP .IP
stop terminate the server, same as "quit" stop terminate the server, same as "quit"
"exit" or "shutdown". "exit" or "shutdown".
.IP .IP
ping see if the x11vnc server responds. ping see if the x11vnc server responds.
Return is: ans=ping:<xdisplay> Return is: ans=ping:<xdisplay>
.IP .IP
blacken try to push a black fb update to all blacken try to push a black fb update to all
clients (due to timings a client clients (due to timings a client
could miss it). Same as "zero", also could miss it). Same as "zero", also
"zero:x1,y1,x2,y2" for a rectangle. "zero:x1,y1,x2,y2" for a rectangle.
.IP .IP
refresh send the entire fb to all clients. refresh send the entire fb to all clients.
.IP .IP
reset recreate the fb, polling memory, etc. reset recreate the fb, polling memory, etc.
.IP .IP
id:windowid set \fB-id\fR window to "windowid". empty id:windowid set \fB-id\fR window to "windowid". empty
or "root" to go back to root window or "root" to go back to root window
.IP .IP
sid:windowid set \fB-sid\fR window to "windowid" sid:windowid set \fB-sid\fR window to "windowid"
.IP .IP
...@@ -1478,7 +1658,7 @@ nooverlay disable \fB-overlay\fR mode. ...@@ -1478,7 +1658,7 @@ nooverlay disable \fB-overlay\fR mode.
overlay_cursor in \fB-overlay\fR mode, enable cursor drawing. overlay_cursor in \fB-overlay\fR mode, enable cursor drawing.
.IP .IP
overlay_nocursor disable cursor drawing. same as overlay_nocursor disable cursor drawing. same as
nooverlay_cursor. nooverlay_cursor.
.IP .IP
visual:vis set \fB-visual\fR to "vis" visual:vis set \fB-visual\fR to "vis"
.IP .IP
...@@ -1499,8 +1679,8 @@ forever enable \fB-forever\fR mode. ...@@ -1499,8 +1679,8 @@ forever enable \fB-forever\fR mode.
noforever disable \fB-forever\fR mode. noforever disable \fB-forever\fR mode.
.IP .IP
timeout:n reset \fB-timeout\fR to n, if there are timeout:n reset \fB-timeout\fR to n, if there are
currently no clients, exit unless one currently no clients, exit unless one
connects in the next n secs. connects in the next n secs.
.IP .IP
http enable http client connections. http enable http client connections.
.IP .IP
...@@ -1511,24 +1691,24 @@ deny deny any new connections, same as "lock" ...@@ -1511,24 +1691,24 @@ deny deny any new connections, same as "lock"
nodeny allow new connections, same as "unlock" nodeny allow new connections, same as "unlock"
.IP .IP
connect:host do reverse connection to host, "host" connect:host do reverse connection to host, "host"
may be a comma separated list of hosts may be a comma separated list of hosts
or host:ports. See \fB-connect.\fR or host:ports. See \fB-connect.\fR
.IP .IP
disconnect:host disconnect any clients from "host" disconnect:host disconnect any clients from "host"
same as "close:host". Use host same as "close:host". Use host
"all" to close all current clients. "all" to close all current clients.
If you know the client internal hex ID, If you know the client internal hex ID,
e.g. 0x3 (returned by "\fB-query\fR \fIclients\fR" e.g. 0x3 (returned by "\fB-query\fR \fIclients\fR"
and RFB_CLIENT_ID) you can use that too. and RFB_CLIENT_ID) you can use that too.
.IP .IP
allowonce:host For the next connection only, allow allowonce:host For the next connection only, allow
connection from "host". connection from "host".
.IP .IP
allow:hostlist set \fB-allow\fR list to (comma separated) allow:hostlist set \fB-allow\fR list to (comma separated)
"hostlist". See \fB-allow\fR and \fB-localhost.\fR "hostlist". See \fB-allow\fR and \fB-localhost.\fR
Do not use with \fB-allow\fR /path/to/file Do not use with \fB-allow\fR /path/to/file
Use "+host" to add a single host, and Use "+host" to add a single host, and
use "\fB-host\fR" to delete a single host use "\fB-host\fR" to delete a single host
.IP .IP
localhost enable \fB-localhost\fR mode localhost enable \fB-localhost\fR mode
.IP .IP
...@@ -1543,9 +1723,9 @@ lookup disable \fB-nolookup\fR mode. ...@@ -1543,9 +1723,9 @@ lookup disable \fB-nolookup\fR mode.
input:str set \fB-input\fR to "str", empty to disable. input:str set \fB-input\fR to "str", empty to disable.
.IP .IP
client_input:str set the K, M, B \fB-input\fR on a per-client client_input:str set the K, M, B \fB-input\fR on a per-client
basis. select which client as for basis. select which client as for
disconnect, e.g. client_input:host:MB disconnect, e.g. client_input:host:MB
or client_input:0x2:K or client_input:0x2:K
.IP .IP
accept:cmd set \fB-accept\fR "cmd" (empty to disable). accept:cmd set \fB-accept\fR "cmd" (empty to disable).
.IP .IP
...@@ -1556,12 +1736,12 @@ noshm enable \fB-noshm\fR mode. ...@@ -1556,12 +1736,12 @@ noshm enable \fB-noshm\fR mode.
shm disable \fB-noshm\fR mode (i.e. use shm). shm disable \fB-noshm\fR mode (i.e. use shm).
.IP .IP
flipbyteorder enable \fB-flipbyteorder\fR mode, you may need flipbyteorder enable \fB-flipbyteorder\fR mode, you may need
to set noshm for this to do something. to set noshm for this to do something.
.IP .IP
noflipbyteorder disable \fB-flipbyteorder\fR mode. noflipbyteorder disable \fB-flipbyteorder\fR mode.
.IP .IP
onetile enable \fB-onetile\fR mode. (you may need to onetile enable \fB-onetile\fR mode. (you may need to
set shm for this to do something) set shm for this to do something)
.IP .IP
noonetile disable \fB-onetile\fR mode. noonetile disable \fB-onetile\fR mode.
.IP .IP
...@@ -1572,10 +1752,10 @@ nosolid disable \fB-solid\fR mode. ...@@ -1572,10 +1752,10 @@ nosolid disable \fB-solid\fR mode.
solid_color:color set \fB-solid\fR color (and apply it). solid_color:color set \fB-solid\fR color (and apply it).
.IP .IP
blackout:str set \fB-blackout\fR "str" (empty to disable). blackout:str set \fB-blackout\fR "str" (empty to disable).
See \fB-blackout\fR for the form of "str" See \fB-blackout\fR for the form of "str"
(basically: WxH+X+Y,...) (basically: WxH+X+Y,...)
Use "+WxH+X+Y" to append a single Use "+WxH+X+Y" to append a single
rectangle use "-WxH+X+Y" to delete one rectangle use "-WxH+X+Y" to delete one
.IP .IP
xinerama enable \fB-xinerama\fR mode. (if applicable) xinerama enable \fB-xinerama\fR mode. (if applicable)
.IP .IP
...@@ -1592,8 +1772,8 @@ noxrandr disable \fB-xrandr\fR mode. ...@@ -1592,8 +1772,8 @@ noxrandr disable \fB-xrandr\fR mode.
xrandr_mode:mode set the \fB-xrandr\fR mode to "mode". xrandr_mode:mode set the \fB-xrandr\fR mode to "mode".
.IP .IP
padgeom:WxH set \fB-padgeom\fR to WxH (empty to disable) padgeom:WxH set \fB-padgeom\fR to WxH (empty to disable)
If WxH is "force" or "do" the padded If WxH is "force" or "do" the padded
geometry fb is immediately applied. geometry fb is immediately applied.
.IP .IP
quiet enable \fB-quiet\fR mode. quiet enable \fB-quiet\fR mode.
.IP .IP
...@@ -1609,10 +1789,14 @@ noxkb disable \fB-xkb\fR modtweak mode. ...@@ -1609,10 +1789,14 @@ noxkb disable \fB-xkb\fR modtweak mode.
.IP .IP
skip_keycodes:str enable \fB-xkb\fR \fB-skip_keycodes\fR "str". skip_keycodes:str enable \fB-xkb\fR \fB-skip_keycodes\fR "str".
.IP .IP
skip_dups enable \fB-skip_dups\fR mode.
.IP
noskip_dups disable \fB-skip_dups\fR mode.
.IP
add_keysyms enable \fB-add_keysyms\fR mode. add_keysyms enable \fB-add_keysyms\fR mode.
.IP .IP
noadd_keysyms stop adding keysyms. those added will noadd_keysyms stop adding keysyms. those added will
still be removed at exit. still be removed at exit.
.IP .IP
clear_mods enable \fB-clear_mods\fR mode and clear them. clear_mods enable \fB-clear_mods\fR mode and clear them.
.IP .IP
...@@ -1623,10 +1807,10 @@ clear_keys enable \fB-clear_keys\fR mode and clear them. ...@@ -1623,10 +1807,10 @@ clear_keys enable \fB-clear_keys\fR mode and clear them.
noclear_keys disable \fB-clear_keys\fR mode. noclear_keys disable \fB-clear_keys\fR mode.
.IP .IP
remap:str set \fB-remap\fR "str" (empty to disable). remap:str set \fB-remap\fR "str" (empty to disable).
See \fB-remap\fR for the form of "str" See \fB-remap\fR for the form of "str"
(basically: key1-key2,key3-key4,...) (basically: key1-key2,key3-key4,...)
Use "+key1-key2" to append a single Use "+key1-key2" to append a single
keymapping, use "-key1-key2" to delete. keymapping, use "-key1-key2" to delete.
.IP .IP
norepeat enable \fB-norepeat\fR mode. norepeat enable \fB-norepeat\fR mode.
.IP .IP
...@@ -1653,7 +1837,7 @@ cursor:mode enable \fB-cursor\fR "mode". ...@@ -1653,7 +1837,7 @@ cursor:mode enable \fB-cursor\fR "mode".
show_cursor enable showing a cursor. show_cursor enable showing a cursor.
.IP .IP
noshow_cursor disable showing a cursor. (same as noshow_cursor disable showing a cursor. (same as
"nocursor") "nocursor")
.IP .IP
arrow:n set \fB-arrow\fR to alternate n. arrow:n set \fB-arrow\fR to alternate n.
.IP .IP
...@@ -1707,6 +1891,14 @@ noscrollcopyrect disable \fB-scrollcopyrect__mode_.\fR "noscr" ...@@ -1707,6 +1891,14 @@ noscrollcopyrect disable \fB-scrollcopyrect__mode_.\fR "noscr"
.IP .IP
scr_area:n set \fB-scr_area\fR to n scr_area:n set \fB-scr_area\fR to n
.IP .IP
scr_skip:list set \fB-scr_skip\fR to "list"
.IP
scr_inc:list set \fB-scr_inc\fR to "list"
.IP
scr_keys:list set \fB-scr_keys\fR to "list"
.IP
scr_parms:str set \fB-scr_parms\fR parameters.
.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.
...@@ -1725,7 +1917,7 @@ defer:n set \fB-defer\fR to n ms,same as deferupdate:n ...@@ -1725,7 +1917,7 @@ defer:n set \fB-defer\fR to n ms,same as deferupdate:n
.IP .IP
wait:n set \fB-wait\fR to n ms. wait:n set \fB-wait\fR to n ms.
.IP .IP
rfbwait:n set \fB-rfbwait\fR (rfbMaxClientWait) to n ms. readtimeout:n set read timeout to n seconds.
.IP .IP
nap enable \fB-nap\fR mode. nap enable \fB-nap\fR mode.
.IP .IP
...@@ -1756,7 +1948,7 @@ nosnapfb disable \fB-snapfb\fR mode. ...@@ -1756,7 +1948,7 @@ nosnapfb disable \fB-snapfb\fR mode.
rawfb:str set \fB-rawfb\fR mode to "str". rawfb:str set \fB-rawfb\fR mode to "str".
.IP .IP
progressive:n set libvncserver \fB-progressive\fR slice progressive:n set libvncserver \fB-progressive\fR slice
height parameter to n. height parameter to n.
.IP .IP
desktop:str set \fB-desktop\fR name to str for new clients. desktop:str set \fB-desktop\fR name to str for new clients.
.IP .IP
...@@ -1773,17 +1965,17 @@ noenablehttpproxy disable \fB-enablehttpproxy\fR mode. ...@@ -1773,17 +1965,17 @@ noenablehttpproxy disable \fB-enablehttpproxy\fR mode.
alwaysshared enable \fB-alwaysshared\fR mode. alwaysshared enable \fB-alwaysshared\fR mode.
.IP .IP
noalwaysshared disable \fB-alwaysshared\fR mode. noalwaysshared disable \fB-alwaysshared\fR mode.
(may interfere with other options) (may interfere with other options)
.IP .IP
nevershared enable \fB-nevershared\fR mode. nevershared enable \fB-nevershared\fR mode.
.IP .IP
nonevershared disable \fB-nevershared\fR mode. nonevershared disable \fB-nevershared\fR mode.
(may interfere with other options) (may interfere with other options)
.IP .IP
dontdisconnect enable \fB-dontdisconnect\fR mode. dontdisconnect enable \fB-dontdisconnect\fR mode.
.IP .IP
nodontdisconnect disable \fB-dontdisconnect\fR mode. nodontdisconnect disable \fB-dontdisconnect\fR mode.
(may interfere with other options) (may interfere with other options)
.IP .IP
debug_xevents enable debugging X events. debug_xevents enable debugging X events.
.IP .IP
...@@ -1801,9 +1993,17 @@ debug_scroll enable debugging scrollcopy mechanism. ...@@ -1801,9 +1993,17 @@ debug_scroll enable debugging scrollcopy mechanism.
.IP .IP
nodebug_scroll disable debugging scrollcopy mechanism. nodebug_scroll disable debugging scrollcopy mechanism.
.IP .IP
debug_tiles enable \fB-debug_tiles\fR
.IP
nodebug_tiles disable \fB-debug_tiles\fR
.IP
dbg enable \fB-dbg\fR crash shell
.IP
nodbg disable \fB-dbg\fR crash shell
.IP
.IP .IP
noremote disable the \fB-remote\fR command processing, noremote disable the \fB-remote\fR command processing,
it cannot be turned back on. it cannot be turned back on.
.IP .IP
.IP .IP
The The
...@@ -1873,38 +2073,40 @@ noflipbyteorder onetile noonetile solid_color ...@@ -1873,38 +2073,40 @@ noflipbyteorder onetile noonetile solid_color
solid nosolid blackout xinerama noxinerama xtrap 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 skip_dups noskip_dups add_keysyms noadd_keysyms
clear_keys noclear_keys remap repeat norepeat clear_mods noclear_mods clear_keys noclear_keys
fb nofb bell nobell sel nosel primary noprimary remap repeat norepeat fb nofb bell nobell sel nosel
cursorshape nocursorshape cursorpos nocursorpos cursor primary noprimary cursorshape nocursorshape cursorpos
show_cursor noshow_cursor nocursor arrow xfixes noxfixes nocursorpos cursor show_cursor noshow_cursor nocursor
xdamage noxdamage xd_area xd_mem alphacut alphafrac arrow xfixes noxfixes xdamage noxdamage xd_area xd_mem
alpharemove noalpharemove alphablend noalphablend alphacut alphafrac alpharemove noalpharemove alphablend
xwarp xwarppointer noxwarp noxwarppointer buttonmap noalphablend xwarppointer xwarp noxwarppointer noxwarp
dragging nodragging wireframe_mode wireframe wf buttonmap dragging nodragging wireframe_mode wireframe
nowireframe nowf wirecopyrect wcr nowirecopyrect nowcr wf nowireframe nowf wirecopyrect wcr nowirecopyrect
scr_area scrollcopyrect scr noscrollcopyrect noscr nowcr scr_area scr_skip scr_inc scr_keys scr_parms
pointer_mode pm input_skip input client_input speeds scrollcopyrect scr noscrollcopyrect noscr pointer_mode
debug_pointer dp nodebug_pointer nodp debug_keyboard dk pm input_skip input client_input speeds debug_pointer dp
nodebug_keyboard nodk deferupdate defer wait rfbwait nodebug_pointer nodp debug_keyboard dk nodebug_keyboard
nap nonap sb screen_blank fs gaps grow fuzz snapfb nodk deferupdate defer wait readtimeout nap nonap
nosnapfb rawfb progressive rfbport http nohttp httpport sb screen_blank fs gaps grow fuzz snapfb 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 debug_xevents nodebug_xevents
.IP debug_xevents debug_xdamage nodebug_xdamage
aro= debug_xevents nodebug_xevents debug_xevents debug_xdamage debug_wireframe nodebug_wireframe
debug_xdamage nodebug_xdamage debug_xdamage debug_wireframe debug_scroll nodebug_scroll debug_scroll
debug_wireframe nodebug_wireframe debug_wireframe debug_tiles dbt nodebug_tiles nodbt debug_tiles dbg
debug_scroll nodebug_scroll debug_scroll display nodbg noremote
vncdisplay desktopname http_url auth users rootshift .IP
clipshift scale_str scaled_x scaled_y scale_numer aro= display vncdisplay desktopname http_url auth
scale_denom scale_fac scaling_blend scaling_nomult4 users rootshift clipshift scale_str scaled_x scaled_y
scaling_pad scaling_interpolate inetd privremote scale_numer scale_denom scale_fac scaling_blend
unsafe safer nocmds passwdfile using_shm logfile scaling_nomult4 scaling_pad scaling_interpolate inetd
o flag rc norc h help V version lastmod bg sigpipe privremote unsafe safer nocmds passwdfile using_shm
threads readrate netrate netlatency pipeinput clients logfile o flag rc norc h help V version lastmod bg
client_count pid ext_xtest ext_xtrap ext_xrecord sigpipe threads readrate netrate netlatency pipeinput
clients client_count pid ext_xtest ext_xtrap ext_xrecord
ext_xkb ext_xshm ext_xinerama ext_overlay ext_xfixes ext_xkb ext_xshm ext_xinerama ext_overlay ext_xfixes
ext_xdamage ext_xrandr rootwin num_buttons button_mask ext_xdamage ext_xrandr rootwin num_buttons button_mask
mouse_x mouse_y bpp depth indexed_color dpy_x dpy_y mouse_x mouse_y bpp depth indexed_color dpy_x dpy_y
......
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