-
-
Notifications
You must be signed in to change notification settings - Fork 142
/
tkx11vnc
executable file
·7335 lines (6409 loc) · 174 KB
/
tkx11vnc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/bin/sh
# the next line restarts using wish. \
exec wish "$0" "$@"
catch {rename send {}}
#
# Copyright (C) 2004-2009 Karl J. Runge <runge@karlrunge.com>
# All rights reserved.
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.
#
# tkx11vnc v0.2
# This is a simple frontend to x11vnc. It uses the remote control
# and query features (-remote/-query aka -R/-Q) to interact with it.
# It is just a quick-n-dirty hack (it parses -help output, etc), but
# it could be of use playing with or learning about the (way too) many
# parameters x11vnc has.
#
# It can be used to interact with a running x11vnc (see the x11vnc
# -gui option), or to set the parameters and then start up x11vnc.
#
#
# Below is a simple picture of how the gui should be laid out and how
# the menus should be organized. Most menu items correspond to remote
# control commands. A trailing ":" after the item name means it is a string
# to be set rather than a boolean that can be toggled (e.g. the entry
# box must be used).
#
# Some tweak options may be set in the prefix "=" string.
# A means it is an "Action" (not a true variable)
# R means it is an action only valid in remote mode.
# S means it is an action only valid in startup mode.
# Q means it is an action worth querying after running.
# P means the string can be +/- appended/deleted (string may not
# be the same after the remote command)
# G means gui internal item
# F means can be set via file browse
# D means for simple gui
# -C:val1,... means it will be a checkbox (radio button)
# the "-" means no other options follow
# 0 means to skip the item.
# -- means add a separator
#
# The =GAL ... =GAL LOFF stuff is to provide submenus.
#
global env started time_count
set started ""
proc dtime {{msg ""}} {
global started time_count
if {$started == ""} {
return
}
set diff [expr "[exec gtod.bin] - $started"]
set diff [format "%.2f" $diff]
incr time_count
if {$msg == ""} {
set msg $time_count
}
puts -nonewline stderr "$msg $diff "
puts stderr [clock format [clock seconds]]
}
if [info exists env(X11VNC_GUI_TIME)] {
global started time_count
set started [exec gtod.bin]
set time_count 0
dtime "S"
}
proc set_template {} {
global template
set template "
Row: Actions Clients Permissions Keyboard Pointer Help
Row: Displays Screen Tuning Debugging Misc
Actions
=SA start
=RA stop
--
=DSA attach
=DRA detach
--
=RA ping
=RA update-all
=GAL Settings::
=GA save-settings
=SFA load-settings:
=SA defaults-all
=0SA clear-all
--
=F rc:
norc
=GAL LOFF
-- D
=DRA stop+quit
=DGA Quit
Help
=DGA gui
=DGA all
Clients
=DRQA current:
=DF connect:
=DRQA disconnect:
--
accept:
afteraccept:
gone:
vncconnect
zeroconf
-- D
tightfilexfer
ultrafilexfer
proxy:
=GAL Chat::
chatwindow
=DRA chaton
=DRA chatoff
=GAL LOFF
=GAL Java-applet::
=D http
httpdir:
httpport:
https:
httpsredir:
enablehttpproxy
=GAL LOFF
Displays
=D display:
=F auth:
=S reflect:
=D desktop:
=D rfbport:
=S autoport:
=0 gui:
Screen
=DRA refresh
=RA reset
=RA blacken
-- D
=D scale:
scale_cursor:
--
=D solid
solid_color:
--
=GAL OverlayVisuals::
overlay
overlay_nocursor
8to24
8to24_opts:
=GAL LOFF
=GAL 8-Bit-Color::
flashcmap
shiftcmap:
notruecolor
=GAL LOFF
=GAL SubWindow::
id:
sid:
=RA id_cmd:
=GAL LOFF
=GAL ResizeRotate::
= xrandr
=-C:resize,newfbsize,exit xrandr_mode:
rotate:
padgeom:
=GAL LOFF
=GAL Clipping::
=P blackout:
xinerama
clip:
=GAL LOFF
=GAL Misc-Screen::
fixscreen:
visual:
rawfb:
pipeinput:
uinput_accel:
uinput_reset:
uinput_always:
24to32
=GAL LOFF
Keyboard
=D norepeat
=D add_keysyms
modtweak
xkb
--
capslock
skip_lockkeys
--
skip_keycodes:
skip_dups
sloppy_keys
--
=FP remap:
clear_mods
clear_keys
clear_all
=RA clear_locks
Pointer
=D-C:none,arrow,X,some,most cursor:
=-C:1,2,3,4,5,6 arrow:
--
cursorpos
=D nocursorshape
--
noxfixes
cursor_drag
=GAL AlphaBlending::
noalphablend
alphacut:
alphafrac:
alpharemove
=GAL LOFF
--
buttonmap:
--
xwarppointer
always_inject
Misc
=GD-C:full,icon,tray WindowView:
=GD simple-gui
-- D
=GA all-settings
=RA remote-cmd:
=GAL Selection::
=D nosel
noprimary
nosetprimary
noclipboard
nosetclipboard
seldir:
=GAL LOFF
=GAL X-ext::
xtrap
noxrecord
=RQA reset_record
=GAL LOFF
=GAL MacOSX::
macnosaver
macnowait
macwheel:
macnoswap
macnoresize
maciconanim:
macmenu
=GAL LOFF
--
6
noipv6
noipv4
--
nofb
=D nobell
nolookup
rfbversion:
bg
=S loop
=S loopbg
=S sleepin:
=-C:ignore,exit sigpipe:
=0 inetd
Debugging
debug_pointer
debug_keyboard
=F logfile:
=GA show-logfile
=GA tail-logfile
quiet
--
=GA show-start-cmd
=DG debug_gui
=GAL Misc-Debug::
debug_xevents
debug_xdamage
=-C:0,1,2,3 debug_wireframe:
debug_scroll
debug_tiles
debug_grabs
debug_sel
debug_ncache
dbg
=GAL LOFF
Permissions
=DRQA lock
=DRQA unlock
=D shared
=D forever
--
=DFP allow:
=D localhost
=RA allowonce:
listen:
-- D
=D viewonly
input:
--
=GAL Passwords::
passwd:
viewpasswd:
=F passwdfile:
=F rfbauth:
usepw
--
unixpw
unixpw_list:
unixpw_nis
unixpw_nis_list:
=0 storepasswd
=GAL LOFF
=GAL SSL::
ssl
=F ssl_pem:
stunnel
=F stunnel_pem:
=F ssldir:
=F sslverify:
ssltimeout:
--
enc:
=GAL LOFF
=GAL Misc-Perms::
safer
unsafe
=RA noremote
=0S alwaysshared
=0S nevershared
=0S dontdisconnect
=SQA deny_all
timeout:
grabkbd
grabptr
grabalways
grablocal:
forcedpms
clientdpms
noserverdpms
noultraext
=GAL LOFF
Tuning
=D-C:0,1,2,3,4 pointer_mode:
input_skip:
allinput
=D nodragging
-- D
speeds:
=D wait:
defer:
=D nap
screen_blank:
--
=GAL WireFrame::
wireframe
wireframe_mode:
=-C:never,top,always wirecopyrect:
=GAL LOFF
=GAL ScrollCopyRect::
=-C:never,keys,mouse,always scrollcopyrect:
scr_area:
scr_skip:
scr_inc:
scr_keys:
scr_term:
scr_keyrepeat:
scr_parms:
=GAL LOFF
=GAL XDAMAGE::
xdamage
xd_area:
xd_mem:
=GAL LOFF
=GAL Ncache::
ncache
ncache_size:
ncache_cr
ncache_no_moveraise
ncache_no_dtchange
ncache_old_wm
ncache_no_rootpixmap
ncache_keep_anims
ncache_pad:
=RA ncache_reset_rootpixmap
=GAL LOFF
--
=GAL SharedMemory::
noshm
flipbyteorder
onetile
=GAL LOFF
=GAL Misc-Tuning::
progressive:
fs:
gaps:
grow:
fuzz:
extra_fbur:
wait_ui:
setdefer:
nowait_bog
slow_fb:
xrefresh:
readtimeout:
snapfb
threads
wmdt:
rfbwait:
nodpms
nofbpm
=GAL LOFF
"
}
proc set_internal_help {} {
global helptext helpall
# set some internal item help here:
set helptext(start) "
Launch x11vnc with the settings you have prescribed in the gui.
The x11vnc process is started in an xterm window so you can see the
output, kill it, etc.
By viewing this help item, the command built so far will be displayed
in the gui text area. Have a look. If you Press start it will be shown
as well and you will be asked to confirm running it.
If you want to use a saved profile \"rc file\" you can do \"Misc -> rc\" and
select the file and simply start x11vnc using the rc file. Alternatively,
you could first use the \"Actions -> load-settings\" action to load in
an \"rc file\" and then press \"Actions -> start\" to start up x11vnc
based on those values.
"
set helptext(stop) "
The \"Actions -> stop\" action sends a signal to the running x11vnc
server indicating it should shutdown all connections and exit.
The GUI stays running in case you want to start a new x11vnc or attach
to another one. Use \"Actions -> Quit\" if you then want to have the
gui exit. Use \"Actions -> stop+quit\" to have both exit at once.
"
set helptext(show-start-cmd) "
Displays in the text area what the x11vnc start command (i.e. the command
run by \"Actions -> start\") looks like for the current values of the
settings. This can be done even in the attached state. Intended for
debugging the gui. The help item for \"Actions -> start\" gives the
same info.
If you want to load in a saved profile \"rc file\" use \"Misc -> rc\"
and select the file. \"Actions -> load-settings\" does a similar thing
with an rc-file, but reading the file and setting the gui variables to
its values.
"
set helptext(debug_gui) "
Set debug_gui to get more output printed in the text area.
"
set helptext(detach) "
No longer be associated with the x11vnc server. Switch to the
non-connected state. The x11vnc server keeps running: it does not exit.
You can either later reattach to it \"Actions -> attach\", or start
up a new x11vnc \"Actions -> start\", or exit \"Actions -> Quit\".
"
set helptext(attach) "
Attach to a running x11vnc server, if possible. Switches to connected
state if successful. Usually the channel used to attach is via the X
display (VNC_CONNECT rootwin property) being polled by the x11vnc server.
To change or set the X display to use do \"Displays -> display\".
Sometimes the \"-connect /path/to/filename\" is used as the comunication
channel. The running x11vnc has to know that \"/path/to/filename\"
is the communication channel (i.e. it is using the same -connect option).
"
set helptext(ping) "
Check if x11vnc still responds to \"ping\" remote command.
"
set helptext(update-all) "
Query the x11vnc server for the current values of all variables.
Populate the values into the gui's database.
Normally the gui will refresh this info every time it interacts with
the x11vnc server (including after a few minutes of inactivity), so one
doesn't need to use this action very often (unless something else is
changing the state of the x11vnc server, or new clients have connected,
etc).
"
set helptext(clear-all) "
Forget any variable settings either entered in by you or set at the
default. Basically sets everything to 0 or the string (unset).
This action is only available in \"startup\" mode, not when connected
to a running x11vnc server (in that case the variable settings reflect
the state of the running x11vnc). To detach from a running x11vnc
server use \"Actions -> detach\"; to completely stop the x11vnc server
use \"Actions -> stop\".
"
set helptext(defaults-all) "
Reset all variable settings to the default values. Basically sets
everything to the default queries \"x11vnc -QD var\" retrieved at startup.
This action is only available in \"startup\" mode, not when connected
to a running x11vnc server (in that case the variable settings reflect
the state of the running x11vnc). To detach from a running x11vnc
server use \"Actions -> detach\"; to completely stop the x11vnc server
use \"Actions -> stop\".
"
set helptext(load-settings) "
Read in the \"rc file\" you prescribe in the dialog and then set the
variables to those in the rc-file. Any variables not mentioned in the
rc-file are set to their default value.
You could then do \"Actions -> start\" to start x11vnc with these
parameters. Or you could make some further changes to variables
using the gui before starting x11vnc.
This action is only available in \"startup\" mode, not when connected
to a running x11vnc server (in that case the variable settings reflect
the state of the running x11vnc). To detach from a running x11vnc
server use \"Actions -> detach\"; to completely stop the x11vnc server
use \"Actions -> stop\".
"
set helptext(save-settings) "
Construct a ~/.x11vncrc file based on the current settings and
offer to save it in a file (default ~/.x11vncrc). If saved in a
file other than the default, you can access the profile by using
the \"-rc <filename>\" option when starting x11vnc.
If an rc file entry begins with \"#d\" that means the current
setting is at the Default value and so you probably want to leave
it commented out with the \"#\" character.
If an rc file entry begins with \"#?\" that means we think
you probably do not really want to force the value to this setting.
In either case, feel free to uncomment the line and/or change any
of the parameter values in the file.
"
set helptext(all-settings) "
Displays the gui's database of all of the x11vnc server's current
settings. Use \"Actions -> update-all\" or \"Control+R\" to
refresh this list if it ever gets out of sync.
"
set helptext(remote-cmd) "
Run a remote command (-R) or query (-Q) directly. Only a few
remote commands are not on a menu, but for those few you can
run the command directly this way. Just enter the command into
the Entry box when prompted. Use the prefix \"Q:\" to indicate
a -Q query. Examples: \"zero:20,20,100,100\", \"Q:ext_xfixes\"
"
set helptext(stop+quit) "
Send the stop command to the x11vnc server, then terminate the tkx11vnc gui.
"
set helptext(show-logfile) "
View the current contents of the logfile (if it exists and is accessible
by the gui process).
"
set helptext(tail-logfile) "
Run the tail(1) command with -f option on the logfile in an xterm.
(if it exists and is accessible by the gui process).
"
set helptext(Quit) "
Terminate the tkx11vnc gui. Any x11vnc server will be left running.
"
set helptext(current) "
Shows a menu of currently connected VNC clients on the x11vnc server.
Allows you to find more information about them, change their input
permissions, or disconnect them.
Note that the File transfer permission only applies to UltraVNC
file transfer, not TightVNC file transfer.
You will be prompted to confirm any disconnections.
"
set helptext(client) "
After selecting a VNC client from the \"Clients -> current\" menu,
you will be presented with a dialog that shows the information
about the VNC client.
You can choose to disconnect the client by clicking on the
\"Disconnect\" checkbox and pressing \"OK\". There will be a
confirmation dialog to doublecheck.
Alternatively, you can fine tune the VNC client's input permissions
by selecting any of the Keystrokes, Mouse-Motion, Button-Click,
Clipboard-Input, or Files checkboxes and pressing \"OK\". This is like
the \"-input\" option but on a per-client basis.
To not change any aspects of the VNC client press \"Cancel\".
"
set helptext(solid_color) "
Set the -solid color value.
"
set helptext(xrandr_mode) "
Set the -xrandr mode value.
"
set helptext(unixpw_list) "
Set the -unixpw usernames list value.
"
set helptext(unixpw_nis_list) "
Set the -unixpw_nis usernames list value.
"
set helptext(stunnel_pem) "
Set the -stunnel pem filename value.
"
set helptext(ssl_pem) "
Set the -ssl pem filename value.
"
set helptext(wireframe_mode) "
Set the -wireframe mode string value.
"
set helptext(simple-gui) "
Toggle between menu items corresponding the most basic ones
and all possible settings. I.e. toggle between a simple gui
and one for power users.
"
set helptext(Tray) "
The tray/icon mode (started with \"x11vnc -gui tray ...\", etc.) presents
a small icon that indicates the status of the running x11vnc server.
Depending on your environment, this icon may be embedded in a system
tray or applet dock, or simply be a standalone window. \"-gui tray\"
will attempt to embed the icon in the system tray, while \"-gui icon\"
is for a standalone window. Use \"-gui tray=setpass\" (or icon=setpass)
to be prompted to set the session password at startup.
When the icon has a light background, that means no VNC viewers are
currently connected to the VNC display.
When the icon has a dark background (i.e. reverse-video), that means at
least one VNC viewer is connected to the VNC display.
Moving the mouse pointer over the icon will popup a \"status balloon\"
indicating the VNC display name and the names and info of any connected VNC
viewers. Press the middle mouse button if the balloon does not appear.
Clicking the left or right mouse button on the icon displays a menu
of actions:
Properties - Brings up the Properties dialog to set some basic
parameters. The full tkx11vnc GUI may be accessed
via the \"Advanced ...\" button. Press \"Help\"
in the Properties dialog for more info.
Help - Displays this help text.
New Client - Presents an entry box where you type in the name
of a computer that is running a VNC viewer in
\"listen\" mode (e.g. vncviewer -listen). For a
non-standard listening port use \"host:port\".
Pressing \"OK\" will initiate the reverse
connection. Use a blank hostname to skip it.
Disconnect - Shows a popup menu of connected clients. Click on
one to disconnect it, or click on \"All Clients\"
disconnect all clients.
Window View - Switch between the \"full\" gui (also known as
\"Advanced\"), \"icon\" mode (small icon window with
popups), or \"tray\" mode (small icon embedded in the
system tray). This is a shortcut for the action:
\"Properties -> Advanced -> Misc -> WindowView\".
Stop x11vnc - Directs the x11vnc server to disconnect all vncviewers
and then exit. The tray/icon GUI then exits as well.
Logfile - Show the logfile if x11vnc is being run with one.
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:
If the x11vnc server stops for any reason, the tray/icon gui will exit.
If you delete the tray/icon (e.g. X out button), that is the same
as the \"Stop x11vnc\" action in the menu. (This will disconnect any
VNC viewer you are currently using to access the display since the
x11vnc server is terminated).
To terminate the tray/icon gui window but not the x11vnc server press
Control-C on the tray/icon window. You can also do this (and much
more) via Properties -> Advanced -> Actions -> Quit
"
set helptext(NewClient) "
New Client - Presents an entry box where you type in the name
of a computer that is running a VNC viewer in
\"listen\" mode (e.g. vncviewer -listen). For a
non-standard listening port use \"host:port\".
Pressing \"OK\" will initiate the reverse
connection. Use a blank hostname to skip it, or
delete (\"X-out\") the window.
"
set helptext(Properties) "
The Properties dialog allows you to set some basic parameters of a
running x11vnc server. After modifying them press \"OK\" or \"Apply\"
to apply the changes, or press \"Cancel\" to skip applying them.
Accept Connections:
Toggles whether VNC viewers are allowed to connect or not. It corresponds
to the \"-R unlock\" and \"-R lock\" remote-control commands.
Ask for Confirmation:
Toggles whether a popup menu will be presented at the X display when
a new VNC viewer attempts to connect. The person sitting at the X
display can choose to accept or reject the connection or accept the
connection in ViewOnly mode. It corresponds to the \"-R accept:popup\"
and \"-R accept:\" remote-control commands.
All Clients ViewOnly:
Toggles whether the entire VNC desktop is view only. All clients
will only be able to watch when this is set (regardless of how they
logged in). It corresponds to the \"-R viewonly\" and \"-R noviewonly\"
remote-control commands.
Shared:
Toggles whether multiple simultaneous viewer connections are allowed
or not. It corresponds to the \"-R shared\" and \"-R noshared\"
remote-control commands.
Advertise Service (Zeroconf):
Toggles whether this VNC server should advertize itself via Zeroconf
(also called Bonjour, mDNS, and avahi). Then VNC viewers can then find
this service on the local network. It corresponds to the \"-R zeroconf\"
and \"-R nozeroconf\" remote-control commands.
Serve Java Viewer Applet:
Toggles whether this VNC server should serve up a Java VNC Viewer
applet via HTTP on http://hostname:5800/ (or port 5800+n for VNC
port 5900+n). A java enabled Web Browser can then connect to the
desktopby VNC. If SSL is active then the HTTPS URL https://hostname:5900/
(etc.) will work as well. This requires the x11vnc java viewer jar file
(shared/x11vnc/classes) to be installed. It corresponds to the
\"-R http\" and \"-R nohttp\" remote commands.
Solid Background Color:
To improve VNC performance, if this option is set, then x11vnc will try
to make the desktop background a solid color (which compresses extremely
well compared to photo images, etc.) It corresponds to the \"-R solid\"
and \"-R nosolid\" remote commands.
Password:
Lets you set the session password viewers may use to gain full access
to the display. This will only work if x11vnc was started with the
-gui icon or -gui tray mode.
ViewOnly Password:
Lets you set the session password viewers may use to gain view only
access to the display. This will only work if x11vnc was started with
the -gui icon or -gui tray mode.
NOTE: These \"session\" passwords only last for the current x11vnc
session (they are not remembered, see the -storepasswd, -passwdfile,
and -rfbauth x11vnc options for using stored passwords).
If you set \"Password\" to the empty string that makes the \"ViewOnly
Password\" empty as well and removes the need for any password to log in.
If you set \"ViewOnly Password\" to the empty string that just removes
the ViewOnly log in aspect: \"Password\" is still required to log in.
- The \"Help\" button shows this help text.
- The \"Advanced ...\" button replaces the Properties dialog with the full
tkx11vnc GUI. All dynamic settings can be modified in the full GUI.
==========================================================================
Don't Lock Yourself Out:
If you are sitting at the physical X display you cannot get into too
much trouble setting the Properties dialog values.
However IF you are using a VNC Viewer to REMOTELY access the X display
some items in the Properties dialog can lock you out of further access:
\"Accept Connections\" if you disable this remotely, and
accidentally disconnect your VNC viewer then you will not be
able to reconnect.
\"Ask for Confirmation\" if you enable this only someone
sitting at the X display can confirm any new VNC connections.
Furthermore, any current VNC viewers will be blocked while
waiting for the confirmation (times out in 120 sec by default).
\"All Clients ViewOnly\" if you enable this remotely, well
you can no longer provide input to disable it.
If you do lock yourself out you could log in remotely and start up
a second x11vnc and connect to that one to try to fix things in the
first one.
Note that if there are two or more x11vnc's on the same display the
use of the GUI may be ill-behaved. Terminate the second x11vnc as
soon as you have fixed the setting in the first one. Use of a remote
control command, e.g. \"x11vnc -R noviewonly\" or \"x11vnc -R unlock\"
is a good way to avoid this problem.
"
set helptext(all) $helpall
set helptext(Misc-Tuning:) "
x11vnc has what seems like hundreds of tuning parameters! In this
sub-menu we place some lesser used ones. Most likely you'll want to
leave them at their default values, but you can try them out quickly
with the gui to see if they improve things.
"
set helptext(Passwords:) "
The items in this sub-menu pertain to setting passwords. Note that x11vnc
has two types of password files: RealVNC-style ones (you can create them
with x11vnc -storepasswd or other VNC utility program) you use these
via -rfbauth; and plain-text file passwords you use via -passwdfile.
Normally passwords cannot be changed by remote-control (e.g. the gui),
but for the case of the \"Icon\" and \"Tray\" modes this constraint has
been relaxed.
In neither the RealVNC-style nor the plain-text file cases should the
password files be readable by users you do not want to access the VNC
server. Contrary to popular belief, the RealVNC-style passwords are
not encrypted, merely obscured.
x11vnc has the even less secure -passwd and -viewpasswd supplied on
the command line. Be careful with these since they could be read by
users with something like the ps(1) command. On some operating systems
x11vnc tries to quickly overwrite them on the command line but it doesn't
work everywhere.
Regarding ViewOnly passwords (where a VNC client using that password
can only watch the screen, not interact with it), this is not available
with -rfbauth, but only with -passwdfile, -passwd, and -viewpasswd.
"
set helptext(SSL:) "
In this sub-menu we provide the options related to SSL encrpytion
and authentication.
There is a built-in mode (-ssl) using the OpenSSL library, and a 2nd
using the external stunnel program (-stunnel, that needs to be installed
on the system). Either may require or benefit from having PEM certificate
files specified.
"
set helptext(Misc-Perms:) "
In this sub-menu we provide some lesser used permission options.
Regarding -alwaysshared, -nevershared, and -dontdisconnect, you probably
should never use them and just use x11vnc's -shared and -forever options
instead (these give basically the same functionality and if you mixed
them too much unexpected things may happen).
"
#'
set helptext(AlphaBlending:) "
In this sub-menu we provide some tweak parameters for cursors (little
icon at the mouse pointer) that have transparency (i.e. an Alpha channel
in addition to Red, Green, and Blue RGB channels). For these cursors,
some of the graphics underneath the cursor is allowed to be blended in:
e.g. a drop-shadow (a terrible effect IMNSHO).
AlphaBlending for x11vnc is only available when the XFIXES X extension is
present (since otherwise it cannot see the cursors at all and so applies
heuristics to show some fake cursors). AlphaBlending is only a problem
with x11vnc when the cursors are not opaque.
Opaque cursors (e.g. bitmap or simply colored cursor) are rendered
correctly by x11vnc. Only when there is transparency does x11vnc have
to make some approximation to transform the cursor to be opaque (the
VNC protocol does not provide for an alpha channel in cursors, only RGB).
The items in this sub-menu let you tweak x11vnc's approximation scheme
for cursors with transparency. Hopefully you won't have to use them.
Certain cursor \"themes\" may require adjustment however.
"
#'
set helptext(OverlayVisuals:) "
In this sub-menu are some options that involve fixing color problems
for \"Overlay\" or \"Multi-Depth\" visuals. This problem is rare
since overlay and multi-depth visual video hardware is rare.
Some Sun, SGI, and HP machines are known to have them.
The short answer is if you have a multi-depth visual display (e.g. 8 and
24 bits), and you see messed up colors in x11vnc try the \"-overlay\"
option on Solaris or IRIX.
A brief Background on pixels, color, and visuals:
Pixels (picture elements) are kept in video memory as a certain number
of bits-per-pixel (bpp). Most common are 8bpp, 16bpp, and 32bpp.
Less common are 24bpp, 4bpp, and 1bpp (monochrome).
How pixel values (i.e. values of the bits) are rendered into colors on
the screen can be done via different \"Recipes\". These different
recipes are referred to as \"visuals\". E.g. for 8bpp there is
a PseudoColor visual that maintains a mapping (that can be changed
dynamically) of the pixel values (256 possible ones) into RGB values.
Other 8bpp visuals, e.g. StaticGrey and TrueColor have fixed, regular
mappings and so provide less variation in kinds of colors.
A visual's \"depth\" is how many of the pixels are used in the
actual recipe. This may sound wasteful (i.e. not using some of the
bits), but for 32bpp (4 billion colors) that is too much and nearly
always only 24 for them are used. The most common Visual seems to
be depth 24 TrueColor at 32bpp. This provides 16 million colors
which is more than the number of pixels on most screens (1280x1024 =
1.3 million pixels). Another sometimes used visual that ignores some
bits is depth 15 TrueColor at 16bpp.
OK, now, finally, to the Overlay Visuals. Some hardware (or software
emulations) allow different depth visuals to be used on the display
at the same time. The pixels of windows using different depth visuals
may overlap.
The most common seems to be both 8 and 24 depth visuals on a 32bpp setup.
24 of the pixels can be used for one visual and the remaining 8 for the
other. This is sometimes referred to as \"8+24\" mode. Furthermore,
a speedup is achieved because writing graphics data to, say, the 8bit