Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / workspace / doc / kdm / index.docbook
blobbf0c1f94ef263ba6d87ab5d05921e133d7b97520
1 <?xml version="1.0" ?>
2 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
3 "dtd/kdex.dtd" [
4 <!ENTITY kappname "&kdm;">
5 <!ENTITY package "kdebase">
6 <!ENTITY kdmrc "<filename>kdmrc</filename>">
7 <!ENTITY ksmserver "<application>ksmserver</application>">
8 <!ENTITY kdesktop "<application>kdesktop</application>">
9 <!ENTITY XDMCP "<acronym>XDMCP</acronym>">
10 <!ENTITY xdm "<application>xdm</application>">
11 <!ENTITY kdmrc-ref SYSTEM "kdmrc-ref.docbook">
12 <!ENTITY theme-ref SYSTEM "theme-ref.docbook">
13 <!ENTITY % addindex "INCLUDE">
14 <!ENTITY % English "INCLUDE" > <!-- change language only here -->
17 <book lang="&language;">
18 <bookinfo>
19 <title>The &kdm; Handbook</title>
21 <authorgroup>
22 <author>
23 &Oswald.Buddenhagen; &Oswald.Buddenhagen.mail;
24 </author><!--
25 <othercredit role="developer">
26 &Oswald.Buddenhagen; &Oswald.Buddenhagen.mail;
27 <contrib>Developer</contrib>
28 </othercredit>
29 <othercredit role="reviewer">
30 &Lauri.Watts; &Lauri.Watts.mail;
31 <contrib>Reviewer</contrib>
32 </othercredit> -->
34 <!-- TRANS:ROLES_OF_TRANSLATORS -->
36 </authorgroup>
38 <copyright>
39 <year>2000</year>
40 <holder>&Neal.Crook;</holder>
41 </copyright>
43 <copyright>
44 <year>2002</year><year>2007</year>
45 <holder>&Oswald.Buddenhagen;</holder>
46 </copyright>
48 <copyright>
49 <year>2003</year>
50 <holder>&Lauri.Watts;</holder>
51 </copyright>
53 <legalnotice>&FDLNotice;</legalnotice>
55 <date>2007-12-07</date>
56 <releaseinfo>0.06.00</releaseinfo>
58 <abstract>
59 <para>This document describes &kdm; the &kde; Display Manager. &kdm;
60 is also known as the <quote>Login Manager</quote>.</para>
61 </abstract>
63 <keywordset>
64 <keyword>KDE</keyword>
65 <keyword>kdm</keyword>
66 <keyword>xdm</keyword>
67 <keyword>display manager</keyword>
68 <keyword>desktop manager</keyword>
69 <keyword>login manager</keyword>
70 </keywordset>
71 </bookinfo>
73 <!-- ********************************************************************** -->
74 <chapter id="introduction">
75 <title>Introduction</title>
77 <para>&kdm; provides a graphical interface that allows you to log in to a
78 system. It prompts for login (username) and password, authenticates the user
79 and starts a <quote>session</quote>. &kdm; is superior to &xdm;, the X
80 Display Manager, in a number of ways.</para>
82 </chapter>
84 <!-- Chapters to write -->
85 <!-- * Just enough config to get it to run and login to KDE
86 * Adding more session types (GNOME, etc)
87 * Adding other customizations to XSession (ssh/gpg-agent, etc)
88 * Further customization to KDM (via the kcontrol module, and by
89 hand)
90 * XDMCP by query
91 * XDMCP by broadcast
92 * Sound transparency (if Ade can tell me how!)
93 * Pull in all options from the KControl Module
94 * More resources
95 -->
97 <chapter id="quickstart">
98 <title>Quick Start Guide</title>
100 <para>This is a quick start guide for users who fit the following
101 pattern:</para>
103 <itemizedlist>
104 <listitem>
105 <para>X is configured and works with the command
106 <command>startx</command> from the commandline.</para>
107 </listitem>
108 <listitem>
109 <para>Each user will generally only use a single window manager or
110 desktop environment, and does not change this choice very
111 often, or is comfortable editing a single text file in order to change
112 their choice.</para>
113 </listitem>
114 </itemizedlist>
116 <para>This scenario will be sufficient for many environments where a single
117 user or several users normally boot the computer and log into their
118 preferred environment.</para>
120 <procedure>
121 <title>Setting up a Default Session</title>
122 <step>
123 <para>Create or open the file <filename>~/.xinitrc</filename></para>
124 <para>If you already have a working <filename>~/.xinitrc</filename>, go to
125 the next step</para>
126 </step>
127 <step>
128 <para>If one does not already exist, add a line to the
129 <filename>~/.xinitrc</filename> to start your preferred window manager
130 or desktop environment.</para>
131 <para>For &kde; you should enter:</para>
132 <screen><userinput>startkde</userinput></screen>
133 <para>For other window managers or desktop environments, you should
134 look in their documentation for the correct command.</para>
135 </step>
136 <step><para>Make a link as follows:</para>
137 <screen><userinput><command>ln</command> <option>-s</option> <parameter>~/.xinitrc ~/.xsession</parameter></userinput></screen>
138 </step>
139 </procedure>
141 <para>At this point, typing <userinput><command>startx</command></userinput>
142 on the commandline should start X, with a &kde; session. The next task is
143 to try &kdm;.</para>
145 <para>As <systemitem class="username">root</systemitem>, type
146 <userinput><command>kdm</command></userinput> at the prompt.</para>
148 <para>You should see a login window, which is described more fully in <xref
149 linkend="login" />.</para>
151 <para>Typing your normal username and password in the fields provided, and
152 leaving <option>default</option> selected as the session type should now
153 open a &kde; session for your user.</para>
155 <para>If you have other users to configure, you should repeat the procedure
156 above for each of them.</para>
158 <note>
159 <para>This is a quick guide to getting up and running only. You probably
160 will want to customize &kdm; further, for example, to hide the names of the
161 system accounts, to allow further sessions, and much more. Please read
162 through the rest of this manual to find out how to do these things.</para>
163 </note>
165 </chapter>
167 <chapter id="login">
168 <title>The Login Window</title>
170 <para> The user interface to &kdm; consists of dialog boxes. The main
171 dialog box contains:</para>
172 <itemizedlist>
174 <listitem>
175 <para>Widgets allowing you to authenticate. When the "classic" authentication
176 method is chosen, these are:</para>
177 <itemizedlist>
179 <listitem>
180 <para>A <guilabel>Username:</guilabel> field for you to enter your
181 username.</para>
182 </listitem>
184 <listitem>
185 <para>A <guilabel>Password:</guilabel> field for you to enter your
186 password.</para>
187 </listitem>
189 </itemizedlist>
190 </listitem>
192 <listitem>
193 <para>(Optionally) a list containing entries with the name and graphical
194 image of each user (for example, a digitized photograph).
195 Clicking a list entry is equivalent to typing the associated username
196 into the <guilabel>Username:</guilabel> field.</para>
197 </listitem>
199 <listitem>
200 <para>(Optionally) a region to the right of or above the
201 authentication area which can be used to display either a static image or an
202 analog clock.</para>
203 </listitem>
205 <listitem>
206 <para>A <guibutton>Login</guibutton> button that validates the
207 username/password combination and attempts to start a session of the
208 selected type.</para>
209 </listitem>
211 <listitem>
212 <para>A <guibutton>Menu</guibutton> button that opens an action menu
213 with the following items:</para>
214 <itemizedlist>
216 <listitem>
217 <para>(Optionally) A <guimenuitem>Session Type</guimenuitem> item
218 to choose the type of session (desktop environment, window manager) to start.
219 See <xref linkend="different-window-managers-with-kdm"/> to find out
220 how to configure different session types.</para>
221 </listitem>
223 <listitem>
224 <para>(Optionally) A <guimenuitem>Authentication Method</guimenuitem> item
225 to switch between different authentication methods like the classical
226 username+password, smartcard, biometry, etc. The actual authenticators
227 are combinations of <acronym>PAM</acronym> modules and matching frontend
228 modules (<quote>conversation plugins</quote>). See
229 <xref linkend="option-pluginslogin"/>.</para>
230 </listitem>
232 <listitem>
233 <para>(Optionally on local displays) A
234 <guimenuitem>Switch User...</guimenuitem> item to switch between local
235 sessions running on different virtual terminals of this computer.</para>
236 </listitem>
238 <listitem>
239 <para>(Optionally on local displays) A
240 <guimenuitem>Restart X Server</guimenuitem> item
241 that terminates the currently running &X-Server;, starts a new one and
242 displays the login dialog again. You can use this if the display content
243 seems to be broken somehow.</para>
244 </listitem>
246 <listitem>
247 <para>(Optionally on remote displays) A
248 <guimenuitem>Close Connection</guimenuitem>
249 item that closes the connection to the &XDMCP; server you are currently
250 connected to. If you got to this server through a host chooser, this will
251 bring you back to the chooser, otherwise it will only reset the &X-Server;
252 and bring up the login dialog again.</para>
253 </listitem>
255 <listitem>
256 <para>(Optionally on local displays) A
257 <guimenuitem>Remote Login</guimenuitem> item that displays a host chooser
258 dialog with &XDMCP; servers one can log into remotely.</para>
259 </listitem>
261 <listitem>
262 <para>(Optionally on local displays) A <guimenuitem>Console Mode</guimenuitem>
263 item that terminates graphical login and leaves you at the console. See
264 <xref linkend="option-consolettys"/> and
265 <xref linkend="option-servertty"/>.</para>
266 </listitem>
268 <listitem>
269 <para>(Optionally) A <guimenuitem>Shutdown...</guimenuitem> item that displays
270 the <guilabel>Shutdown</guilabel> dialog box.</para>
271 </listitem>
273 </itemizedlist>
274 </listitem>
276 </itemizedlist>
278 <para>The <guilabel>Shutdown</guilabel> dialog box presents a set of
279 buttons that allow one of these actions to be executed:</para>
281 <variablelist>
282 <varlistentry>
283 <term>Turn Off Computer</term>
284 <listitem>
285 <para>Shut the system down in a controlled manner, ready for
286 power-down.</para>
287 </listitem>
288 </varlistentry>
289 <varlistentry>
290 <term>Restart Computer</term>
291 <listitem>
292 <para>Shut the system down and reboot. For systems that use
293 <application>Lilo</application> or <application>Grub</application>,
294 an optional drop down box allows you to select a particular operating system
295 to be used for the reboot.</para>
296 </listitem>
297 </varlistentry>
298 <varlistentry>
299 <term>Schedule...</term>
300 <listitem>
301 <para>If this option is enabled, you may use it to enter a more complex
302 shutdown dialog. See <xref linkend="option-scheduledsd"/> for details.</para>
303 </listitem>
304 </varlistentry>
305 </variablelist>
307 <para>Pressing the <guibutton>Cancel</guibutton> button returns to the
308 main &kdm; dialog box. </para>
310 </chapter>
312 <!-- *********************************************************************** -->
313 <chapter id="configuring-kdm">
314 <title>Configuring &kdm;</title>
316 <para>This chapter assumes that &kdm; is already up and running on your
317 system, and that you simply want to change its behavior in some way.</para>
319 <para>When &kdm; starts up, it reads its configuration from the folder
320 <filename class="directory">$<envar>KDEDIR</envar>/share/config/kdm/</filename>
321 (this may
322 be <filename class="directory">/etc/kde4/kdm/</filename> or something else
323 on your system).</para>
325 <para>The main configuration file is &kdmrc;; all other files are
326 referenced from there and could be stored under any name anywhere on
327 the system - but usually that would not make much sense for obvious
328 reasons (one particular exception is referencing configuration files
329 of an already installed &xdm; - however when a new &kdm; is installed,
330 it will import settings from those files if it finds an already installed
331 &xdm;).</para>
333 <para>Since &kdm; must run before any user is logged in, it is not
334 associated with any particular user. Therefore, it is not possible to have
335 user-specific configuration files; all users share the common &kdmrc;. It
336 follows from this that the configuration of &kdm; can only be altered by
337 those users that have write access to
338 <filename>$<envar>KDEDIR</envar>/share/config/kdm/kdmrc</filename> (normally
339 restricted to system administrators logged in as <systemitem
340 class="username">root</systemitem>).</para>
342 <para>You can view the &kdmrc; file currently in use on your system, and you
343 can configure &kdm; by editing this file. Alternatively, you can use the
344 graphical configuration tool provided by the &kcontrolcenter; (under
345 <menuchoice><guisubmenu>System Administration</guisubmenu><guimenuitem>Login
346 Manager</guimenuitem></menuchoice>).
347 </para>
349 <para>The remainder of this chapter describes configuration of &kdm;
350 via the &kcontrolcenter; module, and the <link linkend="kdm-files">next
351 chapter</link> describes the options available in &kdmrc; itself. If
352 you only need to configure for local users, the &kcontrolcenter; module
353 should be sufficient for your needs. If you need to configure remote
354 logins, or have multiple &kdm; sessions running, you will need to read
355 on.</para>
357 <sect1 id="kdm-kcontrol-module">
358 <sect1info>
359 <authorgroup>
360 <author>&Thomas.Tanghus; &Thomas.Tanghus.mail;</author>
361 <author>&Steffen.Hansen; &Steffen.Hansen.mail;</author>
362 <author>&Mike.McBride; &Mike.McBride.mail;</author>
363 </authorgroup>
364 </sect1info>
366 <title>The Login Manager &kcontrolcenter; Module</title>
368 <para>Using this module, you can configure the &kde; graphical login
369 manager, &kdm;. You can change how the login screen looks, who has
370 access using the login manager and who can shutdown the
371 computer.</para>
373 <note><para>All settings will be written to the configuration file
374 &kdmrc;, which in its original state has many comments to help you
375 configure &kdm;. Using this &kcontrolcenter; module will strip these
376 comments from the file. All available options in &kdmrc; are covered
377 in <xref linkend="kdm-files"/>.</para>
379 <para>The options listed in this chapter are cross referenced with
380 their equivalents in &kdmrc;. All options available in the &kcontrol;
381 module are also available directly in &kdmrc; but the reverse is not
382 true.</para></note>
384 <!-- XXX Totally outdated stuff starts here. XXX -->
386 <para>In order to organize all of these options, this module is
387 divided into several sections: <link
388 linkend="kdmconfig-appearance"><guilabel>Appearance</guilabel></link>,
389 <link linkend="kdmconfig-font"><guilabel>Font</guilabel></link>, <link
390 linkend="kdmconfig-background"><guilabel>Background</guilabel></link>,
391 <link
392 linkend="kdmconfig-shutdown"><guilabel>Shutdown</guilabel></link>,
393 <link linkend="kdmconfig-users"><guilabel>Users</guilabel></link> and
394 <link
395 linkend="kdmconfig-convenience"><guilabel>Convenience</guilabel></link>.</para>
397 <para>You can switch between the sections using the tabs at the top of
398 the window.</para>
400 <note><para>If you are not currently logged in as a superuser, you
401 will need to click the <guibutton>Administrator Mode...</guibutton>
402 Button. You will then be asked for a superuser password. Entering a
403 correct password will allow you to modify the settings of this
404 module.</para></note>
406 <sect2 id="kdmconfig-appearance">
407 <title>Appearance</title>
409 <para>From this page you can change the visual appearance of &kdm;,
410 &kde;'s graphical login manager.</para>
412 <para>The <guilabel>Greeting:</guilabel> is the title of the login
413 screen. Setting this is especially useful if you have many servers users
414 may log in to. You may use various placeholders, which are described
415 along with the corresponding key
416 <link linkend="option-greetstring"><option>GreetString</option></link>
417 in &kdmrc;.
418 </para>
420 <para>You can then choose to show either the current system time, a logo or
421 nothing special in the login box. Make your choice in the radio buttons
422 labeled <guilabel>Logo area:</guilabel>. This corresponds to <link
423 linkend="option-logoarea"><option>LogoArea</option></link> in &kdmrc;</para>
425 <para>If you chose <guilabel>Show logo</guilabel> you can now choose a
426 logo:</para>
428 <itemizedlist>
429 <listitem>
430 <para>Drop an image file on the image button.</para>
431 </listitem>
432 <listitem>
433 <para>Click on the image button and select a new image from the image chooser
434 dialog.</para>
435 </listitem>
436 </itemizedlist>
438 <para>If you do not specify a logo, the default
439 <filename>$<envar>KDEDIR</envar>/share/apps/kdm/pics/kdelogo.xpm</filename>
440 will be displayed.</para>
442 <para>Normally the login box is centered on the screen. Use the
443 <guilabel>Position:</guilabel> options if you want it to appear
444 elsewhere on the screen. You can specify the relative position
445 (percentage of the screen size) for the center of the login window,
446 relative to the top left of the display, in the fields labeled
447 <guilabel>X:</guilabel> and <guilabel>Y:</guilabel> respectively.
448 These correspond to the key
449 <link linkend="option-greeterpos"><option>GreeterPos</option></link>
450 in &kdmrc;.</para>
452 <para>While &kde;'s style depends on the settings of the user logged
453 in, the style used by &kdm; can be configured using the <guilabel>GUI
454 Style:</guilabel> and <guilabel>Color Scheme:</guilabel> options.
455 These correspond to the keys <link
456 linkend="option-guistyle"><option>GUIStyle</option></link> and <link
457 linkend="option-colorscheme"><option>ColorScheme</option></link> in
458 &kdmrc; respectively.</para>
460 <para>Below that, you have a drop down box to choose the language for
461 your login box, corresponding to setting <option>Language</option> in
462 &kdmrc;.</para>
464 </sect2>
466 <sect2 id="kdmconfig-font">
467 <title>Font</title>
469 <para>From this section of the module you can change the fonts used in the
470 login window. Only fonts available to all users are available here, not
471 fonts you have installed on a per user basis.</para>
473 <para>You can select three different font styles from the drop down box
474 (<guilabel>General:</guilabel>, <guilabel>Failures:</guilabel>,
475 <guilabel>Greeting:</guilabel>). When you click on the
476 <guibutton>Choose...</guibutton> button a dialog appears from which you can
477 select the new characteristics for the font style.</para>
479 <itemizedlist>
480 <listitem>
481 <para>The <guilabel>General:</guilabel> font is used in all other places in the
482 login window.</para>
483 </listitem>
484 <listitem>
485 <para>The <guilabel>Failures:</guilabel> font is used when a login
486 fails.</para>
487 </listitem>
488 <listitem>
489 <para>The <guilabel>Greeting:</guilabel> font is the font used for the title
490 (Greeting String).</para>
491 </listitem>
492 </itemizedlist>
494 <para>You can also check the box labeled <guilabel>Use anti-aliasing for
495 fonts</guilabel> if you want smoothed fonts in the login dialog.</para>
497 </sect2>
499 <sect2 id="kdmconfig-background">
500 <title>Background</title>
502 <para>Here you can change the desktop background which will be displayed
503 before a user logs in. The options are identical to those described in the
504 <ulink url="help:/kcontrol/background/index.html">background settings</ulink>,
505 save some that are not applicable to the &kdm; context.</para>
507 </sect2>
509 <sect2 id="kdmconfig-shutdown">
510 <title>Shutdown</title>
512 <para><guilabel>Allow Shutdown</guilabel></para>
513 <para>Use this drop down box to choose who is allowed to shut down:</para>
514 <itemizedlist>
515 <listitem>
516 <para><guilabel>Nobody</guilabel>: No one can shutdown the computer using
517 &kdm;. You must be logged in, and execute a command.</para>
518 </listitem>
519 <listitem>
520 <para><guilabel>Everybody</guilabel>: Everyone can shutdown the computer using
521 &kdm;.</para>
522 </listitem>
523 <listitem><para><guilabel>Only Root</guilabel>: &kdm; requires that the
524 <systemitem>root</systemitem> password be entered before shutting down the
525 computer.</para></listitem>
526 </itemizedlist>
528 <para>You can independently configure who is allowed to issue a
529 shutdown command for the <guilabel>Local:</guilabel> and
530 <guilabel>Remote:</guilabel> users.</para>
532 <para><emphasis>Commands</emphasis></para> <para>Use these text fields to
533 define the exact shutdown command.</para> <para>The
534 <guilabel>Halt:</guilabel> command defaults to <!-- Are these defaults still
535 correct? they disagree with what's in --> <!-- kdmrc -->
536 <command>/sbin/halt</command>. The <guilabel>Restart:</guilabel> command
537 defaults to
538 <command>/sbin/reboot</command>.</para>
540 <para>When <guilabel>Show boot options</guilabel> is enabled, &kdm;
541 will on reboot offer you options for the lilo boot manager. For this
542 feature to work, you will need to supply the correct paths to your
543 <command>lilo</command> command and to lilo's map file. Note that this
544 option is not available on all operating systems.</para>
546 </sect2>
548 <sect2 id="kdmconfig-users">
549 <title>Users</title>
551 <para>From here you can change the way users are represented in the
552 login window.</para>
554 <para>You may disable the user list in &kdm; entirely in the
555 <guilabel>Show Users</guilabel> section. You can choose from:</para>
557 <variablelist>
558 <varlistentry>
559 <term><guilabel>Show List</guilabel></term>
560 <listitem>
561 <para>Only show users you have specifically enabled in the list
562 alongside</para>
563 <para>If you do not check this box, no list will be shown. This is the most secure setting, since an
564 attacker would then have to guess a valid login name as well as a
565 password. It's also the preferred option if you have more than a
566 handful of users to list, or the list itself would become
567 unwieldy.</para>
568 </listitem>
569 </varlistentry>
570 <varlistentry>
571 <term><guilabel>Inverse selection</guilabel></term>
572 <listitem>
573 <para>Allows you to intead select a list of users that should
574 <emphasis>not</emphasis> be shown, and all other users will be
575 listed.</para>
576 </listitem>
577 </varlistentry>
578 </variablelist>
580 <para>Independently of the users you specify by name, you can use the
581 <guilabel>System UIDs</guilabel> to specify a range of valid
582 <acronym>UID</acronym>s that are shown in the list. By default user
583 id's under 1000, which are often system or daemon users, and user id's
584 over 65000, are not shown.</para>
586 <para>You can also enable the <guilabel>Sort users</guilabel>
587 checkbox, to have the user list sorted alphabetically. If this is
588 disabled, users will appear in the order they are listed in the
589 password file. &kdm; will also autocomplete user names if you enable the
590 <guilabel>Autocompletion</guilabel> option.</para>
592 <para>If you choose to show users, then the login window will show
593 images (which you select), of a list of users. When someone is ready
594 to login, they may select their user name/image, enter their password,
595 and they are granted access.</para>
597 <para>If you permit a user image, then you can configure the source
598 for those images.</para>
600 <para>You can configure the admin picture here, for each user on the
601 system. Depending on the order selected above, users may be able to
602 override your selection.</para>
604 <para>If you choose not to show users, then the login window will be
605 more traditional. Users will need to type their username and password
606 to gain entrance. This is the preferred way if you have many users on
607 this terminal.</para>
609 </sect2>
611 <sect2 id="kdmconfig-convenience">
612 <title>Convenience</title>
614 <para>In the <guilabel>convenience</guilabel> tab you can configure
615 some options that make life easier for lazy people, like automatic
616 login or disabling passwords.</para>
618 <important><para>Please think more than twice before using these
619 options. Every option in the <guilabel>Convenience</guilabel> tab is
620 well-suited to seriously compromise your system security. Practically,
621 these options are only to be used in a completely non-critical
622 environment, &eg; a private computer at home. </para></important>
624 <sect3 id="loginmanager-convenience-autologin">
625 <title>Automatic Login</title>
627 <para>Automatic login will give anyone access to a certain account on
628 your system without doing any authentication. You can enable it using
629 the option <guilabel>Enable Auto-login</guilabel>.</para>
631 <para>You can choose the account to be used for automatic login from
632 the list labeled <guilabel>User:</guilabel>.</para>
634 <para>Automatic login can be suppressed by pressing the Shift key immediately
635 after the &X-Server; switches to graphics mode and releasing it when &kdm;'s
636 hourglass cursor appears.</para>
638 </sect3>
640 <sect3 id="loginmanager-convenience-nopasswd">
641 <title><guilabel>Password-Less Login</guilabel></title>
643 <para>Using this feature, you can allow certain users to login without
644 having to provide their password. Enable this feature using the
645 <guilabel>Enable Password-less logins</guilabel> option.</para>
647 <para>Below this option you'll see a list of users on the system.
648 Enable password-less login for specific users by checking the checkbox
649 next to the login names. By default, this feature is disabled for
650 all users.</para>
652 <important><para>Again, this option should only be used in a safe
653 environment. If you enable it on a rather public system you should
654 take care that only users with heavy access restrictions are granted
655 password-less login, &eg;
656 <systemitem>guest</systemitem>.</para></important>
658 <para>You can also choose which user is <quote>preselected</quote>
659 when &kdm; starts. The default is <guilabel>None</guilabel>, but you
660 can choose <guilabel>Previous</guilabel> to have &kdm; default to the
661 last successfully logged in user, or you can
662 <guilabel>Specify</guilabel> a particular user to always be selected
663 from the list. You can also have &kdm; set the focus to the password
664 field, so that when you reach the &kdm; login screen, you can type the
665 password immediately.</para>
667 <para>The <guilabel>Automatically login after X server crash</guilabel>
668 option allows you to skip the authentication procedure when your X
669 server accidentally crashed.</para>
671 </sect3>
673 </sect2>
675 <!-- XXX Totally outdated stuff ends here. XXX -->
677 </sect1>
679 </chapter>
681 &kdmrc-ref;
683 &theme-ref;
685 <!-- ************************************************************ -->
686 <chapter id="configuring-your-system-for-kdm">
687 <title>Configuring your system to use &kdm;</title>
689 <para>This chapter assumes that your system is already configured to
690 run the &X-Window;, and that you only need to reconfigure it to
691 allow graphical login.</para>
693 <sect1 id="setting-up-kdm">
694 <title>Setting up &kdm;</title>
696 <para>The fundamental thing that controls whether your computer boots to a
697 terminal prompt (console mode) or a graphical login prompt is the default
698 runlevel. The runlevel is set by the program <application> <ulink
699 url="man:init">/sbin/init</ulink></application> under the control of the
700 configuration file <filename>/etc/inittab</filename>. The default runlevels
701 used by different &UNIX; systems (and different &Linux; distributions) vary,
702 but if you look at <filename>/etc/inittab</filename> the start of it should
703 be something like this:</para>
705 <screen># Default runlevel. The runlevels used by RHS are:
706 # 0 - halt (Do NOT set initdefault to this)
707 # 1 - Single user mode
708 # 2 - Multiuser, without NFS
709 # 3 - Full multiuser mode
710 # 4 - unused
711 # 5 - X11
712 # 6 - reboot (Do NOT set initdefault to this)
714 id:3:initdefault:
715 </screen>
717 <para>All but the last line of this extract are comments. The comments
718 show that runlevel 5 is used for X11 and that runlevel 3 is used for
719 multi-user mode without X11 (console mode). The final line specifies
720 that the default runlevel of the system is 3 (console mode). If your
721 system currently uses graphical login (for example, using &xdm;) its
722 default runlevel will match the runlevel specified for X11.</para>
724 <para>The runlevel with graphical login (&xdm;) for some common &Linux;
725 distributions is:</para>
727 <itemizedlist>
728 <listitem><para>5 for &RedHat; 3.x and later, and for &Mandrake;</para></listitem>
729 <listitem><para>4 for Slackware</para></listitem>
730 <listitem><para>3 for &SuSE;. 4.x and 5.x</para></listitem>
731 </itemizedlist>
733 <para>The first step in configuring your system is to ensure that you
734 can start &kdm; from the command line. Once this is working, you can
735 change your system configuration so that &kdm; starts automatically
736 each time you reboot your system.</para>
738 <para>To test &kdm;, you must first bring your system to a runlevel
739 that does not run &xdm;. To do so, issue a command like this:</para>
741 <screen><command>/sbin/init <option>3</option></command></screen>
743 <para>Instead of the number <option>3</option> you should specify the
744 appropriate runlevel for console mode on your system.</para>
746 <para>If your system uses Pluggable Authentication Modules
747 (<abbrev>PAM</abbrev>), which is normal with recent &Linux; and &Solaris;
748 systems, you should check that your <abbrev>PAM</abbrev> configuration permits
749 login through the service named <literal>kde</literal>. If you previously used
750 &xdm; successfully, you should not need to make any
751 changes to your <abbrev>PAM</abbrev> configuration in order to use
752 &kdm;. <filename>/etc/pam.conf</filename> or
753 <filename>/etc/pam.d/kde</filename>. Information on configuring
754 <abbrev>PAM</abbrev> is beyond the scope of this handbook, but
755 <abbrev>PAM</abbrev> comes with comprehensive documentation (try looking in
756 <filename>/usr/share/doc/*pam*/html/</filename>).</para>
758 <para>Now it's time for you to test &kdm; by issuing the following
759 command:</para>
761 <screen><command>kdm <option>-nodaemon</option></command>
762 </screen>
764 <para>If you get a &kdm; login dialog and you are able to log in,
765 things are going well. The main thing that can go wrong here is that
766 the run-time linker might not find the shared &Qt; or &kde; libraries.
767 If you have a binary distribution of the &kde; libraries, make sure
768 &kdm; is installed where the libraries believe &kde; is installed and
769 try setting some environment variables to point to your &kde; and &Qt;
770 libraries.</para>
772 <para>For example:</para>
774 <screen><command>export
775 <option>KDEDIR=<replaceable>/opt/kde</replaceable></option></command>
776 <command>export
777 <option>QTDIR=<replaceable>/usr/lib/qt4</replaceable></option></command>
778 <command>export
779 <option>PATH=<replaceable>$KDEDIR/bin:$QTDIR/bin:$PATH</replaceable></option></command>
780 <command>export
781 <option>LD_LIBRARY_PATH=<replaceable>$KDEDIR/lib:$QTDIR/lib</replaceable></option></command>
782 </screen>
784 <para>If you are still unsuccessful, try starting &xdm; instead, to
785 make sure that you are not suffering from a more serious X
786 configuration problem.</para>
788 <para>When you are able to start &kdm; successfully, you can start to
789 replace &xdm; by &kdm;. Again, this is distribution-dependent.</para>
791 <itemizedlist>
792 <listitem>
793 <para>For &RedHat;, edit <filename>/etc/inittab</filename>, look for this
794 line:</para>
795 <screen>x:5:respawn:/usr/X11/bin/xdm -nodaemon</screen>
796 <para>and replace with:</para>
797 <screen>x:5:respawn:/opt/kde/bin/kdm</screen>
798 <para>This tells <command>init</command>(8) to respawn &kdm; when the
799 system is in run level 5. Note that &kdm; does not need the
800 <option>-nodaemon</option> option.</para>
801 </listitem>
802 <listitem>
803 <para>For &Mandrake;, the X11 runlevel in
804 <filename>/etc/inittab</filename> invokes the shell script
805 <filename>/etc/X11/prefdm</filename>, which is set up to select from
806 amongst several display managers, including &kdm;. Make sure that all
807 the paths are correct for your installation.</para>
808 </listitem>
809 <listitem>
810 <para>For &SuSE;, edit <filename>/sbin/init.d/xdm</filename> to add a
811 first line:</para>
813 <screen>. /etc/rc.config
814 DISPLAYMANAGER=kdm
815 export DISPLAYMANAGER</screen>
816 </listitem>
817 <listitem><para>For FreeBSD, edit <filename>/etc/ttys</filename> and find
818 the line like this:</para>
819 <screen>ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</screen>
820 <para>and edit it to this:</para>
821 <screen>ttyv8 "/opt/kde/bin/kdm" xterm on secure</screen>
822 </listitem>
824 <listitem><para>Most other distributions are a variation of one of
825 these.</para></listitem>
826 </itemizedlist>
828 <para>At this stage, you can test &kdm; again by bringing your system
829 to the runlevel that should now run &kdm;. To do so, issue a command
830 like this:</para>
832 <screen><command>/sbin/init <option>5</option></command>
833 </screen>
835 <para>Instead of the number <option>5</option> you should specify the
836 appropriate runlevel for running X11 on your system.</para>
838 <para>The final step is to edit the <parameter>initdefault</parameter>
839 entry in <filename>/etc/inittab</filename> to specify the appropriate
840 runlevel for X11.</para>
842 <warning><para>Before you make this change, ensure that you have a way
843 to reboot your system if a problem occurs. This might be a
844 <quote>rescue</quote> floppy-disk provided by your operating system
845 distribution or a specially-designed <quote>rescue</quote>
846 floppy-disk, such as <literal>tomsrtbt</literal>. Ignore this advice
847 at your peril.</para></warning>
849 <para>This usually involves changing the line:</para>
850 <screen>id:3:initdefault:</screen>
851 <para>to</para>
852 <screen>id:5:initdefault:</screen>
854 <para>When you reboot your system, you should end up with the
855 graphical &kdm; login dialog.</para>
857 <para>If this step is unsuccessful the most likely problem is that the
858 environment used at boot time differs from the environment that you used for
859 testing at the command line. If you are trying to get two versions of &kde;
860 to co-exist, be particularly careful that the settings you use for your
861 <envar>PATH</envar> and <envar>LD_LIBRARY_PATH</envar> environment variables
862 are consistent, and that the startup scripts are not over-riding them in
863 some way.</para>
865 </sect1>
867 </chapter>
869 <chapter id="different-window-managers-with-kdm">
870 <title>Supporting multiple window managers</title>
872 <para>&kdm; detects most available window manager and desktop environments when
873 it is run. Installing a new one should make it automatically available in
874 the &kdm; main dialog's <guimenuitem>Session Type</guimenuitem> submenu.</para>
876 <para>If you have a very new window manager, or something that &kdm; does
877 not support, the first thing you should check is that the application to be
878 run is in the <envar>PATH</envar> and has not been renamed during the
879 install into something unexpected.</para>
881 <para>If the case is that the application is too new and not yet supported
882 by &kdm;, you can quite simply add a new session.</para>
884 <para>The sessions are defined in <firstterm>.desktop</firstterm> files in
885 <filename
886 class="directory">$<envar>KDEDIR</envar>/share/apps/kdm/sessions</filename>.
887 You can simply add an appropriately named <literal
888 role="extension">.desktop</literal> file in this directory. The fields
889 are:</para>
891 <programlisting>[Desktop Entry]
892 Encoding=UTF-8 <lineannotation>This is fixed to <option>UTF-8</option> and
893 may be omitted</lineannotation>
894 Type=XSession <lineannotation>This is fixed to <option>XSession</option> and
895 may be omitted</lineannotation>
896 Exec=<replaceable>executable name</replaceable> <lineannotation>Passed to
897 <command>eval exec</command> in a Bourne shell</lineannotation>
898 TryExec=<replaceable>executable name</replaceable> <lineannotation>Supported
899 but not required</lineannotation>
900 Name=<replaceable>name to show in the &kdm; session list</replaceable></programlisting>
902 <para>There are also three <quote>magic</quote> types:</para>
904 <variablelist>
905 <varlistentry>
906 <term>default</term>
907 <listitem>
908 <para>
909 The default session for &kdm; is normally &kde; but can be configured by the
910 system administrator.
911 </para>
912 </listitem>
913 </varlistentry>
914 <varlistentry>
915 <term>custom</term>
916 <listitem>
917 <para>
918 The Custom session will run the user's ~/.xsession if it exists.
919 </para>
920 </listitem>
921 </varlistentry>
922 <varlistentry>
923 <term>failsafe</term>
924 <listitem>
925 <para>
926 Failsafe will run a very plain session, and is useful only for debugging
927 purposes.
928 </para>
929 </listitem>
930 </varlistentry>
931 </variablelist>
933 <para>To override a session type, copy the .desktop file from the data dir
934 to the config dir and edit it at will. Removing the shipped session types
935 can be accomplished by <quote>shadowing</quote> them with .desktop files
936 containing Hidden=true. For the magic session types no .desktop files exist
937 by default, but &kdm; pretends they would, so you can override them like any
938 other type. I guess you already know how to add a new session type by
939 now. ;-)</para>
941 </chapter>
943 <chapter id="xdmcp-with-kdm">
944 <title>Using &kdm; for Remote Logins (&XDMCP;)</title>
946 <para>&XDMCP; is the Open Group standard, the <quote>X Display Manager
947 Control Protocol</quote>. This is used to set up connections between
948 remote systems over the network.</para>
950 <para>&XDMCP; is useful in multiuser situations where there are users
951 with workstations and a more powerful server that can provide the
952 resources to run multiple X sessions. For example, &XDMCP; is a good
953 way to reuse old computers - a Pentium or even 486 computer with 16 Mb
954 RAM is sufficient to run X itself, and using &XDMCP; such a computer can
955 run a full modern &kde; session from a server. For the server part,
956 once a single &kde; (or other environment) session is running, running
957 another one requires very few extra resources.</para>
959 <para>However, allowing another method of login to your machine
960 obviously has security implications. You should run this service only
961 if you need to allow remote X Servers to start login sessions on your
962 system. Users with a single &UNIX; computer should not need to run
963 this.</para>
965 </chapter>
967 <chapter id="advanced-topics">
968 <title>Advanced Topics</title>
970 <sect1 id="command-sockets">
971 <title>Command Sockets</title>
973 <para>This is a feature you can use to remote-control &kdm;. It's mostly
974 intended for use by &ksmserver; and &kdesktop; from a running session, but
975 other applications are possible as well.</para>
977 <para>The sockets are &UNIX; domain sockets which live in subdirectories of the
978 directory specified by <option>FifoDir</option>=. The subdir is the key to
979 addressing and security; the sockets all have the file name
980 <filename>socket</filename> and file permissions
981 <literal>rw-rw-rw-</literal> (0666). This is because some systems don't care
982 for the file permission of the socket files.</para>
984 <para>There are two types of sockets: the global one (dmctl) and the
985 per-display ones (dmctl-&lt;display&gt;).</para>
987 <para>The global one's subdir is owned by root, the subdirs of the per-display
988 ones' are owned by the user currently owning the session (root or the
989 logged in user). Group ownership of the subdirs can be set via FifoGroup=,
990 otherwise it's root. The file permissions of the subdirs are rwxr-x---
991 (0750).</para>
993 <para>The fields of a command are separated by tabs (<token>\t</token>), the
994 fields of a list are separated by spaces, literal spaces in list fields are
995 denoted by <token>\s</token>.</para>
997 <para>The command is terminated by a newline (<token>\n</token>).</para>
999 <para>The same applies to replies. The reply on success is
1000 <returnvalue>ok</returnvalue>, possibly followed by the requested
1001 information. The reply on error is an errno-style word (&eg;
1002 <returnvalue>perm</returnvalue>, <returnvalue>noent</returnvalue>, &etc;)
1003 followed by a longer explanation.</para>
1005 <variablelist>
1006 <title>Global commands:</title>
1007 <varlistentry>
1008 <term><command>login</command> <option>display</option>
1009 (<parameter>now</parameter> | <parameter>schedule</parameter>) <parameter>user</parameter> <parameter>password</parameter>
1010 [session_arguments]</term>
1011 <listitem>
1012 <para>login user at specified display. if <parameter>now</parameter> is
1013 specified, a possibly running session is killed, otherwise the login is done
1014 after the session exits. session_arguments are printf-like escaped contents
1015 for .dmrc. Unlisted keys will default to previously saved values.</para>
1016 </listitem>
1017 </varlistentry>
1018 </variablelist>
1020 <variablelist>
1021 <title>Per-display commands:</title>
1022 <varlistentry>
1023 <term><command>lock</command></term>
1024 <listitem>
1025 <para>The display is marked as locked. If the &X-Server; crashes in this
1026 state, no auto-relogin will be performed even if the option is on.</para>
1027 </listitem>
1028 </varlistentry>
1029 <varlistentry>
1030 <term><command>unlock</command></term>
1031 <listitem>
1032 <para>Reverse the effect of <command>lock</command>, and re-enable
1033 auto-relogin.</para>
1034 </listitem>
1035 </varlistentry>
1036 <varlistentry>
1037 <term><command>suicide</command></term>
1038 <listitem>
1039 <para>The currently running session is forcibly terminated. No auto-relogin
1040 is attempted, but a scheduled "login" command will be executed.</para>
1041 </listitem>
1042 </varlistentry>
1043 </variablelist>
1045 <variablelist>
1046 <title>Commands for all sockets</title>
1047 <varlistentry>
1048 <term><command>caps</command></term>
1049 <listitem>
1050 <para>Returns a list of this socket's capabilities:</para>
1052 <variablelist>
1053 <varlistentry>
1054 <term><returnvalue>kdm</returnvalue></term>
1055 <listitem>
1056 <para>identifies &kdm;, in case some other DM implements this protocol,
1057 too</para>
1058 </listitem>
1059 </varlistentry>
1060 <varlistentry>
1061 <term><returnvalue>list</returnvalue>, <returnvalue>lock</returnvalue>,
1062 <returnvalue>suicide</returnvalue>, <returnvalue>login</returnvalue></term>
1063 <listitem>
1064 <para>The respective command is supported</para>
1065 </listitem>
1066 </varlistentry>
1067 <varlistentry>
1068 <term><returnvalue>bootoptions</returnvalue></term>
1069 <listitem>
1070 <para>The <command>listbootoptions</command> command and the
1071 <option>=</option> to <command>shutdown</command> are supported</para>
1072 </listitem>
1073 </varlistentry>
1074 <varlistentry>
1075 <term><returnvalue>shutdown &lt;list&gt;</returnvalue></term>
1076 <listitem>
1077 <para><command>shutdown</command> is supported and allowed for the listed
1078 users (a comma separated list.) <returnvalue>*</returnvalue> means all
1079 authenticated users.</para>
1080 </listitem>
1081 </varlistentry>
1082 <varlistentry>
1083 <term><returnvalue>nuke &lt;list&gt;</returnvalue></term>
1084 <listitem>
1085 <para>Forced shutdown may be performed by the listed users.</para>
1086 </listitem>
1087 </varlistentry>
1088 <varlistentry>
1089 <term><returnvalue>nuke</returnvalue></term>
1090 <listitem>
1091 <para>Forced shutdown may be performed by everybody</para>
1092 </listitem>
1093 </varlistentry>
1094 <varlistentry>
1095 <term><returnvalue>reserve &lt;number&gt;</returnvalue></term>
1096 <listitem>
1097 <para>Reserve displays are configured, and <returnvalue>number</returnvalue>
1098 are available at this time</para>
1099 </listitem>
1100 </varlistentry>
1102 <varlistentry>
1103 <term><command>list</command> [<parameter>all</parameter> |
1104 <parameter>alllocal</parameter>]</term>
1105 <listitem>
1106 <para>Return a list of running sessions. By default all active sessions are
1107 listed. if <parameter>all</parameter> is specified, passive sessions are
1108 listed as well. If <parameter>alllocal</parameter> is specified, passive
1109 sessions are listed as well, but all incoming remote sessions are
1110 skipped.</para>
1111 <para>Each session entry is a comma separated tuple of:</para>
1112 <itemizedlist>
1113 <listitem><para>Display or TTY name</para></listitem>
1114 <listitem><para>VT name for local sessions</para></listitem>
1115 <listitem><para>Logged in user's name, empty for passive sessions and
1116 outgoing remote sessions (local chooser mode)</para></listitem>
1117 <listitem><para>Session type or <quote>&lt;remote&gt;</quote> for outgoing
1118 remote sessions, empty for passive sessions.</para></listitem>
1119 <listitem><para>A Flag field:</para>
1120 <itemizedlist><listitem><para><literal>*</literal> for the display belonging
1121 to the requesting socket.</para></listitem>
1122 <listitem><para><literal>!</literal> for sessions that cannot be killed by the
1123 reqeusting socket.</para></listitem>
1124 </itemizedlist>
1125 </listitem>
1126 </itemizedlist>
1127 <para>New fields may be added in the future.</para>
1128 </listitem>
1129 </varlistentry>
1131 <varlistentry>
1132 <term><command>reserve</command> [<parameter>timeout in
1133 seconds</parameter>]</term>
1134 <listitem>
1135 <para>Start a reserve login screen. If nobody logs in within the specified
1136 amount of time (one minute by default), the display is removed again. When
1137 the session on the display exits, the display is removed, too.</para>
1138 <para>Permitted only on sockets of local displays and the global
1139 socket.</para>
1140 </listitem>
1141 </varlistentry>
1143 <varlistentry>
1144 <term><command>activate</command>
1145 (<parameter>vt</parameter>|<parameter>display</parameter>)</term>
1146 <listitem>
1147 <para>Switch to a particular VT (virtual terminal). The VT may be specified
1148 either directly (&eg; <parameter>vt3</parameter>) or by a display using it
1149 (eg; <parameter>:2</parameter>).</para>
1150 <para>Permitted only on sockets of local displays and the global
1151 socket.</para>
1152 </listitem>
1153 </varlistentry>
1155 <varlistentry>
1156 <term><command>listbootoptions</command></term>
1157 <listitem>
1158 <para>List available boot options.</para>
1159 <para>The return value contains these tokens:</para>
1160 <itemizedlist>
1161 <listitem>
1162 <para>A list of boot options (as shown in &kdm; itself).</para>
1163 </listitem>
1164 <listitem>
1165 <para>The default boot option.</para>
1166 </listitem>
1167 <listitem>
1168 <para>The current boot option.</para>
1169 </listitem>
1170 </itemizedlist>
1171 <para>The default and current option are zero-based indices into the list
1172 of boot options. If either one is unset or not determinable, it is -1.</para>
1173 </listitem>
1174 </varlistentry>
1176 <varlistentry>
1177 <term><command>shutdown</command> (<parameter>reboot</parameter> |
1178 <parameter>halt</parameter>)
1179 [<parameter>=<replaceable>bootchoice</replaceable></parameter>]
1180 (<parameter>ask</parameter>|<parameter>trynow</parameter>|<parameter>forcenow</parameter>|<parameter>schedule</parameter>|<parameter>start
1181 (<parameter>-1</parameter>|<parameter>end
1182 (<parameter>force</parameter>|<parameter>forcemy</parameter>|<parameter>cancel)</parameter>)</parameter>)</parameter>)</term>
1183 <listitem>
1184 <para>Request a system shutdown, either a reboot or a halt/poweroff.</para>
1185 <para>An OS choice for the next boot may be specified from the list returned
1186 by <command>listbootoptions</command></para>
1187 <para>Shutdowns requested from per-display sockets are executed when the
1188 current session on that display exits. Such a request may pop up a dialog
1189 asking for confirmation and/or authentication</para>
1190 <para><parameter>start</parameter> is the time for which the shutdown is
1191 scheduled. If it starts with a plus-sign, the current time is added. Zero
1192 means immediately.</para>
1193 <para><parameter>end</parameter> is the latest time at which the shutdown
1194 should be performed if active sessions are still running. If it starts with
1195 a plus-sign, the start time is added. -1 means wait infinitely. If end is
1196 through and active sessions are still running, &kdm; can do one of the
1197 following:</para>
1198 <itemizedlist>
1199 <listitem><para><parameter>cancel</parameter> - give up the
1200 shutdown</para></listitem>
1201 <listitem><para><parameter>force</parameter> - shut down
1202 nonetheless</para></listitem>
1203 <listitem><para><parameter>forcemy</parameter> - shut down nonetheless if
1204 all active sessions belong to the requesting user.
1205 Only for per-display sockets.</para></listitem>
1206 </itemizedlist>
1207 <para><parameter>start</parameter> and <parameter>end</parameter> are
1208 specified in seconds since the &UNIX; epoch.</para>
1209 <para><parameter>trynow</parameter> is a synonym for <parameter>0 0
1210 cancel</parameter>, <parameter>forcenow</parameter> for <parameter>0 0
1211 force</parameter> and <parameter>schedule</parameter> for <parameter>0
1212 -1</parameter>.</para>
1213 <para><parameter>ask</parameter> attempts an immediate shutdown and
1214 interacts with the user if active sessions are still running. Only for
1215 per-display sockets.</para>
1216 </listitem>
1217 </varlistentry>
1219 <varlistentry>
1220 <term><command>shutdown cancel</command>
1221 [<parameter>local</parameter>|<parameter>global</parameter>}</term>
1222 <listitem>
1223 <para>Cancel a scheduled shutdown. The global socket always cancels the
1224 currently pending shutdown, while per-display sockets default to cancelling
1225 their queued request.</para>
1226 </listitem>
1227 </varlistentry>
1229 <varlistentry>
1230 <term><command>shutdown status</command></term>
1231 <listitem>
1232 <para>Return a list with information about shutdowns.</para>
1233 <para>The entries are a comma-separated tuples of:</para>
1234 <itemizedlist>
1235 <listitem>
1236 <para>(<returnvalue>global</returnvalue>|<returnvalue>local</returnvalue>) -
1237 pending vs. queued shutdown. A local entry can be returned only by a
1238 per-display socket.</para>
1239 </listitem>
1240 <listitem><para>(<returnvalue>halt</returnvalue>|<returnvalue>reboot</returnvalue>)</para></listitem>
1241 <listitem><para>start</para></listitem>
1242 <listitem><para>end</para></listitem>
1243 <listitem><para>("ask"|"force"|"forcemy"|"cancel")</para></listitem>
1244 <listitem><para>Numeric user ID of the requesting user, -1 for the global
1245 socket.</para></listitem>
1246 <listitem><para>The next boot OS choice or "-" for none.</para></listitem>
1247 </itemizedlist>
1248 <para>New fields might be added later</para>
1249 </listitem>
1250 </varlistentry>
1251 </variablelist>
1252 </listitem>
1253 </varlistentry>
1254 </variablelist>
1255 <para>There are two ways of using the sockets:</para>
1256 <itemizedlist>
1257 <listitem>
1258 <para>Connecting them directly. FifoDir is exported as
1259 $<envar>DM_CONTROL</envar>; the name of per-display sockets can be derived
1260 from $<envar>DISPLAY</envar>.</para>
1261 </listitem>
1262 <listitem>
1263 <para>By using the <command>kdmctl</command> command (&eg; from within a
1264 shell script). Try <command>kdmctl</command> <option>-h</option> to find out
1265 more.</para>
1266 </listitem>
1267 </itemizedlist>
1269 <para>Here is an example bash script <quote>reboot into FreeBSD</quote>:</para>
1271 <programlisting>if kdmctl | grep -q shutdown; then
1272 IFS=$'\t'
1273 set -- `kdmctl listbootoptions`
1274 if [ "$1" = ok ]; then
1275 fbsd=$(echo "$2" | tr ' ' '\n' | sed -ne 's,\\s, ,g;/freebsd/I{p;q}')
1276 if [ -n "$fbsd" ]; then
1277 kdmctl shutdown reboot "=$fbsd" ask &gt; /dev/null
1278 else
1279 echo "FreeBSD boot unavailable."
1281 else
1282 echo "Boot options unavailable."
1284 else
1285 echo "Cannot reboot system."
1286 fi</programlisting>
1288 </sect1>
1289 <!-- Riddell: so there's no GUI you need to edit kdmrc to say UseTheme=true and Theme=/path/to/theme.xml
1290 [13:31] <Riddell> jriddell.org/programs has an example theme
1292 <sect1 id="dm-themes">
1293 <title>Themes</title>
1295 &kdm; has limited support for desktop manager themes. You may enable them
1296 by adding <userinput>UseTheme=true</userinput> to <filename>kdmrc</filename>
1297 and <userinput>Theme=/path/to/theme.xml</userinput>.
1298 </sect1>
1300 </chapter>
1302 <chapter id="Other-Information">
1303 <title>Other sources of information</title>
1305 <para>Since &kdm; is descended from &xdm;, the <ulink
1306 url="man:xdm">xdm man page</ulink> may provide useful background
1307 information. For X-related problems try the man pages <ulink
1308 url="man:X">X</ulink> and <ulink url="man:startx">startx</ulink>. If you have
1309 questions about &kdm; that are not answered by this handbook, take advantage of
1310 the fact the &kdm; is provided under the terms of the &GNU;
1311 General Public License: look at the source code.
1312 </para>
1314 </chapter>
1317 <chapter id="credits"><title>Credits and License</title>
1319 <para>&kdm; is derived from, and includes code from,
1320 &xdm; &copy; Keith Packard, MIT X Consortium.</para>
1322 <para>&kdm; 0.1 was written by &Matthias.Ettrich;. Later versions till &kde;
1323 2.0.x were written by &Steffen.Hansen;. Some new features for &kde; 2.1.x and
1324 a major rewrite for &kde; 2.2.x made by &Oswald.Buddenhagen;.</para>
1326 <para>Other parts of the &kdm; code are copyright by the authors, and
1327 licensed under the terms of the <ulink url="common/gpl-license.html">&GNU;
1328 GPL</ulink>. Anyone is allowed to change &kdm; and redistribute the result
1329 as long as the names of the authors are mentioned.</para>
1331 <para>&kdm; requires the &Qt; library, which is copyright Troll Tech AS.</para>
1333 <para>Documentation contributors:
1334 <itemizedlist>
1336 <listitem><para>Documentation written by &Steffen.Hansen;
1337 &Steffen.Hansen.mail;</para></listitem>
1339 <listitem><para>Documentation extended by Gregor
1340 Zumstein<email>zumstein@ssd.ethz.ch</email>. Last update August 9,
1341 1998</para></listitem>
1343 <listitem><para>Documentation revised for &kde; 2 by &Neal.Crook;
1344 &Neal.Crook.mail;. Last update August 6,
1345 2000</para></listitem>
1347 <listitem><para>Documentation extended and revised for &kde; 2.2 and 4.0 by
1348 &Oswald.Buddenhagen; &Oswald.Buddenhagen.mail;. Last update December 7,
1349 2007</para></listitem>
1351 </itemizedlist></para>
1353 <para>Documentation copyright &Steffen.Hansen;, Gregor Zumstein, &Neal.Crook;
1354 and &Oswald.Buddenhagen;.
1355 This document also includes large parts of the &xdm; man page,
1356 which is &copy; Keith Packard.
1357 The theme format documentation is heavily based on the GDM manual,
1358 which is &copy; Martin K. Petersen, George Lebl, Red Hat, Inc. and
1359 Sun Microsystems, Inc.</para>
1361 <!--TRANS:CREDIT_FOR_TRANSLATORS -->
1363 &underFDL;
1365 </chapter>
1367 <glossary id="glossary">
1368 <title>Glossary</title>
1370 <glossentry id="gloss-greeter">
1371 <glossterm>greeter</glossterm>
1372 <glossdef><para>The greeter is the login dialog, &ie; the part of &kdm;
1373 which the user sees.</para>
1374 </glossdef>
1375 </glossentry>
1377 <glossentry>
1378 <glossterm id="gloss-entropy">entropy</glossterm>
1379 <glossdef><para>The entropy of a system is the measure of its
1380 unpredictability. This is used during the generation of random numbers.</para>
1381 </glossdef>
1382 </glossentry>
1384 </glossary>
1385 </book>
1386 <!--
1387 Local Variables:
1388 mode: xml
1389 sgml-omittag: nil
1390 sgml-shorttag: t
1391 End: