summaryrefslogtreecommitdiffstats
path: root/doc/krfb/index.docbook
blob: d8beeab335b9403672e20691b076f2ef99c72918 (plain)
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
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&krfb;">
  <!ENTITY package "kdenetwork">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE"> <!-- ONLY If you are writing non-English 
                                     original documentation, change 
                                     the language here -->
    
  <!-- Do not define any other entities; instead, use the entities
       from entities/general.entities and $LANG/user.entities. -->
]>
<!-- Based on kdoctemplate v0.9 January 10 2003 -->

<book lang="&language;">

<!-- This header contains all of the meta-information for the document such
as Authors, publish date, the abstract, and Keywords -->

<bookinfo>
<title>The &krfb; Handbook</title>

<authorgroup>
<author>
&Brad.Hards;
&Brad.Hards.mail;
</author>
</authorgroup>

<!-- TRANS:ROLES_OF_TRANSLATORS -->

<copyright>
<year>2003</year>
<holder>&Brad.Hards;</holder>
</copyright>
<!-- Translators: put here the copyright notice of the translation -->

<legalnotice>&FDLNotice;</legalnotice>

<!-- Date and version information of the documentation
Don't forget to include this last date and this last revision number, we
need them for translation coordination !
Please respect the format of the date (YYYY-MM-DD) and of the version
(V.MM.LL), it could be used by automation scripts.
Do NOT change these in the translation. -->

<date>2003-09-17</date>
<releaseinfo>1.0.1</releaseinfo>

<!-- Abstract about this handbook -->

<abstract>
<para>
&krfb; is a server application that allows you to share your current
session with a user on another machine, who can use a VNC client to
view or even control the desktop.
</para>
</abstract>

<!-- This is a set of Keywords for indexing by search engines.
Please at least include KDE, the KDE package it is in, the name
 of your application, and a few relevant keywords. -->

<keywordset>
<keyword>KDE</keyword>
<keyword>kdenetwork</keyword>
<keyword>krfb</keyword>
<keyword>VNC</keyword>
<keyword>RFB</keyword>
<keyword>krdc</keyword>
<keyword>Desktop Sharing</keyword>
<keyword>Remote Control</keyword>
<keyword>Remote Assistance</keyword>
<keyword>Remote Desktop</keyword>
</keywordset>

</bookinfo>

<!-- The contents of the documentation begin here.  Label
each chapter so with the id attribute. This is necessary for two reasons: it
allows you to easily reference the chapter from other chapters of your
document, and if there is no ID, the name of the generated HTML files will vary
from time to time making it hard to manage for maintainers and for the CVS
system. Any chapter labelled (OPTIONAL) may be left out at the author's
discretion. Other chapters should not be left out in order to maintain a
consistent documentation style across all KDE apps. -->

<chapter id="introduction">
<title>Introduction</title>

<!-- The introduction chapter contains a brief introduction for the
application that explains what it does and where to report
problems. Basically a long version of the abstract.  Don't include a
revision history. (see installation appendix comment) -->

<para>
&krfb; is a server application that allows you to share your current
session with a user on another machine, who can use a VNC client to
view or even control the desktop.
</para>

<para>
You would typically use &krfb; with the &kde;  VNC client, which is
&krdc;, since it closely matches the special features of &krfb;.
</para>

<para>
&krfb; doesn't require you to start a new X session - it can share
the current session. This makes it very useful when you want someone
to help you perform a task.
</para>

<para>
Please report any problems or feature requests to the &kde; mailing
lists or file a bug at <ulink
url="http://bugs.kde.org">http://bugs.kde.org</ulink>. 
</para>
</chapter>

<chapter id="what-is-RFB">
<title>The Remote Frame Buffer protocol</title>

<para>
This chapter provides a brief description of the Remote Frame Buffer
protocol used by &krfb; and by other compatible systems. If you are
already familiar with Remote Frame Buffer, you can safely skip this
chapter.
</para>

<para>
The high level implementation of a system using the Remote Frame
Buffer protocol is known as Virtual Network Computer, or more often
just as <acronym>VNC</acronym>. 
</para>

