Commit 30c00d0b authored by runge's avatar runge

x11vnc: -filexfer, -slow_fb, -blackout noptr,...

parent 94d7fc84
2005-10-22 Karl Runge <runge@karlrunge.com>
* x11vnc: -filexfer file transfer, -slow_fb, -blackout noptr...
2005-10-06 Johannes E. Schindelin <Johannes.Schindelin@gmx.de> 2005-10-06 Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
* many a files: kill BackChannel and CustomClientMessage * many a files: kill BackChannel and CustomClientMessage
support. The new extension mechanism is much more versatile. support. The new extension mechanism is much more versatile.
......
2005-10-22 Karl Runge <runge@karlrunge.com>
* add tightVNC FileTransfer (-filexfer) and -DFILEXFER=1
* -slow_fb for special purpose infrequent polling.
* make -blackout work with copyrect clipping.
* -blackout noptr,WxH+X+Y,... to prevent pointer from going
into a blacked out region.
2005-07-17 Karl Runge <runge@karlrunge.com> 2005-07-17 Karl Runge <runge@karlrunge.com>
* more improvements to gui UE. gui requests via client_sock * more improvements to gui UE. gui requests via client_sock
PASSWD_REQUIRED and PASSWD_UNLESS_NOPW build options. PASSWD_REQUIRED and PASSWD_UNLESS_NOPW build options.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -55,6 +55,7 @@ catch {rename send {}} ...@@ -55,6 +55,7 @@ catch {rename send {}}
# 0 means to skip the item. # 0 means to skip the item.
# -- means add a separator # -- means add a separator
# #
proc set_template {} { proc set_template {} {
global template global template
set template " set template "
...@@ -186,6 +187,8 @@ Misc ...@@ -186,6 +187,8 @@ Misc
-- --
=F rc: =F rc:
norc norc
filexfer
--
nofb nofb
=D nobell =D nobell
nolookup nolookup
...@@ -572,6 +575,22 @@ of actions: ...@@ -572,6 +575,22 @@ of actions:
Stop x11vnc - Directs the x11vnc server to disconnect all vncviewers Stop x11vnc - Directs the x11vnc server to disconnect all vncviewers
and then exit. The tray/icon GUI then exits as well. and then exit. The tray/icon GUI then exits as well.
Custom - If you have a \$HOME/.x11vnc.gui file each uncommented
line in it becomes an additional menu item for this
menu. The remote control command is run directly
via \"x11vnc -R <command>\", or if prefixed with
\"action:\" runs a gui internal action, or if \"sep\"
adds a separator. Set X11VNC_CUSTOM_GUI to use
a different filename. Example file contents:
scale:3/4
scale:1
scale_cursor:1
sep
action:all-settings
#debug_keyboard
sep
action:Quit
Termination: Termination:
...@@ -1315,7 +1334,9 @@ proc help_win {item} { ...@@ -1315,7 +1334,9 @@ proc help_win {item} {
set ok 0 set ok 0
set text "Help on $item:\n\n" set text "Help on $item:\n\n"
if {[is_gui_internal $item]} { if {$item == "NewClient"} {
;
} elseif {[is_gui_internal $item]} {
if {$item != "gui" && $item != "all" && $item != "Misc-Tuning:" \ if {$item != "gui" && $item != "all" && $item != "Misc-Tuning:" \
&& $item != "Properties" && $item != "Tray"} { && $item != "Properties" && $item != "Tray"} {
append text " + Is a gui internal Action (cannot be set).\n"; append text " + Is a gui internal Action (cannot be set).\n";
...@@ -1327,7 +1348,9 @@ proc help_win {item} { ...@@ -1327,7 +1348,9 @@ proc help_win {item} {
} else { } else {
append text " - Cannot be changed in a running x11vnc.\n"; append text " - Cannot be changed in a running x11vnc.\n";
} }
if {[is_gui_internal $item]} { if {$item == "NewClient"} {
;
} elseif {[is_gui_internal $item]} {
; ;
} elseif {[active_when_starting $item]} { } elseif {[active_when_starting $item]} {
append text " + Can be set at x11vnc startup.\n"; append text " + Can be set at x11vnc startup.\n";
...@@ -2860,6 +2883,9 @@ proc do_action {item} { ...@@ -2860,6 +2883,9 @@ proc do_action {item} {
} elseif {$item == "WindowView"} { } elseif {$item == "WindowView"} {
change_view_state change_view_state
return return
} elseif {$item == "quit" || $item == "Quit"} {
destroy .
exit 0
} elseif {$item == "stop+quit"} { } elseif {$item == "stop+quit"} {
do_stop_quit do_stop_quit
} }
...@@ -3844,6 +3870,7 @@ proc props_advanced {} { ...@@ -3844,6 +3870,7 @@ proc props_advanced {} {
} else { } else {
set first 0 set first 0
} }
update
wm deiconify $full_win wm deiconify $full_win
update update
...@@ -4119,6 +4146,8 @@ proc pmenu {m x y} { ...@@ -4119,6 +4146,8 @@ proc pmenu {m x y} {
set x [expr $x-10] set x [expr $x-10]
set y [expr $y-10] set y [expr $y-10]
$m post $x $y $m post $x $y
# XXX more care needed
grab set -global $m
} }
proc set_client_balloon {str} { proc set_client_balloon {str} {
...@@ -4158,8 +4187,10 @@ proc set_client_balloon {str} { ...@@ -4158,8 +4187,10 @@ proc set_client_balloon {str} {
} }
} else { } else {
set i [expr $count+1] set i [expr $count+1]
if {$i == 1} {
set client_balloon "${client_balloon}\nunknown-host$i" set client_balloon "${client_balloon}\nunknown-host$i"
} }
}
incr count incr count
} }
if {$count == 0} { if {$count == 0} {
...@@ -4458,18 +4489,27 @@ proc get_icon_label {{set 0}} { ...@@ -4458,18 +4489,27 @@ proc get_icon_label {{set 0}} {
return $lab return $lab
} }
# currently unused
proc lmenu {menu} { proc lmenu {menu} {
global popup_cascade_posted global popup_cascade_posted
global left_iconwin_menu
set left_iconwin_menu 1
after 100 after 100
if {!$popup_cascade_posted} { update
if {!$popup_cascade_posted && $left_iconwin_menu} {
for {set i 0} {$i < 3} {incr i} {
after 100 after 100
if {!$popup_cascade_posted} { update
}
if {!$popup_cascade_posted && $left_iconwin_menu} {
$menu unpost $menu unpost
return return
} }
} }
# kludge for WindowView # kludge for WindowView
if {$popup_cascade_posted} {
focus $menu focus $menu
}
} }
proc old_balloon {} { proc old_balloon {} {
...@@ -4490,6 +4530,78 @@ proc old_balloon {} { ...@@ -4490,6 +4530,78 @@ proc old_balloon {} {
} }
} }
proc get_custom_menu_items {} {
global env custom_last_read
if {![info exists custom_last_read]} {
set custom_last_read 0
}
if {[info exists env(X11VNC_CUSTOM_GUI)]} {
set custom "$env(X11VNC_CUSTOM_GUI)"
} elseif {![info exists env(HOME)]} {
return [list "none"]
} else {
set custom "$env(HOME)/.x11vnc.gui"
}
if {![file exists $custom]} {
return [list "none"]
}
# if {[file mtime $custom] <= $custom_last_read} {
# return [list "nochange"]
# }
set in ""
catch {set in [open $custom "r"]}
if {$in == ""} {
return [list "none"]
}
set custom_last_read [clock seconds]
set count 0
while {[gets $in line] > -1} {
if {[regexp {^[ \t]*#} $line]} {
continue
}
set line [string trim $line]
if {$line != ""} {
lappend items $line
incr count
}
}
close $in
if {$count > 0} {
return $items
} else {
return [list "none"]
}
}
proc make_custom_menu {menu font} {
set items [get_custom_menu_items]
set i0 [lindex $items 0]
catch {$menu delete 0 end}
if {$i0 != "none"} {
$menu add command -font $font -label "Custom items:"
$menu add separator
foreach item $items {
if {$item == "sep" || $item == "separator"} {
$menu add separator
continue
}
if {[regexp {^action:(.*)$} $item m action]} {
$menu add command -font $font -label "$action" \
-command "do_var $action"
continue
}
$menu add command -font $font -label "$item" \
-command "run_remote_cmd \[list \"-R\" \"$item\"\]"
}
}
}
proc make_icon {} { proc make_icon {} {
global icon_mode icon_embed_id icon_win props_win full_win global icon_mode icon_embed_id icon_win props_win full_win
global tray_embed tray_running env global tray_embed tray_running env
...@@ -4572,13 +4684,25 @@ proc make_icon {} { ...@@ -4572,13 +4684,25 @@ proc make_icon {} {
$menu add command -font $mfont -label "Stop x11vnc" -command clean_icon_exit $menu add command -font $mfont -label "Stop x11vnc" -command clean_icon_exit
bind $icon_win <ButtonPress-1> "pmenu $menu %X %Y" set items [get_custom_menu_items]
bind $icon_win <ButtonPress-3> "pmenu $menu %X %Y" set i0 [lindex $items 0]
if {$i0 != "none" && $i0 != "nochange"} {
$menu add separator
set cm "$menu.custom"
catch {destroy $cm}
menu $cm -tearoff 0 -font $ffont \
-postcommand "set popup_cascade_posted 1; make_custom_menu $cm $ffont"
$menu add cascade -font $mfont -label "Custom:" -menu $cm
}
bind $icon_win <ButtonRelease-1> "pmenu $menu %X %Y"
bind $icon_win <ButtonRelease-3> "pmenu $menu %X %Y"
bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]} bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]}
bind $icon_win <Button> {kill_client_balloon} bind $icon_win <Button> {kill_client_balloon}
bind $icon_win <Leave> {kill_client_balloon} bind $icon_win <Leave> {kill_client_balloon}
bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon} bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon}
bind $menu <Leave> "lmenu $menu" # bind $menu <Leave> "lmenu $menu"
# bind $menu <Enter> "set left_iconwin_menu 0"
## bind $menu <KeyPress-Escape> "$menu unpost" ## bind $menu <KeyPress-Escape> "$menu unpost"
bind . <Control-KeyPress-c> {destroy .; exit 0} bind . <Control-KeyPress-c> {destroy .; exit 0}
...@@ -4599,7 +4723,9 @@ proc make_icon {} { ...@@ -4599,7 +4723,9 @@ proc make_icon {} {
} }
wm iconname . "tkx11vnc" wm iconname . "tkx11vnc"
wm title . "tkx11vnc" wm title . "tkx11vnc"
update
wm deiconify . wm deiconify .
update
old_balloon old_balloon
} }
...@@ -4739,6 +4865,7 @@ proc make_gui {mode} { ...@@ -4739,6 +4865,7 @@ proc make_gui {mode} {
set gui_current_state $mode set gui_current_state $mode
update
wm deiconify . wm deiconify .
update idletasks update idletasks
wm minsize $w [winfo width $w] [winfo height $w] wm minsize $w [winfo width $w] [winfo height $w]
...@@ -5195,9 +5322,10 @@ proc get_settings_rcfile {} { ...@@ -5195,9 +5322,10 @@ proc get_settings_rcfile {} {
proc double_check_start_x11vnc {} { proc double_check_start_x11vnc {} {
global hostname global hostname
set msg [get_start_x11vnc_txt] set msg [get_start_x11vnc_txt]
bell
append msg "\n" append msg "\n"
append msg "*** To run the above command on machine \"$hostname\" to\n" append msg "*** To run the above command on machine \"$hostname\" (thereby\n"
append msg "*** start x11vnc press \"OK\" otherwise press \"Cancel\".\n" append msg "*** starting x11vnc) press \"OK\", otherwise press \"Cancel\".\n"
return [warning_dialog $msg "start"] return [warning_dialog $msg "start"]
} }
...@@ -5402,8 +5530,12 @@ proc run_remote_cmd_via_sock {opts} { ...@@ -5402,8 +5530,12 @@ proc run_remote_cmd_via_sock {opts} {
global client_sock global client_sock
set db 0 set db 0
if {[file channels $client_sock] == ""} {
set client_sock ""
return "fail"
}
if {[eof $client_sock]} { if {[eof $client_sock]} {
close $client_sock catch {close $client_sock}
set client_sock "" set client_sock ""
return "fail" return "fail"
} }
...@@ -5750,6 +5882,8 @@ proc undo_tray_embed {} { ...@@ -5750,6 +5882,8 @@ proc undo_tray_embed {} {
############################################################################ ############################################################################
# main: # main:
wm withdraw .
global env x11vnc_prog x11vnc_cmdline x11vnc_xdisplay x11vnc_connect; global env x11vnc_prog x11vnc_cmdline x11vnc_xdisplay x11vnc_connect;
global x11vnc_xdisplay0 global x11vnc_xdisplay0
global x11vnc_client_file x11vnc_gui_geom x11vnc_started vnc_url global x11vnc_client_file x11vnc_gui_geom x11vnc_started vnc_url
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
"# 0 means to skip the item.\n" "# 0 means to skip the item.\n"
"# -- means add a separator\n" "# -- means add a separator\n"
"#\n" "#\n"
"\n"
"proc set_template {} {\n" "proc set_template {} {\n"
" global template\n" " global template\n"
" set template \"\n" " set template \"\n"
...@@ -192,6 +193,8 @@ ...@@ -192,6 +193,8 @@
" --\n" " --\n"
" =F rc:\n" " =F rc:\n"
" norc\n" " norc\n"
" filexfer\n"
" --\n"
" nofb\n" " nofb\n"
" =D nobell\n" " =D nobell\n"
" nolookup\n" " nolookup\n"
...@@ -578,6 +581,22 @@ ...@@ -578,6 +581,22 @@
" Stop x11vnc - Directs the x11vnc server to disconnect all vncviewers\n" " Stop x11vnc - Directs the x11vnc server to disconnect all vncviewers\n"
" and then exit. The tray/icon GUI then exits as well.\n" " and then exit. The tray/icon GUI then exits as well.\n"
"\n" "\n"
" Custom - If you have a \\$HOME/.x11vnc.gui file each uncommented\n"
" line in it becomes an additional menu item for this\n"
" menu. The remote control command is run directly\n"
" via \\\"x11vnc -R <command>\\\", or if prefixed with \n"
" \\\"action:\\\" runs a gui internal action, or if \\\"sep\\\"\n"
" adds a separator. Set X11VNC_CUSTOM_GUI to use\n"
" a different filename. Example file contents:\n"
"\n"
" scale:3/4\n"
" scale:1\n"
" scale_cursor:1\n"
" sep\n"
" action:all-settings\n"
" #debug_keyboard\n"
" sep\n"
" action:Quit\n"
"\n" "\n"
"Termination:\n" "Termination:\n"
"\n" "\n"
...@@ -1321,7 +1340,9 @@ ...@@ -1321,7 +1340,9 @@
" set ok 0\n" " set ok 0\n"
" 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 {$item == \"NewClient\"} {\n"
" ;\n"
" } elseif {[is_gui_internal $item]} {\n"
" if {$item != \"gui\" && $item != \"all\" && $item != \"Misc-Tuning:\" \\\n" " if {$item != \"gui\" && $item != \"all\" && $item != \"Misc-Tuning:\" \\\n"
" && $item != \"Properties\" && $item != \"Tray\"} {\n" " && $item != \"Properties\" && $item != \"Tray\"} {\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"
...@@ -1333,7 +1354,9 @@ ...@@ -1333,7 +1354,9 @@
" } else {\n" " } else {\n"
" append text \" - Cannot be changed in a running x11vnc.\\n\";\n" " append text \" - Cannot be changed in a running x11vnc.\\n\";\n"
" }\n" " }\n"
" if {[is_gui_internal $item]} {\n" " if {$item == \"NewClient\"} {\n"
" ;\n"
" } elseif {[is_gui_internal $item]} {\n"
" ;\n" " ;\n"
" } elseif {[active_when_starting $item]} {\n" " } elseif {[active_when_starting $item]} {\n"
" append text \" + Can be set at x11vnc startup.\\n\";\n" " append text \" + Can be set at x11vnc startup.\\n\";\n"
...@@ -2866,6 +2889,9 @@ ...@@ -2866,6 +2889,9 @@
" } elseif {$item == \"WindowView\"} {\n" " } elseif {$item == \"WindowView\"} {\n"
" change_view_state\n" " change_view_state\n"
" return\n" " return\n"
" } elseif {$item == \"quit\" || $item == \"Quit\"} {\n"
" destroy .\n"
" exit 0\n"
" } elseif {$item == \"stop+quit\"} {\n" " } elseif {$item == \"stop+quit\"} {\n"
" do_stop_quit\n" " do_stop_quit\n"
" }\n" " }\n"
...@@ -3850,6 +3876,7 @@ ...@@ -3850,6 +3876,7 @@
" } else {\n" " } else {\n"
" set first 0\n" " set first 0\n"
" }\n" " }\n"
" update\n"
" wm deiconify $full_win\n" " wm deiconify $full_win\n"
" update\n" " update\n"
"\n" "\n"
...@@ -4125,6 +4152,8 @@ ...@@ -4125,6 +4152,8 @@
" set x [expr $x-10]\n" " set x [expr $x-10]\n"
" set y [expr $y-10]\n" " set y [expr $y-10]\n"
" $m post $x $y\n" " $m post $x $y\n"
" # XXX more care needed\n"
" grab set -global $m\n"
"}\n" "}\n"
"\n" "\n"
"proc set_client_balloon {str} {\n" "proc set_client_balloon {str} {\n"
...@@ -4164,8 +4193,10 @@ ...@@ -4164,8 +4193,10 @@
" }\n" " }\n"
" } else {\n" " } else {\n"
" set i [expr $count+1]\n" " set i [expr $count+1]\n"
" if {$i == 1} {\n"
" set client_balloon \"${client_balloon}\\nunknown-host$i\"\n" " set client_balloon \"${client_balloon}\\nunknown-host$i\"\n"
" }\n" " }\n"
" }\n"
" incr count\n" " incr count\n"
" }\n" " }\n"
" if {$count == 0} {\n" " if {$count == 0} {\n"
...@@ -4464,18 +4495,27 @@ ...@@ -4464,18 +4495,27 @@
" return $lab\n" " return $lab\n"
"}\n" "}\n"
"\n" "\n"
"# currently unused\n"
"proc lmenu {menu} {\n" "proc lmenu {menu} {\n"
" global popup_cascade_posted\n" " global popup_cascade_posted\n"
" global left_iconwin_menu\n"
" set left_iconwin_menu 1\n"
" after 100\n" " after 100\n"
" if {!$popup_cascade_posted} {\n" " update\n"
" if {!$popup_cascade_posted && $left_iconwin_menu} {\n"
" for {set i 0} {$i < 3} {incr i} {\n"
" after 100\n" " after 100\n"
" if {!$popup_cascade_posted} {\n" " update\n"
" }\n"
" if {!$popup_cascade_posted && $left_iconwin_menu} {\n"
" $menu unpost\n" " $menu unpost\n"
" return\n" " return\n"
" }\n" " }\n"
" }\n" " }\n"
" # kludge for WindowView\n" " # kludge for WindowView\n"
" if {$popup_cascade_posted} {\n"
" focus $menu\n" " focus $menu\n"
" }\n"
"}\n" "}\n"
"\n" "\n"
"proc old_balloon {} {\n" "proc old_balloon {} {\n"
...@@ -4496,6 +4536,78 @@ ...@@ -4496,6 +4536,78 @@
" }\n" " }\n"
"}\n" "}\n"
"\n" "\n"
"proc get_custom_menu_items {} {\n"
" global env custom_last_read\n"
"\n"
" if {![info exists custom_last_read]} {\n"
" set custom_last_read 0\n"
" }\n"
" if {[info exists env(X11VNC_CUSTOM_GUI)]} {\n"
" set custom \"$env(X11VNC_CUSTOM_GUI)\"\n"
" } elseif {![info exists env(HOME)]} {\n"
" return [list \"none\"]\n"
" } else {\n"
" set custom \"$env(HOME)/.x11vnc.gui\"\n"
" }\n"
" if {![file exists $custom]} {\n"
" return [list \"none\"]\n"
" }\n"
"\n"
"# if {[file mtime $custom] <= $custom_last_read} {\n"
"# return [list \"nochange\"]\n"
"# }\n"
"\n"
" set in \"\"\n"
" catch {set in [open $custom \"r\"]} \n"
" if {$in == \"\"} {\n"
" return [list \"none\"]\n"
" }\n"
"\n"
" set custom_last_read [clock seconds]\n"
"\n"
" set count 0\n"
" while {[gets $in line] > -1} {\n"
" if {[regexp {^[ \\t]*#} $line]} {\n"
" continue\n"
" }\n"
" set line [string trim $line]\n"
" if {$line != \"\"} {\n"
" lappend items $line\n"
" incr count\n"
" }\n"
" }\n"
" close $in\n"
" \n"
" if {$count > 0} {\n"
" return $items\n"
" } else {\n"
" return [list \"none\"]\n"
" }\n"
"}\n"
"\n"
"proc make_custom_menu {menu font} {\n"
" set items [get_custom_menu_items]\n"
" set i0 [lindex $items 0]\n"
" catch {$menu delete 0 end}\n"
" if {$i0 != \"none\"} {\n"
" $menu add command -font $font -label \"Custom items:\"\n"
" $menu add separator\n"
" foreach item $items {\n"
" if {$item == \"sep\" || $item == \"separator\"} {\n"
" $menu add separator\n"
" continue\n"
" }\n"
" if {[regexp {^action:(.*)$} $item m action]} {\n"
" $menu add command -font $font -label \"$action\" \\\n"
" -command \"do_var $action\"\n"
" continue\n"
" }\n"
" $menu add command -font $font -label \"$item\" \\\n"
" -command \"run_remote_cmd \\[list \\\"-R\\\" \\\"$item\\\"\\]\"\n"
" }\n"
" }\n"
"}\n"
"\n"
"proc make_icon {} {\n" "proc make_icon {} {\n"
" global icon_mode icon_embed_id icon_win props_win full_win\n" " global icon_mode icon_embed_id icon_win props_win full_win\n"
" global tray_embed tray_running env\n" " global tray_embed tray_running env\n"
...@@ -4578,13 +4690,25 @@ ...@@ -4578,13 +4690,25 @@
"\n" "\n"
" $menu add command -font $mfont -label \"Stop x11vnc\" -command clean_icon_exit\n" " $menu add command -font $mfont -label \"Stop x11vnc\" -command clean_icon_exit\n"
"\n" "\n"
" bind $icon_win <ButtonPress-1> \"pmenu $menu %X %Y\"\n" " set items [get_custom_menu_items]\n"
" bind $icon_win <ButtonPress-3> \"pmenu $menu %X %Y\"\n" " set i0 [lindex $items 0]\n"
" if {$i0 != \"none\" && $i0 != \"nochange\"} {\n"
" $menu add separator\n"
" set cm \"$menu.custom\"\n"
" catch {destroy $cm}\n"
" menu $cm -tearoff 0 -font $ffont \\\n"
" -postcommand \"set popup_cascade_posted 1; make_custom_menu $cm $ffont\"\n"
" $menu add cascade -font $mfont -label \"Custom:\" -menu $cm\n"
" }\n"
"\n"
" bind $icon_win <ButtonRelease-1> \"pmenu $menu %X %Y\"\n"
" bind $icon_win <ButtonRelease-3> \"pmenu $menu %X %Y\"\n"
" bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]}\n" " bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]}\n"
" bind $icon_win <Button> {kill_client_balloon}\n" " bind $icon_win <Button> {kill_client_balloon}\n"
" bind $icon_win <Leave> {kill_client_balloon}\n" " bind $icon_win <Leave> {kill_client_balloon}\n"
" bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon}\n" " bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon}\n"
" bind $menu <Leave> \"lmenu $menu\"\n" "# bind $menu <Leave> \"lmenu $menu\"\n"
"# bind $menu <Enter> \"set left_iconwin_menu 0\"\n"
"## bind $menu <KeyPress-Escape> \"$menu unpost\"\n" "## bind $menu <KeyPress-Escape> \"$menu unpost\"\n"
"\n" "\n"
" bind . <Control-KeyPress-c> {destroy .; exit 0}\n" " bind . <Control-KeyPress-c> {destroy .; exit 0}\n"
...@@ -4605,7 +4729,9 @@ ...@@ -4605,7 +4729,9 @@
" }\n" " }\n"
" wm iconname . \"tkx11vnc\"\n" " wm iconname . \"tkx11vnc\"\n"
" wm title . \"tkx11vnc\"\n" " wm title . \"tkx11vnc\"\n"
" update\n"
" wm deiconify .\n" " wm deiconify .\n"
" update\n"
"\n" "\n"
" old_balloon\n" " old_balloon\n"
"}\n" "}\n"
...@@ -4745,6 +4871,7 @@ ...@@ -4745,6 +4871,7 @@
" set gui_current_state $mode\n" " set gui_current_state $mode\n"
"\n" "\n"
"\n" "\n"
" update\n"
" wm deiconify .\n" " wm deiconify .\n"
" update idletasks\n" " update idletasks\n"
" wm minsize $w [winfo width $w] [winfo height $w]\n" " wm minsize $w [winfo width $w] [winfo height $w]\n"
...@@ -5201,9 +5328,10 @@ ...@@ -5201,9 +5328,10 @@
"proc double_check_start_x11vnc {} {\n" "proc double_check_start_x11vnc {} {\n"
" global hostname\n" " global hostname\n"
" set msg [get_start_x11vnc_txt]\n" " set msg [get_start_x11vnc_txt]\n"
" bell\n"
" append msg \"\\n\"\n" " append msg \"\\n\"\n"
" append msg \"*** To run the above command on machine \\\"$hostname\\\" to\\n\"\n" " append msg \"*** To run the above command on machine \\\"$hostname\\\" (thereby\\n\"\n"
" append msg \"*** start x11vnc press \\\"OK\\\" otherwise press \\\"Cancel\\\".\\n\"\n" " append msg \"*** starting x11vnc) press \\\"OK\\\", otherwise press \\\"Cancel\\\".\\n\"\n"
" return [warning_dialog $msg \"start\"]\n" " return [warning_dialog $msg \"start\"]\n"
"}\n" "}\n"
"\n" "\n"
...@@ -5408,8 +5536,12 @@ ...@@ -5408,8 +5536,12 @@
" global client_sock\n" " global client_sock\n"
"\n" "\n"
" set db 0\n" " set db 0\n"
" if {[file channels $client_sock] == \"\"} {\n"
" set client_sock \"\"\n"
" return \"fail\"\n"
" }\n"
" if {[eof $client_sock]} {\n" " if {[eof $client_sock]} {\n"
" close $client_sock\n" " catch {close $client_sock}\n"
" set client_sock \"\"\n" " set client_sock \"\"\n"
" return \"fail\"\n" " return \"fail\"\n"
" }\n" " }\n"
...@@ -5756,6 +5888,8 @@ ...@@ -5756,6 +5888,8 @@
"############################################################################\n" "############################################################################\n"
"# main:\n" "# main:\n"
"\n" "\n"
"wm withdraw .\n"
"\n"
"global env x11vnc_prog x11vnc_cmdline x11vnc_xdisplay x11vnc_connect;\n" "global env x11vnc_prog x11vnc_cmdline x11vnc_xdisplay x11vnc_connect;\n"
"global x11vnc_xdisplay0\n" "global x11vnc_xdisplay0\n"
"global x11vnc_client_file x11vnc_gui_geom x11vnc_started vnc_url\n" "global x11vnc_client_file x11vnc_gui_geom x11vnc_started vnc_url\n"
......
.\" This file was automatically generated from x11vnc -help output. .\" This file was automatically generated from x11vnc -help output.
.TH X11VNC "1" "July 2005" "x11vnc " "User Commands" .TH X11VNC "1" "October 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.3, lastmod: 2005-07-17 version: 0.7.3, lastmod: 2005-10-22
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...
...@@ -253,6 +253,10 @@ option, otherwise the stderr goes to the viewer which ...@@ -253,6 +253,10 @@ option, otherwise the stderr goes to the viewer which
will cause it to abort. Specifying both \fB-inetd\fR and \fB-q\fR will cause it to abort. Specifying both \fB-inetd\fR and \fB-q\fR
and no \fB-o\fR will automatically close the stderr. and no \fB-o\fR will automatically close the stderr.
.PP .PP
\fB-filexfer\fR
.IP
Enable the TightVNC file transfer extension.
.PP
\fB-http\fR \fB-http\fR
.IP .IP
Instead of using \fB-httpdir\fR (see below) to specify Instead of using \fB-httpdir\fR (see below) to specify
...@@ -577,7 +581,9 @@ color with "gnome:", "kde:", "cde:" or "root:". ...@@ -577,7 +581,9 @@ color with "gnome:", "kde:", "cde:" or "root:".
.IP .IP
Black out rectangles on the screen. \fIstring\fR is a Black out rectangles on the screen. \fIstring\fR is a
comma separated list of WxH+X+Y type geometries for comma separated list of WxH+X+Y type geometries for
each rectangle. each rectangle. If one of the items on the list is the
string "noptr" the mouse pointer will not be allowed
to go into a blacked out region.
.PP .PP
\fB-xinerama\fR \fB-xinerama\fR
.IP .IP
...@@ -1545,6 +1551,13 @@ text output. By default x11vnc will try to detect this ...@@ -1545,6 +1551,13 @@ text output. By default x11vnc will try to detect this
no user input), and sleep up to 1.5 secs to let things no user input), and sleep up to 1.5 secs to let things
"catch up". Use this option to disable that detection. "catch up". Use this option to disable that detection.
.PP .PP
\fB-slow_fb\fR \fItime\fR
.IP
Floating point time in seconds delay all screen polling.
For special purpose usage where a low frame rate is
acceptable and desirable, but you want the user input
processed at the normal rate so you cannot use \fB-wait.\fR
.PP
\fB-readtimeout\fR \fIn\fR \fB-readtimeout\fR \fIn\fR
.IP .IP
Set libvncserver rfbMaxClientWait to n seconds. On Set libvncserver rfbMaxClientWait to n seconds. On
...@@ -2190,6 +2203,8 @@ wait_bog disable \fB-nowait_bog\fR mode. ...@@ -2190,6 +2203,8 @@ wait_bog disable \fB-nowait_bog\fR mode.
.IP .IP
nowait_bog enable \fB-nowait_bog\fR mode. nowait_bog enable \fB-nowait_bog\fR mode.
.IP .IP
slow_fb:f set \fB-slow_fb\fR to f seconds.
.IP
readtimeout:n set read timeout to n seconds. readtimeout:n set read timeout to n seconds.
.IP .IP
nap enable \fB-nap\fR mode. nap enable \fB-nap\fR mode.
...@@ -2362,14 +2377,14 @@ xwarp noxwarppointer noxwarp buttonmap dragging ...@@ -2362,14 +2377,14 @@ xwarp noxwarppointer noxwarp buttonmap dragging
nodragging wireframe_mode wireframe wf nowireframe nodragging wireframe_mode wireframe wf nowireframe
nowf wirecopyrect wcr nowirecopyrect nowcr scr_area nowf wirecopyrect wcr nowirecopyrect nowcr scr_area
scr_skip scr_inc scr_keys scr_term scr_keyrepeat scr_skip scr_inc scr_keys scr_term scr_keyrepeat
scr_parms scrollcopyrect scr noscrollcopyrect scr_parms scrollcopyrect scr noscrollcopyrect noscr
noscr fixscreen noxrecord xrecord reset_record fixscreen noxrecord xrecord reset_record pointer_mode
pointer_mode pm input_skip input client_input pm input_skip input client_input speeds wmdt
speeds wmdt debug_pointer dp nodebug_pointer nodp debug_pointer dp nodebug_pointer nodp debug_keyboard
debug_keyboard dk nodebug_keyboard nodk deferupdate dk nodebug_keyboard nodk deferupdate defer wait_ui
defer wait_ui wait_bog nowait_bog wait readtimeout wait_bog nowait_bog slow_fb wait readtimeout nap nonap
nap nonap sb screen_blank fs gaps grow fuzz snapfb sb screen_blank fs gaps grow fuzz snapfb nosnapfb
nosnapfb rawfb progressive rfbport http nohttp httpport rawfb progressive rfbport http nohttp httpport
httpdir enablehttpproxy noenablehttpproxy alwaysshared httpdir enablehttpproxy noenablehttpproxy alwaysshared
noalwaysshared nevershared noalwaysshared dontdisconnect noalwaysshared nevershared noalwaysshared dontdisconnect
nodontdisconnect desktop debug_xevents nodebug_xevents nodontdisconnect desktop debug_xevents nodebug_xevents
......
This diff is collapsed.
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