<para>
Remote Frame Buffer (or <acronym>RFB</acronym> for short) is a simple
protocol for remote access to graphical user interfaces. It works at
the frame-buffer level, which roughly corresponds to the rendered
screen image, which means that it can be applied to all windowing
systems (including X11, &MacOS; and &Microsoft; &Windows;). Remote
Frame Buffer applications exist for many platforms, and can often be
free re-distributed.
</para>

<para>
In the Remote Frame Buffer protocol, the application that runs on the
machine where the user sits (containing the display, keyboard and
pointer) is called the client. The application that runs on the
machine where the framebuffer is located (which is running the
windowing system and applications that the user is remotely
controlling) is called the server. &krfb; is the &kde; server for the
Remote Frame Buffer protocol. &krdc; is the &kde; client for the
Remote Frame Buffer protocol.
</para>

<para>
It takes a reasonable amount of network traffic to send an image of
the framebuffer, so Remote Frame Buffer works best over high
bandwidth links, such as a local area network. It is still possible to
use &krfb; over other links, but performance is unlikely to be as good.
</para>

</chapter>

<chapter id="using-krfb">
<title>Using &krfb;</title>

<!-- This chapter should tell the user how to use your app. You should use as
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
your application. -->

<para>
It is very easy to use &krfb; - it has a simple interface, as shown in
the screenshot below.
</para>

<para>
<screenshot>
<screeninfo>Here's a screenshot of &krfb;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="screenshot.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="screenshot.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; main window</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
When you want to allow someone to access your desktop, you can create
an personal invitation using the <guibutton>Create Personal
Invitation...</guibutton> button, which will bring up a window
containing the information needed to access your desktop. An example
is shown below.
</para>

<para>
<screenshot>
<screeninfo>Example &krfb; personal invitation</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="personal_invitation.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="personal_invitation.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Example &krfb; personal invitation</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
To increase security, the invitation is only valid for an
hour after it is created, and of course the person connecting has to
have the correct password. 
</para>

<para>
Since you may want to invite someone to access your desktop by email,
&krfb; can create invitations as email messages. You can create such
an invitation using the <guibutton>Invite via Email...</guibutton>
button on the &krfb; main window. This will usually bring up an email
message that looks like the following, ready for you to type in the
email address of the person you are sending the invitation to.
</para>

<para>
<screenshot>
<screeninfo>Example &krfb; email invitation</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="email_invitation.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="email_invitation.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>Example &krfb; email invitation</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<warning>
<para>
&krfb; will warn you about the security implications of sending this
information across an insecure link. You must heed those warnings.
</para>
<para>
If you cannot encrypt the email (or otherwise secure the link),
sending invitations by email is a very serious security risk, since
anyone can read the password and address from the email as it passes
over the network. This means that they can potentially take control of
your machine.
</para>
<para>
If you cannot encrypt the email message, it may be better to use a
personal invitation, telephone the person you are giving access to,
verify the identity of that person, and provide the required
invitation information that way.
</para>
</warning>

<sect1 id="krfb-managing-invitations">
<title>Managing &krfb; invitations</title>

<para>
Having created an invitation (either a personal invitation or one that
was sent by email), &krfb; allows you to manage those invitations. The
dialog to control these is available using <guibutton>Manage
Invitations...</guibutton> on the &krfb; main window. If you select
that button, &krfb; will bring up a window as shown below.
</para>

<para>
<screenshot>
<screeninfo>&krfb; invitation management</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="invitation_management.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="invitation_management.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; invitation management</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
The invitation management window allows you to create more invitations
(using the <guibutton>New Personal Invitation...</guibutton> and
<guibutton>New Email Invitation...</guibutton> buttons, which have the
same effect as the <guibutton>Create Personal Invitation...</guibutton>
and <guibutton>Invite via Email...</guibutton> buttons on the &krfb; main
window.
</para>

<para>
The invitation managment window also allows you to delete existing
invitations. To just delete one of the invitations, select it with the
mouse or keyboard tabs (it should become highlighted), and then select
the <guibutton>Delete</guibutton>. To delete all invitations, just
select the <guibutton>Delete All</guibutton> button.
</para>

<!-- OK, so this is obvious, I only did it for completeness -->
<para>
Selecting <guibutton>Close</guibutton> closes this dialog.
</para>

</sect1>

<sect1 id="krfb-configuration">
<title>Configuring &krfb;</title>
<para>
In addition to the main &krfb; interface shown and described above, you can also
control &krfb; using its control module, which you can access using
the normal &kde; control center, and you can also access using the
<guibutton>Configure...</guibutton> on the &krfb; main window. The &krfb;
configuration is controlled using a tabbed window, as shown in the
screenshot below: 
</para>

<para>
<screenshot>
<screeninfo>&krfb; Configuration (Access Tab)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_access.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_access.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; Configuration (Access Tab)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
The <guilabel>Access</guilabel> tab allows you configure settings
related to access to the &krfb; server.
</para>

<para>
The <guibutton>Create and Manage Invitations...</guibutton> takes you to
the <link linkend="krfb-managing-invitations">&krfb; invitation management window</link>,
which was described previously.
</para>

<para>
The <guilabel>Announce service on the network</guilabel> checkbox
controls whether &krfb; announces invitations over the network using
Service Location Protocol. This is normally a good idea, but only
works really well with a Service Location Protocol aware client, such
as &krdc;.
</para>

<para>
The <guilabel>Allow uninvited connections</guilabel> checkbox controls
whether &krfb; allows connection without an invitation. If uninvited
connections are allowed, then you should probably specify a
password. You can also use the checkboxes here to choose whether you
have to confirm the connection before it proceeds, and whether the
person connecting can control the desktop, or only view.
</para>

<para>
If the machine is a workstation, and you choose to allow uninvited
connections, you probably want to select the <guilabel>Confirm
uninvited connections before accepting</guilabel>. Conversely, if the
machine is a server and you are using &krfb; for remote
administration, you probably want to deselect <guilabel>Confirm
uninvited connections before accepting</guilabel>.
</para>

<note>
<para>
&krfb; uses the normal RFB password system, which does not transfer
your password in the clear across the network. Instead, it uses a
challenge-response system. This is reasonably secure, as long as the
password is securely guarded.
</para>
</note>

<para>
&krfb; allows you to control whether the background image is passed to
the client, or not. This is controlled using a checkbox in the
<guilabel>Session</guilabel> tab, as shown below.
</para>

<para>
<screenshot>
<screeninfo>&krfb; Configuration (Session Tab)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_session.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_session.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; Configuration (Session Tab)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
If you check the box, &krfb; will not transfer the background
image. If you leave it blank, it is up to the client whether the
background image is transferred or not transferred.
</para>

<para>
The <guilabel>Network</guilabel> tab allows control over the port that
&krfb; uses, as shown below.
</para>

<para>
<screenshot>
<screeninfo>&krfb; Configuration (Network Tab)</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="configuration_network.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="configuration_network.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; Configuration (Network Tab)</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
If you select the <guilabel>Assign port automatically</guilabel>
checkbox, then &krfb; will locate a suitable port, and invitations
will match this port. If you deselect the <guilabel>Assign port
automatically</guilabel> checkbox, you can specify a particular
port. Specifying a particular port may be useful if you are using
port-forwarding on the firewall. Note that if Service Location
Protocol is turned on, this will automatically deal with identifying
the correct port.
</para>

</sect1>

<sect1 id="krfb-connection">
<title>What happens when someone connects to &krfb;</title>

<para>
When someone connects to &krfb; on your machine, you will get a pop-up
notification that looks like the following screenshot, unless you are
accepting uninvited connections without warning.
</para>
<para>
<screenshot>
<screeninfo>&krfb; Connection Window</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="connection.png" format="PNG"/>
	  </imageobject>
	  <imageobject>
	    <imagedata fileref="connection.eps" format="EPS"/>
	  </imageobject>
	  <textobject>
	    <phrase>&krfb; Connection Window</phrase>
	  </textobject>
	</mediaobject>
</screenshot>
</para>

<para>
If you <guibutton>Accept Connection</guibutton>, the client can
proceed to authenticate (which requires the correct password for a
personal invitation or email invitation). If you <guibutton>Refuse
Connection</guibutton>, then the attempt to connect will be terminated.
</para>

<para>
The <guilabel>Allow remote user to control keyboard and
mouse</guilabel> checkbox determines whether this client can only
observe, or can take control of your machine. 
</para>

<para>
If the client connection is successful, and used the password from a
personal invitation or email invitation, then that invitation is
deleted and cannot be used again. You will also get a small pop-up
window in the dock, that shows that the connection has been made.
</para>

</sect1>
</chapter>

<chapter id="dcop">
<title>Developer's Guide to &krfb;</title>

<para>
&krfb; supports a small number of &DCOP; commands, which are described
in this chapter. If you aren't familiar with &DCOP;, then you don't
need to worry about this. However if you'd like to automate some of
your &krfb; (or other &kde; application) actions, &DCOP; is a useful
tool. You can find out more about &DCOP; in its on-line documentation,
and in tutorials on <ulink
url="http://developer.kde.org">http://developer.kde.org</ulink>.
</para>

<para>
You can shut down the &krfb; application using the quit command, as
shown in this example:
</para>

<informalexample>
<screen>
<prompt>&percnt;</prompt>dcop krfb-1507 MainApplication-Interface quit
</screen>
</informalexample>

<note>
<para>
You will need to change the <userinput>krfb-1507</userinput> in the
example to match the instance of &krfb; that you actually want to
shutdown. If you run <command>dcop</command> with no options, you will
get a list of all applications that are running and &DCOP; can
control.
</para>
</note>

</chapter>

<chapter id="faq">
<title>Questions and Answers</title>

<!-- (OPTIONAL but recommended) This chapter should include all of the silly
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
should be reserved for BRIEF questions and answers! If one question uses more
than a page or so then it should probably be part of the
"Using this Application" chapter instead. You should use links to
cross-reference questions to the parts of your documentation that answer them.
This is also a great place to provide pointers to other FAQ's if your users
must do some complicated configuration on other programs in order for your
application work. -->


&reporting.bugs;
&updating.documentation;

<!-- Needs some content.
<qandaset id="faqlist">
<qandaentry>
<question>
<para>A question </para>
</question>
<answer>
<para>and an answer.</para>
</answer>
</qandaentry>
</qandaset>
-->
</chapter>

<chapter id="credits">

<!-- Include credits for the programmers, documentation writers, and
contributors here. The license for your software should then be included below
the credits with a reference to the appropriate license file included in the KDE
distribution. -->

<title>Credits and License</title>

<para>
&krfb;
</para>
<para>
Program copyright 2002 Tim Jansen <email>tim@tjansen.de</email>
</para>
<para>
Contributors:
<itemizedlist>
<listitem><para>Ian Reinhart Geiser <email>geiseri@kde.org</email></para>
</listitem>
</itemizedlist>
</para>

<para>
Documentation Copyright &copy; 2003 &Brad.Hards; &Brad.Hards.mail;
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;               <!-- FDL: do not remove -->

&underGPL;        	 <!-- GPL License -->

</chapter>

<appendix id="installation">
<title>Installation</title>

<sect1 id="getting-krfb">
<title>How to obtain &krfb;</title>

<!-- This first entity contains boiler plate for applications that are
part of KDE CVS.  You should remove it if you are releasing your
application --> 

&install.intro.documentation;

</sect1>

<sect1 id="compilation">
<title>Compilation and Installation</title>

<!-- This entity contains the boilerplate text for standard -->
<!-- compilation instructions.  If your application requires any -->
<!-- special handling, remove it, and replace with your own text. -->

&install.compile.documentation;

</sect1>

</appendix>

&documentation.index;
</book>

<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab 
-->