2
# Copyright 2004-2007 Oswald Buddenhagen <ossi@kde.org>
4
# Permission to use, copy, modify, distribute, and sell this software and its
5
# documentation for any purpose is hereby granted without fee, provided that
6
# the above copyright notice appear in all copies and that both that
7
# copyright notice and this permission notice appear in supporting
10
# The above copyright notice and this permission notice shall be included
11
# in all copies or substantial portions of the Software.
13
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16
# IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
17
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19
# OTHER DEALINGS IN THE SOFTWARE.
21
# Except as contained in this notice, the name of a copyright holders shall
22
# not be used in advertising or otherwise to promote the sale, use or
23
# other dealings in this Software without prior written authorization
24
# from the copyright holders.
27
# The contents of this section are copied into config.ci verbatim.
32
#define KDMCONF KDE_DEBIAN_CONFDIR "/kdm"
33
#define KDMDATA KDE_DATADIR "/kdm"
35
#include <sys/param.h> /* for #define BSD */
38
# define HALT_CMD "/usr/sbin/shutdown -h now"
39
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
40
#elif defined(BSD) || defined(__linux__)
41
# define HALT_CMD "/sbin/shutdown -p now"
42
# define REBOOT_CMD "/sbin/shutdown -r now"
44
# define HALT_CMD "/usr/sbin/halt"
45
# define REBOOT_CMD "/usr/sbin/reboot"
47
# define HALT_CMD "/sbin/halt"
48
# define REBOOT_CMD "/sbin/reboot"
51
#if defined(BSD) || defined(__linux__)
52
# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
53
# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
55
# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/ucb"
56
# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/etc:/usr/ucb"
59
#if 0 /*def HASXDMAUTH*/
60
# define DEF_AUTH_NAME "XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1"
62
# define DEF_AUTH_NAME "MIT-MAGIC-COOKIE-1"
66
#elif defined(__sun__)
67
# define DEF_SERVER_TTY "console"
69
# define DEF_SERVER_TTY "lft0"
71
# define DEF_SERVER_TTY ""
75
# define DEF_SERVER_CMD XBINDIR "/X -T -force"
77
# define DEF_SERVER_CMD XBINDIR "/X"
81
# The contents of this section are copied mostly verbatim to the
82
# default/example configuration file.
83
# Everything indented with a space is considered a comment for the output;
84
# it is prefixed with a hash mark but otherwise copied verbatim (except
85
# for lines consisting of a single underscore, which generate empty comment
87
# Section headers are "condensation seeds" for the Instance:s in the key
90
&kdm; master configuration file
92
Please note: Settings in this file are sometimes ignored (overridden).
93
The default KDM startup script /etc/init.d/kdm looks in /etc/default/kdm.d
94
for theme-related settings which, if found, take precedence. The possibly
95
overridden settings are: UseBackground, BackgroundCfg, UseTheme, Theme.
96
See /usr/share/doc/kdm/README.Debian for details
98
Definition: the greeter is the login dialog, i.e., the part of &kdm;
101
You can configure every X-display individually.
102
Every display has a display name, which consists of a host name
103
(which is empty for local displays specified in {Static|Reserve}Servers),
104
a colon, and a display number. Additionally, a display belongs to a
105
display class (which can be ignored in most cases; the control center
106
does not support this feature at all).
107
Sections with display-specific settings have the formal syntax
108
"[X-" host [":" number [ "_" class ]] "-" sub-section "]"
109
You can use the "*" wildcard for host, number, and class. You may omit
110
trailing components; they are assumed to be "*" then.
111
The host part may be a domain specification like ".inf.tu-dresden.de".
112
It may also be "+", which means non-empty, i.e. remote displays only.
113
From which section a setting is actually taken is determined by these
115
- an exact match takes precedence over a partial match (for the host part),
116
which in turn takes precedence over a wildcard ("+" taking precedence
118
- precedence decreases from left to right for equally exact matches
119
Example: display name "myhost:0", class "dpy".
120
[X-myhost:0_dpy] precedes
121
[X-myhost:0_*] (same as [X-myhost:0]) precedes
122
[X-myhost:*_dpy] precedes
123
[X-myhost:*_*] (same as [X-myhost]) precedes
126
[X-*:0_*] (same as [X-*:0]) precedes
127
[X-*:*_*] (same as [X-*])
128
These sections do NOT match this display:
129
[X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
130
If a setting is not found in any matching section, the default is used.
132
Every comment applies to the following section or key. Note that all
133
comments will be lost if you change this file with the systemsettings frontend.
134
The defaults refer to &kdm;'s built-in values, not anything set in this file.
136
Special characters need to be backslash-escaped (leading and trailing
137
spaces (\\s), tab (\\t), linefeed (\\n), carriage return (\\r) and the
138
backslash itself (\\\\)).
139
In lists, fields are separated with commas without whitespace in between.
140
Some command strings are subject to simplified sh-style word splitting:
141
single quotes (') and double quotes (") have the usual meaning; the backslash
142
quotes everything (not only special characters). Note that the backslashes
143
need to be doubled because of the two levels of quoting.
151
Rough estimations about how many seconds &kdm; will spend at most on
152
- opening a connection to the X-server (OpenTime) if the attempt
153
- times out: OpenTimeout
154
- is refused: OpenRepeat * OpenDelay
155
- starting a local X-server (ServerTime):
156
ServerAttempts * (ServerTimeout + OpenDelay)
157
- starting a display:
158
- local display: ServerTime + OpenTime
159
- foreign display: StartAttempts * OpenTime
160
- &XDMCP; display: OpenTime (repeated indefinitely by client)
162
Core config for all displays
165
Greeter config for all displays
168
Core config for local displays
171
Greeter config for local displays
174
Core config for 1st local display
177
Greeter config for 1st local display
181
# The contents of this section are copied into kdmrc-ref.docbook.
182
# The macro %REF% is replaced with the accumulated Description:s from the key
185
<chapter id="kdm-files">
186
<title>The Files &kdm; Uses for Configuration</title>
188
<para>This chapter documents the files that control &kdm;'s behavior.
189
Some of this can be also controlled from the &systemsettings; module, but
193
<title>&kdmrc; - The &kdm; master configuration file</title>
195
<para>The basic format of the file is <quote>INI-like</quote>.
196
Options are key/value pairs, placed in sections.
197
Everything in the file is case sensitive.
198
Syntactic errors and unrecognized key/section identifiers cause &kdm; to
199
issue non-fatal error messages.</para>
201
<para>Lines beginning with <literal>#</literal> are comments; empty lines
202
are ignored as well.</para>
204
<para>Sections are denoted by
205
<literal>[</literal><replaceable>Name of Section</replaceable><literal>]</literal>.
208
<para>You can configure every X-display individually.</para>
209
<para>Every display has a display name, which consists of a host name
210
(which is empty for local displays specified in <option>StaticServers</option>
211
or <option>ReserveServers</option>), a colon, and a display number.
212
Additionally, a display belongs to a
213
display class (which can be ignored in most cases).</para>
215
<para>Sections with display-specific settings have the formal syntax
216
<literal>[X-</literal> <replaceable>host</replaceable> [ <literal>:</literal> <replaceable>number</replaceable> [ <literal>_</literal> <replaceable>class</replaceable> ] ] <literal>-</literal> <replaceable>sub-section</replaceable> <literal>]</literal>
218
<para>All sections with the same <replaceable>sub-section</replaceable>
219
make up a section class.</para>
221
<para>You can use the wildcard <literal>*</literal> (match any) for
222
<replaceable>host</replaceable>, <replaceable>number</replaceable>,
223
and <replaceable>class</replaceable>. You may omit trailing components;
224
they are assumed to be <literal>*</literal> then. The host part may be a
225
domain specification like <replaceable>.inf.tu-dresden.de</replaceable>
226
or the wildcard <literal>+</literal> (match non-empty).</para>
228
<para>From which section a setting is actually taken is determined by
233
<para>An exact match takes precedence over a partial match (for the
234
host part), which in turn takes precedence over a wildcard
235
(<literal>+</literal> taking precendence over <literal>*</literal>).</para>
239
<para>Precedence decreases from left to right for equally exact matches.</para>
245
Example: display name <quote>myhost.foo:0</quote>, class <quote>dpy</quote>
249
<para>[X-myhost.foo:0_dpy] precedes</para>
252
<para>[X-myhost.foo:0_*] (same as [X-myhost.foo:0]) precedes</para>
255
<para>[X-myhost.foo:*_dpy] precedes</para>
258
<para>[X-myhost.foo:*_*] (same as [X-myhost.foo]) precedes</para>
261
<para>[X-.foo:*_*] (same as [X-.foo]) precedes</para>
264
<para>[X-+:0_dpy] precedes</para>
267
<para>[X-*:0_dpy] precedes</para>
270
<para>[X-*:0_*] (same as [X-*:0]) precedes</para>
273
<para>[X-*:*_*] (same as [X-*]).</para>
276
<para>These sections do <emphasis>not</emphasis> match this display:</para>
277
<para>[X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]</para>
285
<para>Common sections are [X-*] (all displays), [X-:*] (all local displays)
286
and [X-:0] (the first local display).</para>
288
<para>The format for all keys is
289
<userinput><option><replaceable>key</replaceable></option> <literal>=</literal> <parameter>value</parameter></userinput>.
290
Keys are only valid in the section class they are defined for.
291
Some keys do not apply to particular displays, in which case they are ignored.
294
<para>If a setting is not found in any matching section, the default
297
<para>Special characters need to be backslash-escaped (leading and trailing
298
spaces (<literal>\s</literal>), tab (<literal>\t</literal>), linefeed
299
(<literal>\n</literal>), carriage return (<literal>\r</literal>) and the
300
backslash itself (<literal>\\</literal>)).</para>
301
<para>In lists, fields are separated with commas without whitespace in between.
303
<para>Some command strings are subject to simplified sh-style word splitting:
304
single quotes (<literal>'</literal>) and double quotes (<literal>"</literal>)
305
have the usual meaning; the backslash quotes everything (not only special
306
characters). Note that the backslashes need to be doubled because of the
307
two levels of quoting.</para>
309
<note><para>A pristine &kdmrc; is very thoroughly commented.
310
All comments will be lost if you change this file with the
311
&systemsettings; frontend.</para></note>
317
<sect1 id="kdmrc-xservers">
318
<title>Specifying permanent &X-Server;s</title>
320
<para>Each entry in the <option>StaticServers</option> list indicates a
321
display which should constantly be
322
managed and which is not using &XDMCP;. This method is typically used only for
323
local &X-Server;s that are started by &kdm;, but &kdm; can manage externally
324
started (<quote>foreign</quote>) &X-Server;s as well, may they run on the
325
local machine or rather remotely.</para>
327
<para>The formal syntax of a specification is
329
<userinput><replaceable>display name</replaceable> [<literal>_</literal><replaceable>display class</replaceable>]</userinput>
331
for all &X-Server;s. <quote>Foreign</quote> displays differ in having
332
a host name in the display name, may it be <literal>localhost</literal>.</para>
334
<para>The <replaceable>display name</replaceable> must be something that can
335
be passed in the <option>-display</option> option to an X program. This string
336
is used to generate the display-specific section names, so be careful to match
338
The display name of &XDMCP; displays is derived from the display's address by
339
reverse host name resolution. For configuration purposes, the
340
<literal>localhost</literal> prefix from locally running &XDMCP; displays is
341
<emphasis>not</emphasis> stripped to make them distinguishable from local
342
&X-Server;s started by &kdm;.</para>
344
<para>The <replaceable>display class</replaceable> portion is also used in the
345
display-specific sections. This is useful if you have a large collection of
346
similar displays (such as a corral of X terminals) and would like to set
347
options for groups of them.
348
When using &XDMCP;, the display is required to specify the display class,
349
so the manual for your particular X terminal should document the display
350
class string for your device. If it does not, you can run &kdm; in debug
351
mode and <command>grep</command> the log for <quote>class</quote>.</para>
353
<para>The displays specified in <option>ReserveServers</option> will not be
354
started when &kdm; starts up, but when it is explicitly requested via
356
If reserve displays are specified, the &kde; menu will have a
357
<guilabel>Start New Session</guilabel> item near the bottom; use that to
358
activate a reserve display with a new login session. The monitor will switch
359
to the new display, and you will have a minute to login. If there are no more
360
reserve displays available, the menu item will be disabled.</para>
362
<para>When &kdm; starts a session, it sets up authorization data for the
363
&X-Server;. For local servers, &kdm; passes
364
<command><option>-auth</option> <filename><replaceable>filename</replaceable></filename></command>
365
on the &X-Server;'s command line to point it at its authorization data.
366
For &XDMCP; displays, &kdm; passes the authorization data to the &X-Server;
367
via the <quote>Accept</quote> &XDMCP; message.</para>
371
<sect1 id="kdmrc-xaccess">
372
<title>&XDMCP; access control</title>
374
<para>The file specified by the <option>AccessFile</option> option provides
375
information which &kdm; uses to control access from displays requesting service
377
The file contains four types of entries: entries which control the response
378
to <quote>Direct</quote> and <quote>Broadcast</quote> queries, entries which
379
control the response to <quote>Indirect</quote> queries, macro definitions,
380
and entries which control on which network interfaces &kdm; listens for &XDMCP;
382
Blank lines are ignored, <literal>#</literal> is treated as a comment
383
delimiter causing the rest of that line to be ignored, and <literal>\</literal>
384
causes an immediately following newline to be ignored, allowing host lists
385
to span multiple lines.
388
<para>The format of the <quote>Direct</quote> entries is simple, either a
389
host name or a pattern, which is compared against the host name of the display
390
device. Alternatively, a macro may be used to make the entry match everything
391
the macro expands to.
392
Patterns are distinguished from host names by the inclusion of one or more
393
meta characters; <literal>*</literal> matches any sequence of 0 or more
394
characters, and <literal>?</literal> matches any single character.
395
If the entry is a host name, all comparisons are done using network addresses,
396
so any name which converts to the correct network address may be used. Note
397
that only the first network address returned for a host name is used.
398
For patterns, only canonical host names are used in the comparison, so ensure
399
that you do not attempt to match aliases.
400
Host names from &XDMCP; queries always contain the local domain name
401
even if the reverse lookup returns a short name, so you can use
402
patterns for the local domain.
403
Preceding the entry with a <literal>!</literal> character causes hosts which
404
match that entry to be excluded. Preceding it with an <literal>=</literal> has
405
no effect but is required when specifying a macro to distinguish the entry
406
from a macro definition.
407
To only respond to <quote>Direct</quote> queries for a host or pattern,
408
it can be followed by the optional <literal>NOBROADCAST</literal> keyword.
409
This can be used to prevent a &kdm; server from appearing on menus based on
410
<quote>Broadcast</quote> queries.</para>
412
<para>An <quote>Indirect</quote> entry also contains a host name, pattern or
413
macro, but follows it with a list of host names or macros to which the queries
414
should be forwarded. <quote>Indirect</quote> entries can be excluding as well,
415
in which case a (valid) dummy host name must be supplied to make the entry
416
distinguishable from a <quote>Direct</quote> entry.
417
If compiled with IPv6 support, multicast address groups may also be included
418
in the list of addresses the queries are forwarded to.
419
<!-- Not actually implemented!
420
Multicast addresses may be followed by an optional <literal>/</literal>
421
character and hop count. If no hop count is specified, the multicast hop count
422
defaults to 1, keeping the packet on the local network. For IPv4 multicasting,
423
the hop count is used as the TTL.
425
If the indirect host list contains the keyword <literal>CHOOSER</literal>,
426
<quote>Indirect</quote> queries are not forwarded, but instead a host chooser
427
dialog is displayed by &kdm;. The chooser will send a <quote>Direct</quote>
428
query to each of the remaining host names in the list and offer a menu of
429
all the hosts that respond. The host list may contain the keyword
430
<literal>BROADCAST</literal>, to make the chooser send a
431
<quote>Broadcast</quote> query as well; note that on some operating systems,
432
UDP packets cannot be broadcast, so this feature will not work.
435
<para>When checking access for a particular display host, each entry is scanned
436
in turn and the first matching entry determines the response.
437
<quote>Direct</quote> and <quote>Broadcast</quote> entries are ignored when
438
scanning for an <quote>Indirect</quote> entry and vice-versa.</para>
440
<para>A macro definition contains a macro name and a list of host names and
441
other macros that the macro expands to. To distinguish macros from hostnames,
442
macro names start with a <literal>%</literal> character.</para>
444
<para>The last entry type is the <literal>LISTEN</literal> directive.
447
<userinput> <literal>LISTEN</literal> [<replaceable>interface</replaceable> [<replaceable>multicast list</replaceable>]]</userinput>
449
If one or more <literal>LISTEN</literal> lines are specified, &kdm; listens
450
for &XDMCP; requests only on the specified interfaces.
451
<replaceable>interface</replaceable> may be a hostname or IP address
452
representing a network interface on this machine, or the wildcard
453
<literal>*</literal> to represent all available network interfaces.
454
If multicast group addresses are listed on a <literal>LISTEN</literal> line,
455
&kdm; joins the multicast groups on the given interface. For IPv6 multicasts,
456
the IANA has assigned ff0<replaceable>X</replaceable>:0:0:0:0:0:0:12b as the
457
permanently assigned range of multicast addresses for &XDMCP;. The
458
<replaceable>X</replaceable> in the prefix may be replaced by any valid scope
459
identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and
460
so on (see IETF RFC 2373 or its replacement for further details and scope
461
definitions). &kdm; defaults to listening on the Link-Local scope address
462
ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior.
463
If no <literal>LISTEN</literal> lines are given, &kdm; listens on all
464
interfaces and joins the default &XDMCP; IPv6 multicast group (when
465
compiled with IPv6 support).
466
To disable listening for &XDMCP; requests altogether, a
467
<literal>LISTEN</literal> line with no addresses may be specified, but using
468
the <literal>[Xdmcp]</literal> <option>Enable</option> option is preferred.
473
<sect1 id="kdm-scripts">
474
<title>Supplementary programs</title>
477
The following programs are run by &kdm; at various stages of a session.
478
They typically are shell scripts.
482
The Setup, Startup and Reset programs are run as
483
<systemitem class="username">root</systemitem>, so they should be careful
485
Their first argument is <literal>auto</literal> if the session results
486
from an automatic login; otherwise, no arguments are passed to them.
489
<sect2 id="kdmrc-xsetup">
490
<title>Setup program</title>
493
The <filename>Xsetup</filename> program is run after the &X-Server; is
494
started or reset, but before the greeter is offered.
495
This is the place to change the root background (if
496
<option>UseBackground</option> is disabled) or bring up other windows that
497
should appear on the screen along with the greeter. Resources for this
498
program can be put into the file named by <option>Resources</option>.
502
In addition to any specified by <option>ExportList</option>,
503
the following environment variables are passed:</para>
507
<listitem><para>the associated display name</para></listitem>
511
<listitem><para>the value of <option>SystemPath</option></para></listitem>
515
<listitem><para>the value of <option>SystemShell</option></para></listitem>
518
<term>XAUTHORITY</term>
519
<listitem><para>may be set to an authority file</para></listitem>
522
<term>DM_CONTROL</term>
523
<listitem><para>the value of <option>FifoDir</option></para></listitem>
527
<note><para><option>GrabInput</option> can make &kdm; grab the
528
keyboard and mouse, making any other windows unable to receive input.
529
If <option>GrabServer</option> is set, <filename>Xsetup</filename>
530
will not be able to connect to the display at all.</para></note>
534
<sect2 id="kdmrc-xstartup">
535
<title>Startup program</title>
537
<para>The <filename>Xstartup</filename> program is run as
538
<systemitem class="username">root</systemitem> when the user logs in.
539
This is the place to put commands which add entries to
540
<filename>utmp</filename> (the <command>sessreg</command> program
541
may be useful here), mount users' home directories from file servers,
542
or abort the session if some requirements are not met (but note that on
543
modern systems, many of these tasks are already taken care of by
544
<acronym>PAM</acronym> modules).</para>
546
<para>In addition to any specified by <option>ExportList</option>,
547
the following environment variables are passed:</para>
551
<listitem><para>the associated display name</para></listitem>
555
<listitem><para>the initial working directory of the user</para></listitem>
559
<listitem><para>the username</para></listitem>
563
<listitem><para>the username</para></listitem>
567
<listitem><para>the value of <option>SystemPath</option></para></listitem>
571
<listitem><para>the value of <option>SystemShell</option></para></listitem>
574
<term>XAUTHORITY</term>
575
<listitem><para>may be set to an authority file</para></listitem>
578
<term>DM_CONTROL</term>
579
<listitem><para>the value of <option>FifoDir</option></para></listitem>
583
<para>&kdm; waits until this program exits before starting the user session.
584
If the exit value of this program is non-zero, &kdm; discontinues the session
585
and starts another authentication cycle.</para>
589
<sect2 id="kdmrc-xsession">
590
<title>Session program</title>
592
<para>The <filename>Xsession</filename> program is the command which is run
593
as the user's session. It is run with the permissions of the authorized user.
594
One of the keywords <literal>failsafe</literal>, <literal>default</literal>
595
or <literal>custom</literal>, or a string to <command>eval</command> by a
596
Bourne-compatible shell is passed as the first argument.</para>
598
<para>In addition to any specified by <option>ExportList</option>,
599
the following environment variables are passed:</para>
603
<listitem><para>the associated display name</para></listitem>
607
<listitem><para>the initial working directory of the user</para></listitem>
611
<listitem><para>the username</para></listitem>
615
<listitem><para>the username</para></listitem>
619
<listitem><para>the value of <option>UserPath</option>
620
(or <option>SystemPath</option> for
621
<systemitem class="username">root</systemitem> user sessions)</para>
626
<listitem><para>the user's default shell</para></listitem>
629
<term>XAUTHORITY</term>
630
<listitem><para>may be set to a non-standard authority file</para></listitem>
633
<term>KRBTKFILE</term>
634
<listitem><para>may be set to a Kerberos4 credentials cache name</para>
638
<term>KRB5CCNAME</term>
639
<listitem><para>may be set to a Kerberos5 credentials cache name</para>
643
<term>DM_CONTROL</term>
644
<listitem><para>the value of <option>FifoDir</option></para></listitem>
647
<term>XDM_MANAGED</term>
648
<listitem><para>will contain a comma-separated list of parameters the
649
session might find interesting, like which conversation
650
plugin was used for the login</para>
654
<term>DESKTOP_SESSION</term>
655
<listitem><para>the name of the session the user has chosen to run</para>
662
<sect2 id="kdmrc-xreset">
663
<title>Reset program</title>
665
<para>Symmetrical with <filename>Xstartup</filename>, the
666
<filename>Xreset</filename> program is run after the user session has
667
terminated. Run as <systemitem class="username">root</systemitem>, it should
668
contain commands that undo the effects of commands in
669
<filename>Xstartup</filename>, removing entries from <filename>utmp</filename>
670
or unmounting directories from file servers.</para>
672
<para>The environment variables that were passed to
673
<filename>Xstartup</filename> are also passed to <filename>Xreset</filename>.
684
# The rest of this file are section and key definitions for the options.
685
# The order of the keywords is fixed and everything is case sensitive.
686
# A keyword may expect supplementary data in the form of space-indented
687
# lines following it. Definitions are delimited by empty lines.
689
# Section definition:
691
# Section name. Section classes start with a dash.
693
# C preprocessor conditional for supporting this section.
694
# If it evaluates to false, all keys in this section are disabled as well.
696
# A docbook description of this section is expected in the next lines.
697
# The contents are automatically enclosed in <para></para>.
699
# Option key definition:
703
# C preprocessor conditional for supporting this option.
704
# Type: (int|bool|enum|group|string|path|list)
705
# The option's data type.
706
# If the type is enum, the element definitions follow in the next lines:
707
# <term>[/<c #define>]: <docbook style description>
709
# Default value. string, path and list are copied verbatim and therefore
710
# must be already quoted appropriately. The other types are auto-quoted.
711
# If the default value is prefixed with a "*", a c #define def_<Key> is
713
# The default is automatically appended to the kdmrc comment and the
714
# documentation entry.
715
# CDefault: <verbose default>
716
# Append this instead of the real default to the two docs. The quoting
717
# rules are the same as for Default.
719
# If specified, the default value will not be appended to the documentation
720
# entry. The Description should mention the default then. Use this when
721
# the default is system-dependent.
722
# PostProc: <function>
723
# A function to postprocess the read config value before using it.
724
# User: (dummy|(core|greeter|greeter-c|dep|config)[(<variable>)][:font])
725
# These entries specify which parts of kdm need the option in question:
726
# dummy: no user; entry is there only for syntactical correctness.
727
# dep: this option is an internal dependency for another option.
728
# config: this option configures the config reader itself.
729
# core: the kdm backend needs this option.
730
# greeter-c: the kdm frontend needs this option as a C data type.
731
# greeter: the kdm frontend needs this option as a C++/Qt data type.
732
# If a :font tag is appended, a string entry is converted to a QFont.
733
# If no variable name is specified, it will be derived from the Key by
734
# un-capitalizing it.
735
# Instance: (-|[#][<display spec>/](!|<value>))
736
# These entries specify option instances for the default/example kdmrc.
737
# A "-" entry is a dummy for syntactical correctness.
738
# A prefixing hash mark will be copied to kdmrc.
739
# For options in a section class a display must be specified.
740
# For bool options "!" can be used as the value to specify the negation
742
# Update: <function>[/<number>]
743
# Call this function on each occurence of this option in genkdmconf.
744
# Options with higher numbers (default is 0) will be processed later.
745
# Merge: xdm[:<resource>][(<function>)]
746
# Merge: kdm:[<section>/][<key>][(<function>)]
747
# Specify config options to merge from xdm and older kdm versions.
748
# Kdm options from the current version are automatically merged.
749
# When merging an xdm resource and no resource name is specified, it is
750
# derived from the Key by un-capitalizing it.
751
# When merging a kdm option, at least one of <section> and <key> must
752
# be given; an unspecified entity defaults to the current Section/Key.
753
# <section> may be a dash-prefixed section class.
754
# A function to postprocess the read value can be specified.
756
# A kdmrc comment for this option is expected in the next lines.
757
# If "-" is given to Comment, no comment is generated at all.
758
# If "&" is given, the comment is derived from the Description below by
759
# applying some simple docbook interpretation to it. Note that the
760
# Description must be preformatted in this case. Use
761
# sed -ne 's/^\(.\{79,\}\)$/\1/p' < kdmrc
762
# after running "make install" to see whether all lines still fit.
763
# If Type is enum, a list of the previously defined element/description
764
# pairs is appended; the descriptions undergo docbook interpretation.
765
# Finally, a sentence with the Default (or CDefault, if given) is appended.
767
# A docbook description of this option is expected in the next lines.
768
# The contents are automatically enclosed in <para></para>.
769
# If "-" is given to Description, no comment is generated at all.
770
# If "!" is given, enums are not treated specially; otherwise, the macro
771
# %ENUM% is replaced with a list of the defined element/description pairs,
772
# or - if the macro is not present - the list is appended to the
774
# Finally, a sentence with the Default (or CDefault, if given) is appended,
775
# unless "DDefault: -" was specified.
776
# Each option entry generates an anchor named option-<lowercase(Key)>;
777
# it can be referenced in the main documentation.
778
# Do not forget to run "make ref" in kdebase/doc/kdm after changing
783
This section contains global options that do not fit into any specific section.
790
# will be overwritten
793
This option exists solely for the purpose of a clean automatic upgrade.
794
Do not even think about changing it!
796
This option exists solely for the purpose of clean automatic upgrades.
797
<emphasis>Do not</emphasis> change it, you may interfere with future
798
upgrades and this could result in &kdm; failing to run.
803
Default: KDM_PAM_SERVICE
811
# note: this can miss Xservers from kdm for kde 2.2 because of stupid default.
812
Source: kdm:General/Xservers
822
List of permanent displays. Displays with a hostname are foreign. A display
823
class may be specified separated by an underscore.
825
List of displays (&X-Server;s) permanently managed by &kdm;. Displays with a
826
hostname are foreign displays which are expected to be already running,
827
the others are local displays for which &kdm; starts an own &X-Server;;
828
see <option>ServerCmd</option>. Each display may belong to a display class;
829
append it to the display name separated by an underscore.
830
See <xref linkend="kdmrc-xservers"/> for the details.
839
List of on-demand displays. See <option>StaticServers</option> for syntax.
842
If: defined(HAVE_VTS)
846
Instance: #"7,8,-9,-10"
847
Update: upd_servervts
849
VTs to allocate to &X-Server;s. A negative number means that the VT will be
850
used only if it is free. If all VTs in this list are used up, the next free
851
one greater than the last one in this list will be allocated.
853
List of Virtual Terminals to allocate to &X-Server;s. For negative numbers the
854
absolute value is used, and the <acronym>VT</acronym> will be allocated only
855
if the kernel says it is free. If &kdm; exhausts this list, it will allocate
856
free <acronym>VT</acronym>s greater than the absolute value of the last entry
858
Currently Linux only.
861
If: defined(HAVE_VTS)
865
Instance: #"tty1,tty2,tty3,tty4,tty5,tty6"
866
Update: upd_consolettys
868
TTYs (without /dev/) to monitor for activity while in console mode.
870
This option is for operating systems (<acronym>OS</acronym>s) with support
871
for virtual terminals (<acronym>VT</acronym>s), by both &kdm; and the
872
<acronym>OS</acronym>s itself.
873
Currently this applies only to Linux.
875
When &kdm; switches to console mode, it starts monitoring all
876
<acronym>TTY</acronym> lines listed here (without the leading
877
<literal>/dev/</literal>).
878
If none of them is active for some time, &kdm; switches back to the X login.
884
Instance: "/var/run/kdm.pid"
887
Where &kdm; should store its PID (do not store if empty).
889
The filename specified will be created to contain an ASCII representation
890
of the process ID of the main &kdm; process; the PID will not be stored
891
if the filename is empty.
900
Whether &kdm; should lock the PID file to prevent having multiple &kdm;
901
instances running at once. Do not change unless you are brave.
903
This option controls whether &kdm; uses file locking to keep multiple
904
display managers from running onto each other.
909
Default: "/var/run/xauth"
912
Merge: xdm(P_authDir)
914
Where to store authorization files.
916
This names a directory under which &kdm; stores &X-Server; authorization
917
files while initializing the session. &kdm; expects the system to clean up
918
this directory from stale files on reboot.
920
The authorization file to be used for a particular display can be
921
specified with the <option>AuthFile</option> option in [X-*-Core].
930
Whether &kdm; should automatically re-read configuration files, if it
931
finds them having changed.
933
This boolean controls whether &kdm; automatically re-reads its
934
configuration files if it finds them to have changed.
940
Instance: #"LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR"
944
Additional environment variables &kdm; should pass on to all programs it runs.
945
<envar>LD_LIBRARY_PATH</envar> and <envar>XCURSOR_THEME</envar> are good candidates;
946
otherwise, it should not be necessary very often.
949
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
956
A file &kdm; should read entropy from.
958
If the system has no native entropy source like /dev/urandom (see
959
<option>RandomDevice</option>) and no entropy daemon like EGD (see
960
<option>PrngdSocket</option> and <option>PrngdPort</option>) is running,
961
&kdm; will fall back to its own pseudo-random number generator
962
that will, among other things, successively checksum parts of this file
963
(which, obviously, should change frequently).
965
This option does not exist on Linux and various BSDs.
968
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
973
Instance: #"/tmp/entropy"
976
A UNIX domain socket &kdm; should read entropy from.
978
If the system has no native entropy source like /dev/urandom (see
979
<option>RandomDevice</option>), read random data from a Pseudo-Random
980
Number Generator Daemon,
981
like EGD (http://egd.sourceforge.net) via this UNIX domain socket.
983
This option does not exist on Linux and various BSDs.
986
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
993
A TCP socket on localhost &kdm; should read entropy from.
995
Same as <option>PrngdSocket</option>, only use a TCP socket on localhost.
998
If: !defined(ARC4_RANDOM)
1002
Instance: #"/dev/altrandom"
1005
A character device &kdm; should read entropy from.
1006
Empty means use the system's preferred entropy device.
1008
The path to a character device which &kdm; should read random data from.
1009
Empty means to use the system's preferred entropy device if there is one.
1011
This option does not exist on OpenBSD, as it uses the arc4_random
1016
Default: *"/var/run/xdmctl"
1021
Where the command sockets should be created; make it empty to disable
1024
The directory in which the command sockets should
1025
be created; make it empty to disable them.
1026
# See <xref linkend="kdm-fifos"/> for the details.
1035
The group to which the global command socket should belong;
1036
can be either a name or a numerical ID.
1043
Update: upd_greeteruid
1046
The user the greeter should run as. Empty results in <systemitem class="username">root</systemitem>.
1047
Consider the impact on <option>LogSource</option> when setting it.
1051
Default: *"/var/lib/kdm"
1054
Update: upd_datadir/1
1056
The directory in which &kdm; should store persistent working data.
1058
The directory in which &kdm; should store persistent working data; such data
1059
is, for example, the previous user that logged in on a particular display.
1065
Instance: #"/nfs-shared/var/dmrcs"
1068
The directory in which &kdm; should store users' <filename>.dmrc</filename> files. This is only
1069
needed if the home directories are not readable before actually logging in
1076
This section contains options that control &kdm;'s handling of
1078
# See <xref linkend="xdmcp-with-kdm"/> to find out what &XDMCP; is.
1083
User: dep(xdmcpEnable)
1087
Whether &kdm; should listen to incoming &XDMCP; requests.
1092
PostProc: PrequestPort
1093
User: core(requestPort)
1095
Merge: xdm:requestPort(P_requestPort)
1097
The UDP port on which &kdm; should listen for &XDMCP; requests. Do not change.
1099
This indicates the UDP port number which &kdm; uses to listen for incoming
1100
&XDMCP; requests. Unless you need to debug the system, leave this with its
1107
Instance: #KDMCONF "/kdmkeys"
1111
File with the private keys of X-terminals. Required for XDM authentication.
1113
XDM-AUTHENTICATION-1 style &XDMCP; authentication requires a private
1114
key to be shared between &kdm; and the terminal. This option specifies
1115
the file containing those values. Each entry in the file consists of a
1116
display name and the shared key.
1121
Default: *KDMCONF "/Xaccess"
1122
User: config(Xaccess)
1125
Merge: xdm:accessFile
1127
&XDMCP; access control file in the usual XDM-Xaccess format.
1129
To prevent unauthorized &XDMCP; service and to allow forwarding of &XDMCP;
1130
IndirectQuery requests, this file contains a database of hostnames which
1131
are either allowed direct access to this machine, or have a list of hosts
1132
to which queries should be forwarded to. The format of this file is
1133
described in <xref linkend="kdmrc-xaccess"/>.
1142
Number of seconds to wait for display to respond after the user has
1143
selected a host from the chooser.
1145
Number of seconds to wait for the display to respond after the user has
1146
selected a host from the chooser. If the display sends an &XDMCP;
1147
IndirectQuery within this time, the request is forwarded to the chosen
1148
host; otherwise, it is assumed to be from a new session and the chooser
1151
Key: RemoveDomainname
1158
Strip domain name from remote display names if it is equal to the local
1161
When computing the display name for &XDMCP; clients, the name resolver will
1162
typically create a fully qualified host name for the terminal. As this is
1163
sometimes confusing, &kdm; will remove the domain name portion of the host
1164
name if it is the same as the domain name of the local host when this option
1174
Use the numeric IP address of the incoming connection on multihomed hosts
1175
instead of the host name.
1177
Use the numeric IP address of the incoming connection on multihomed hosts
1178
instead of the host name. This is to avoid trying to connect on the wrong
1179
interface which might be down at this time.
1185
# will be overwritten
1191
The program which is invoked to dynamically generate replies to &XDMCP;
1192
DirectQuery or BroadcastQuery requests.
1193
If empty, no program is invoked and "Willing to manage" is sent.
1195
This specifies a program which is run (as
1196
<systemitem class="username">root</systemitem>) when an &XDMCP;
1197
DirectQuery or BroadcastQuery is received and this host is configured
1198
to offer &XDMCP; display management. The output of this program may be
1199
displayed in a chooser window. If no program is specified, the string
1200
<quote>Willing to manage</quote> is sent.
1205
This section contains global options concerning system shutdown.
1214
The command (subject to word splitting) to run to halt the system.
1216
The command (subject to word splitting) to run to halt/poweroff the system.
1218
The default is something reasonable for the system on which &kdm; was built, like
1219
<command>/sbin/shutdown <option>-h</option> <parameter>now</parameter></command>.
1225
User: core(cmdReboot)
1228
The command (subject to word splitting) to run to reboot the system.
1230
The command (subject to word splitting) to run to reboot the system.
1232
The default is something reasonable for the system &kdm; on which was built, like
1233
<command>/sbin/shutdown <option>-r</option> <parameter>now</parameter></command>.
1238
User: core(fifoAllowShutdown)
1242
Whether it is allowed to shut down the system via the global command socket.
1247
User: core(fifoAllowNuke)
1250
Whether it is allowed to abort active sessions when shutting down the
1251
system via the global command socket.
1253
Whether it is allowed to abort active sessions when shutting down the
1254
system via the global command socket.
1256
This will have no effect unless <option>AllowFifo</option> is enabled.
1260
None/BO_NONE: no boot manager
1261
Grub/BO_GRUB: Grub boot manager
1262
Lilo/BO_LILO: Lilo boot manager (Linux on i386 & x86-64 only)
1267
Merge: kdm:UseLilo(P_UseLilo)
1270
The boot manager &kdm; should use for offering boot options in the
1276
This section class contains options concerning the configuration
1277
of the &kdm; backend (core).
1284
Merge: xdm(P_openDelay)
1286
How long to wait before retrying to connect a display.
1288
See <option>OpenRepeat</option>.
1297
How long to wait before timing out a display connection attempt.
1299
See <option>OpenRepeat</option>.
1308
How many connection attempts to make during a start attempt. Note that
1309
a timeout aborts the entire start attempt.
1311
These options control the behavior of &kdm; when attempting to open a
1312
connection to an &X-Server;. <option>OpenDelay</option> is the length
1313
of the pause (in seconds) between successive attempts,
1314
<option>OpenRepeat</option> is the number of attempts to make and
1315
<option>OpenTimeout</option> is the amount of time to spend on a
1316
connection attempt. After <option>OpenRepeat</option> attempts have been
1317
made, or if <option>OpenTimeout</option> seconds elapse in any particular
1318
connection attempt, the start attempt is considered failed.
1327
Try at most that many times to start a display. If this fails, the display
1330
How many times &kdm; should attempt to start a <literal>foreign</literal>
1331
display listed in <option>StaticServers</option> before giving up
1333
Local displays are attempted only once, and &XDMCP; displays are retried
1334
indefinitely by the client (unless the option <option>-once</option>
1335
was given to the &X-Server;).
1344
How often to try to run the &X-Server;. Running includes executing it and
1345
waiting for it to come up.
1347
How many times &kdm; should attempt to start up a local &X-Server;.
1348
Starting up includes executing it and waiting for it to come up.
1356
How long to wait for a local &X-Server; to come up.
1358
How many seconds &kdm; should wait for a local &X-Server; to come up.
1362
Default: DEF_SERVER_CMD
1365
Instance: :*/DEF_SERVER_CMD
1366
Update: upd_servercmd
1368
The command line to start the &X-Server;, without display number and VT spec.
1369
This string is subject to word splitting.
1371
The command line to start the &X-Server;, without display number and VT spec.
1372
Note that with some &X-Server;s (in particular, OpenSolaris') it is necessary
1373
to put most additional arguments into <option>ServerArgsLocal</option> and
1374
<option>ServerArgsRemote</option> even if they are the same for both.
1375
This string is subject to word splitting.
1377
The default is something reasonable for the system on which &kdm; was built,
1378
like <command>/usr/bin/X</command>.
1380
Key: ServerArgsLocal
1384
Instance: :*/"-nr -nolisten tcp"
1387
Additional arguments for the &X-Server;s for local sessions.
1388
This string is subject to word splitting.
1390
Key: ServerArgsRemote
1397
Additional arguments for the &X-Server;s for remote sessions.
1398
This string is subject to word splitting.
1401
If: defined(HAVE_VTS)
1404
User: core(reqSrvVT)
1407
The VT the &X-Server; should run on; auto-assign if zero, don't assign if -1.
1408
Better leave it zero and use ServerVTs.
1410
The VT the &X-Server; should run on.
1411
<option>ServerVTs</option> should be used instead of this option.
1412
Leave it zero to let &kdm; assign a <acronym>VT</acronym> automatically.
1413
Set it to <literal>-1</literal> to avoid assigning a <acronym>VT</acronym>
1414
alltogether - this is required for setups with multiple physical consoles.
1415
Currently Linux only.
1418
If: !defined(HAVE_VTS)
1422
Instance: :0/DEF_SERVER_TTY
1424
The TTY line (without /dev/) the &X-Server; covers physically.
1426
This option is for <acronym>OS</acronym>s without support for
1427
<acronym>VT</acronym>s, either by &kdm; or the <acronym>OS</acronym> itself.
1428
Currently this applies to all <acronym>OS</acronym>s but Linux.
1430
When &kdm; switches to console mode, it starts monitoring this
1431
<acronym>TTY</acronym> line (specified without the leading
1432
<literal>/dev/</literal>) for activity. If the line is not used for some time,
1433
&kdm; switches back to the X login.
1439
Instance: #:*/"_x11"
1442
The user the &X-Server; should run as. Empty results in <systemitem class="username">root</systemitem>.
1452
Ping remote display every that many minutes.
1454
See <option>PingTimeout</option>.
1464
Wait for a Pong that many minutes.
1466
To discover when <emphasis>remote</emphasis> displays disappear, &kdm;
1467
regularly pings them.
1468
<option>PingInterval</option> specifies the time (in minutes) between the
1469
pings and <option>PingTimeout</option> specifies the maximum amount of
1470
time (in minutes) to wait for the terminal to respond to the request. If
1471
the terminal does not respond, the session is declared dead and terminated.
1473
If you frequently use X terminals which can become isolated from
1474
the managing host, you may wish to increase the timeout. The only worry
1475
is that sessions will continue to exist after the terminal has been
1476
accidentally disabled.
1478
Key: TerminateServer
1485
Restart instead of resetting the local &X-Server; after session exit.
1486
Use it if the server leaks memory etc.
1488
Whether &kdm; should restart the local &X-Server; after session exit instead
1489
of resetting it. Use this if the &X-Server; leaks memory or crashes the system
1499
Create X-authorizations for local displays.
1501
Controls whether &kdm; generates and uses authorization for
1502
<emphasis>local</emphasis> &X-Server; connections.
1503
For &XDMCP; displays the authorization requested by the display is used;
1504
foreign non-&XDMCP; displays do not support authorization at all.
1508
Default: DEF_AUTH_NAME
1513
Which X-authorization mechanisms should be used.
1515
If <option>Authorize</option> is true, use the authorization mechanisms
1516
listed herein. The MIT-MAGIC-COOKIE-1 authorization is always available;
1517
XDM-AUTHORIZATION-1, SUN-DES-1 and MIT-KERBEROS-5 might be available as well,
1518
depending on the build configuration.
1527
Need to reset the &X-Server; to make it read initial Xauth file.
1529
Some <emphasis>old</emphasis> &X-Server;s re-read the authorization file
1530
at &X-Server; reset time, instead of when checking the initial connection.
1531
As &kdm; generates the authorization information just before connecting to
1532
the display, an old &X-Server; would not get up-to-date authorization
1533
information. This option causes &kdm; to send SIGHUP to the &X-Server;
1534
after setting up the file, causing an additional &X-Server; reset to occur,
1535
during which time the new authorization information will be read.
1540
User: core(clientAuthFile)
1544
The name of this &X-Server;'s Xauth file.
1545
If empty, a random name in the AuthDir directory will be used.
1547
This file is used to communicate the authorization data from &kdm; to
1548
the &X-Server;, using the <option>-auth</option> &X-Server; command line
1549
option. It should be kept in a directory which is not world-writable
1550
as it could easily be removed, disabling the authorization mechanism in
1551
the &X-Server;. If not specified, a random name is generated from
1552
<option>AuthDir</option> and the name of the display.
1555
# XXX strictly speaking this is supposed to be a string list, i think.
1560
Update: cp_resources
1563
Specify a file with X-resources for the greeter, chooser and background.
1564
The KDE frontend does not use this file, so you do not need it unless you
1565
use another background generator than krootimage.
1567
This option specifies the name of the file to be loaded by
1568
<command>xrdb</command> as the resource database onto the root window
1569
of screen 0 of the display. KDE programs generally do not use
1570
X-resources, so this option is only needed if the <option>Setup</option>
1571
program needs some X-resources.
1575
Default: XBINDIR "/xrdb"
1580
The xrdb program to use to read the above specified recources.
1581
Subject to word splitting.
1583
The <command>xrdb</command> program to use to read the X-resources file
1584
specified in <option>Recources</option>.
1585
The command is subject to word splitting.
1591
# will be overwritten
1596
A program to run before the greeter is shown. Can be used to start an
1597
xconsole or an alternative background generator. Subject to word splitting.
1599
This string is subject to word splitting.
1600
It specifies a program which is run (as
1601
<systemitem class="username">root</systemitem>) before offering the
1602
greeter window. This may be used to change the appearance of the screen
1603
around the greeter window or to put up other windows (e.g., you may want
1604
to run <command>xconsole</command> here).
1605
Usually, a script named <command>Xsetup</command> is used here.
1606
See <xref linkend="kdmrc-xsetup"/>.
1612
# will be overwritten
1617
A program to run before a user session starts. Subject to word splitting.
1619
This string is subject to word splitting.
1620
It specifies a program which is run (as
1621
<systemitem class="username">root</systemitem>) after the user
1622
authentication process succeeds.
1623
Usually, a script named <command>Xstartup</command> is used here.
1624
See <xref linkend="kdmrc-xstartup"/>.
1630
# will be overwritten
1635
A program to run after a user session exits. Subject to word splitting.
1637
This string is subject to word splitting.
1638
It specifies a program which is run (as
1639
<systemitem class="username">root</systemitem>) after the session
1641
Usually, a script named <command>Xreset</command> is used here.
1642
See <xref linkend="kdmrc-xreset"/>.
1646
Default: XBINDIR "/xterm -ls -T"
1647
#Merge: xdm - incompatible!
1649
# will be overwritten
1653
The program which is run as the user which logs in. It is supposed to
1654
interpret the session argument (see SessionsDirs) and start an appropriate
1655
session according to it. Subject to word splitting.
1657
This string is subject to word splitting.
1658
It specifies the session program to be executed (as the user owning
1660
Usually, a script named <command>Xsession</command> is used here.
1661
See <xref linkend="kdmrc-xsession"/>.
1665
Default: XBINDIR "/xterm"
1670
The program to run if Session fails.
1672
If the <option>Session</option> program fails to execute, &kdm; will
1673
fall back to this program. This program is executed with no arguments,
1674
but executes using the same environment variables as the session would
1675
have had (see <xref linkend="kdmrc-xsession"/>).
1679
Default: DEF_USER_PATH
1685
The PATH for the Session program.
1687
The <envar>PATH</envar> environment variable for
1688
non-<systemitem class="username">root</systemitem> <option>Session</option>s.
1690
The default depends on the system &kdm; was built on.
1694
Default: DEF_SYSTEM_PATH
1700
The PATH for Setup, Startup and Reset, etc.
1702
The <envar>PATH</envar> environment variable for all programs but
1703
non-<systemitem class="username">root</systemitem>
1704
<option>Session</option>s. Note that it is good practice not to include
1705
<literal>.</literal> (the current directory) into this entry.
1707
The default depends on the system &kdm; was built on.
1713
Instance: #*/"/bin/bash"
1716
The default system shell.
1718
The <envar>SHELL</envar> environment variable for all programs but the
1719
<option>Session</option>.
1728
Where to put the user's &X-Server; authorization file if ~/.Xauthority
1731
When &kdm; is unable to write to the usual user authorization file
1732
($<envar>HOME</envar>/.Xauthority), it creates a unique file name in this
1733
directory and points the environment variable <envar>XAUTHORITY</envar>
1734
at the created file.
1736
Key: ForceUserAuthDir
1743
If true, <option>UserAuthDir</option> will be used unconditionally.
1752
Whether to automatically restart sessions after &X-Server; crashes.
1753
Note that enabling this makes circumventing screen lockers other than
1754
KDE's built-in one possible!
1756
If enabled, &kdm; will automatically restart a session after an &X-Server;
1757
crash (or if it is killed by Alt-Ctrl-BackSpace). Note that enabling this
1758
feature opens a security hole: a secured display lock can be circumvented
1759
(unless &kde;'s built-in screen locker is used).
1765
User: greeter(showRoot)
1771
If disabled, do not allow <systemitem class="username">root</systemitem>
1772
(and any other user with UID = 0) to log in directly.
1774
Key: AllowNullPasswd
1783
Allow to log in, when user has set an empty password?
1785
If disabled, only users that have passwords assigned can log in.
1789
None/SHUT_NONE: no <guilabel>Shutdown...</guilabel> menu entry is shown at all
1790
Root/SHUT_ROOT: the <systemitem class="username">root</systemitem> password must be entered to shut down
1791
All/SHUT_ALL: everybody can shut down the machine
1797
Merge: kdm:-Greeter/
1800
Who is allowed to shut down the system. This applies both to the
1801
greeter and to the command sockets.
1803
Key: AllowSdForceNow
1805
None: no forced shutdown is allowed at all
1806
Root: the <systemitem class="username">root</systemitem> password must be entered to shut down forcibly
1807
All: everybody can shut down the machine forcibly
1809
User: core(allowNuke)
1810
User: greeter(allowNuke)
1814
Who is allowed to abort active sessions when shutting down.
1818
Schedule: shut down after all active sessions exit (possibly at once)
1819
TryNow: shut down, if no active sessions are open; otherwise, do nothing
1820
ForceNow: shut down unconditionally
1822
User: core(defSdMode)
1823
User: greeter(defSdMode)
1824
Instance: #*/ForceNow
1827
The default choice for the shutdown condition/timing.
1831
Never/SHUT_NEVER: not at all
1832
Optional/SHUT_OPTION: as a button in the simple shutdown dialogs
1833
Always/SHUT_ALWAYS: instead of the simple shutdown dialogs
1836
Instance: #*/Optional
1839
How to offer shutdown scheduling options:
1848
Enable password-less logins on this display. <emphasis>Use with extreme care!</emphasis>
1853
PostProc: PnoPassUsers
1855
Instance: #:*/"fred,ethel"
1856
Merge: xdm(P_noPassUsers)
1858
The users that do not need to provide a password to log in. NEVER list root!
1859
"*" means all non-root users. @<group> means all users in that group.
1861
The users that do not need to provide a password to log in.
1862
Items which are prefixed with <literal>@</literal> represent all users in the
1863
user group named by that item.
1864
<literal>*</literal> means all users but
1865
<systemitem class="username">root</systemitem>
1866
(and any other user with UID = 0).
1867
<emphasis>Never</emphasis> list <systemitem class="username">root</systemitem>.
1869
Key: AutoLoginEnable
1876
Enable automatic login. <emphasis>Use with extreme care!</emphasis>
1881
User: core(autoAgain)
1886
If true, auto-login after logout. If false, auto-login is performed only
1887
when a display session starts up.
1892
User: core(autoDelay)
1896
The delay in seconds before automatic login kicks in.
1898
The delay in seconds before automatic login kicks in. This is also known as
1899
<quote>Timed Login</quote>.
1904
PostProc: PautoLoginX
1905
User: core(autoUser)
1907
Instance: #:0/"fred"
1908
Merge: xdm:autoUser(P_autoUser)
1911
The user to log in automatically. <emphasis>Never</emphasis> specify <systemitem class="username">root</systemitem>!
1916
PostProc: PautoLoginX
1917
User: core(autoPass)
1918
Instance: #:0/"secret!"
1919
Merge: xdm:autoPass(P_autoPass)
1922
The password for the user to log in automatically. This is <emphasis>not</emphasis> required
1923
unless the user is logged into a <acronym>NIS</acronym> or Kerberos domain. If you use this
1924
option, you should <command>chmod <option>600</option> <filename>kdmrc</filename></command> for obvious reasons.
1926
Key: AutoLoginLocked
1929
User: core(autoLock)
1933
Immediately lock the automatically started session. This works only with
1938
Default: *"/usr/share/xsessions,/var/lib/menu-xdg/xsessions,/usr/share/apps/kdm/sessions"
1941
Instance: #*/"/usr/share/xsessions,/var/lib/menu-xdg/xsessions,/usr/share/apps/kdm/sessions"
1942
Update: upd_sessionsdirs
1944
The directories containing session type definitions in .desktop format,
1945
ordered by falling priority.
1947
A list of directories containing session type definitions.
1948
Ordered by falling priority.
1949
# See <xref linkend="kdmrc-sessions"> for details.
1953
Default: ".xsession-errors"
1955
Instance: */".xsession-errors-%d"
1956
Instance: :0/".xsession-errors"
1957
Update: upd_userlogfile
1959
The file (relative to $HOME) to redirect the session output to. The
1960
following character pairs are replaced:
1961
- %d -> current display
1962
- %u -> current user
1963
- %r -> empty at first. See below.
1965
When the constructed filename cannot be used safely and the specification
1966
contains %<stuff>r, other names will be tried - this time expanding %<stuff>r
1967
to <stuff> followed by a random number.
1969
The file (relative to the user's home directory) to redirect the session
1972
The following character pairs are replaced by their value:
1975
<term><parameter>%d</parameter></term>
1976
<listitem><para>name of the current display</para></listitem>
1979
<term><parameter>%u</parameter></term>
1980
<listitem><para>login name of the current user</para></listitem>
1983
<term><parameter>%r</parameter></term>
1984
<listitem><para>empty at first. See below.</para></listitem>
1987
<term><parameter>%%</parameter></term>
1988
<listitem><para>a single <literal>%</literal></para></listitem>
1991
When the constructed filename cannot be used safely and the specification
1993
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>,
1994
other names will be tried - this time expanding
1995
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>
1996
to <replaceable>stuff</replaceable> followed by a random number.
1998
Key: ClientLogFallback
2000
Default: "/tmp/xerr-%u-%d%-r"
2002
Instance: #*/"/var/log/xsession-errors/%u-%d%-r"
2005
Fallback when <option>ClientLogFile</option> cannot be used. The same expansions are
2006
supported. <emphasis>Do not</emphasis> use relative paths here.
2014
Whether &kdm;'s built-in utmp/wtmp/lastlog registration should be used.
2016
Specify whether &kdm;'s built-in utmp/wtmp/lastlog registration should
2017
be used. If it is not, the tool <command>sessreg</command> should be used
2018
in the <option>Startup</option> and <option>Reset</option> scripts, or,
2019
alternatively, the pam_lastlog module should be used on
2020
<acronym>PAM</acronym>-enabled systems.
2025
This section class contains options concerning the configuration
2026
of the &kdm; frontend (greeter).
2032
Instance: #*/"Plastique"
2033
Update: upd_guistyle
2036
Specify the widget style for the greeter. Empty means to use the
2037
built-in default which currently is <literal>Oxygen-air</literal>.
2043
Instance: #*/"MidnightMeadow"
2046
Specify the widget color scheme for the greeter. Empty means to use the
2047
built-in default which currently is <literal>Oxygen-air</literal>.
2051
None/LOGO_NONE: nothing
2052
Logo/LOGO_LOGO: the image specified by <option>LogoPixmap</option>
2053
Clock/LOGO_CLOCK: a neat analog clock
2058
What should be shown in the greeter's logo are:
2060
What should be shown in the greeter righthand of the input lines (if
2061
<option>UserList</option> is disabled) or above them (if
2062
<option>UserList</option> is enabled):
2068
Instance: */KDMDATA "/pics/kdelogo.png"
2070
The image to show when LogoArea=Logo.
2072
The image to show in the greeter if <option>LogoArea</option> is
2073
<literal>Logo</literal>.
2079
Instance: #*/"30,40"
2081
The relative coordinates (X,Y in percent) of the center of the greeter.
2083
The relative coordinates (percentages of the screen size; X,Y) at which
2084
the center of the greeter is put. &kdm; aligns the greeter to the edges
2085
of the screen it would cross otherwise.
2094
The screen the greeter should be displayed on in multi-headed and Xinerama
2095
setups. The numbering starts with 0. For Xinerama, it corresponds to the
2096
listing order in the active ServerLayout section of XF86Config; -1 means
2097
to use the upper-left screen, -2 means to use the upper-right screen.
2101
Default: "Welcome to %s at %n"
2103
Instance: #*/"K Desktop Environment (%n)"
2105
The headline in the greeter. The following character pairs are replaced:
2106
- %d -> current display
2107
- %h -> host name, possibly with domain name
2108
- %n -> node name, most probably the host name without domain name
2109
- %s -> the operating system
2110
- %r -> the operating system's version
2111
- %m -> the machine (hardware) type
2114
The headline in the greeter. An empty greeting means none at all.
2116
The following character pairs are replaced by their value:
2119
<term><parameter>%d</parameter></term>
2120
<listitem><para>name of the current display</para></listitem>
2123
<term><parameter>%h</parameter></term>
2124
<listitem><para>local host name, possibly with the
2125
domain name</para></listitem>
2128
<term><parameter>%n</parameter></term>
2129
<listitem><para>local node name, most probably the host name without the
2130
domain name</para></listitem>
2133
<term><parameter>%s</parameter></term>
2134
<listitem><para>operating system</para></listitem>
2137
<term><parameter>%r</parameter></term>
2138
<listitem><para>operating system version</para></listitem>
2141
<term><parameter>%m</parameter></term>
2142
<listitem><para>machine (hardware) type</para></listitem>
2145
<term><parameter>%%</parameter></term>
2146
<listitem><para>a single <literal>%</literal></para></listitem>
2150
# This needs to come _in front_ of the font settings to be effective!
2158
Whether the fonts used in the greeter should be antialiased.
2162
Default: "Serif,20,-1,5,50,0,0,0,0,0"
2163
CDefault: "Serif 20pt bold"
2165
Instance: #*/"Serif,20,-1,5,50,0,0,0,0,0"
2168
The font for the greeter headline. The value is encoded.
2172
Default: "Sans Serif,10,-1,5,50,0,0,0,0,0"
2173
CDefault: "Sans Serif 10pt"
2174
User: greeter(normalFont):font
2175
Instance: #*/"Sans Serif,10,-1,5,50,0,0,0,0,0"
2178
The normal font used in the greeter. The value is encoded.
2182
Default: "Sans Serif,10,-1,5,75,0,0,0,0,0"
2183
CDefault: "Sans Serif 10pt bold"
2185
Instance: #*/"Sans Serif,10,-1,5,75,0,0,0,0,0"
2188
The font used for the <quote>Login Failed</quote> message. The value is encoded.
2194
Keep: do not change the state
2196
User: greeter(numLockStatus)
2200
What to do with the Num Lock modifier for the time the greeter is running:
2206
Instance: #*/"de_DE"
2207
Update: upd_language
2210
Language and locale to use in the greeter, encoded like $<envar>LANGUAGE</envar>.
2211
If empty, the settings from the environment are used.
2220
Enable autocompletion in the username line edit.
2228
Enable user list (names along with images) in the greeter.
2230
Show a user list with unix login names, real names, and images in the greeter.
2234
NotHidden/SHOW_ALL: all users except those listed in HiddenUsers
2235
Selected/SHOW_SEL: only the users listed in SelectedUsers
2238
Instance: #*/Selected
2239
Update: upd_showusers
2241
User selection for UserCompletion and UserList:
2243
This option controls which users will be shown in the user view
2244
(<option>UserList</option>) and/or offered for autocompletion
2245
(<option>UserCompletion</option>).
2246
If it is <literal>Selected</literal>, <option>SelectedUsers</option> contains
2247
the final list of users.
2248
If it is <literal>NotHidden</literal>, the initial user list contains all
2249
users found on the system. Users contained in <option>HiddenUsers</option> are
2250
removed from the list, just like all users with a UID greater than specified
2251
in <option>MaxShowUID</option> and users with a non-zero UID less than
2252
specified in <option>MinShowUID</option>.
2253
Items in <option>SelectedUsers</option> and <option>HiddenUsers</option>
2254
which are prefixed with <literal>@</literal> represent all users in the
2255
user group named by that item.
2256
Finally, the user list will be sorted alphabetically, if
2257
<option>SortUsers</option> is enabled.
2262
User: greeter-c(users)
2263
Instance: #*/"root,johndoe"
2266
For ShowUsers=Selected. @<group> means all users in that group.
2268
See <option>ShowUsers</option>.
2273
User: greeter-c(noUsers)
2275
# depends on {Min,Max}ShowUID
2276
Update: upd_hiddenusers/1
2279
For ShowUsers=NotHidden. @<group> means all users in that group.
2281
See <option>ShowUsers</option>.
2286
User: greeter(lowUserId)
2287
# will be overwritten
2289
Update: upd_minshowuid
2291
Special case of HiddenUsers: users with a non-zero UID less than this number
2292
will not be shown as well.
2294
See <option>ShowUsers</option>.
2299
User: greeter(highUserId)
2300
# will be overwritten
2302
Update: upd_maxshowuid
2304
Complement to MinShowUID: users with a UID greater than this number will
2305
not be shown as well.
2307
See <option>ShowUsers</option>.
2315
If false, the users are listed in the order they appear in /etc/passwd.
2316
If true, they are sorted alphabetically.
2318
See <option>ShowUsers</option>.
2322
AdminOnly/FACE_ADMIN_ONLY: from <filename><<option>FaceDir</option>>/$<envar>USER</envar>.face[.icon]</filename>
2323
PreferAdmin/FACE_PREFER_ADMIN: prefer <<option>FaceDir</option>>, fallback on $<envar>HOME</envar>
2324
PreferUser/FACE_PREFER_USER: ... and the other way round
2325
UserOnly/FACE_USER_ONLY: from the user's <filename>$<envar>HOME</envar>/.face[.icon]</filename>
2328
Instance: #*/PreferUser
2330
Specify, where the users' pictures should be taken from.
2332
If <option>UserList</option> is enabled, this specifies where &kdm; gets the
2337
The images can be in any format Qt recognizes, but the filename
2338
must match &kdm;'s expectations: <literal>.face.icon</literal> should be a
2339
48x48 icon, while <literal>.face</literal> should be a 300x300 image.
2340
Currently the big image is used only as a fallback and is scaled down,
2341
but in the future it might be displayed full-size in the logo area or a
2343
To be accessible to &kdm;, the images must be world readable and their
2344
parent directories must be world executable.
2348
Default: *KDMDATA "/faces"
2350
Instance: #*/"/usr/share/faces"
2353
The directory containing the user images if FaceSource is not UserOnly.
2355
See <option>FaceSource</option>.
2359
None/PRESEL_NONE: do not preselect any user
2360
Previous/PRESEL_PREV: the user which successfully logged in last time
2361
Default/PRESEL_DEFAULT: the user specified in the <option>DefaultUser</option> option
2363
User: greeter(preselUser)
2364
Instance: #*/Previous
2365
Instance: :*/Previous
2366
Instance: #:0/Default
2368
Specify, if/which user should be preselected for log in.
2370
Specify, if/which user should be preselected for log in:
2374
If <option>FocusPasswd</option> is enabled and a user was preselected,
2375
the cursor is placed in the password input field automatically.
2377
<note><para>Enabling user preselection can be considered a security hole,
2378
as it presents a valid login name to a potential attacker, so he
2379
<quote>only</quote> needs to guess the password. On the other hand,
2380
one could set <option>DefaultUser</option> to a fake login name.</para></note>
2387
Instance: #:0/"johndoe"
2389
The user to preselect if PreselectUser=Default.
2391
See <option>PreselectUser</option>.
2400
If this is true, the password input line is focused automatically if
2401
a user is preselected.
2403
See <option>PreselectUser</option>.
2410
Merge: kdm:EchoMode(P_EchoMode)
2413
If this is true, the entered password is echoed as bullets. Otherwise,
2414
no feedback is given at all.
2422
If true, krootimage will be automatically started by &kdm;; otherwise, the
2423
Setup script should be used to setup the background.
2425
If enabled, &kdm; will automatically start the <command>krootimage</command>
2426
program to set up the background; otherwise, the <option>Setup</option>
2427
program is responsible for the background.
2431
Default: *KDMCONF "/backgroundrc"
2436
The configuration file to be used by krootimage.
2438
The configuration file to be used by <command>krootimage</command>.
2439
It contains a section named <literal>[Desktop0]</literal> like
2440
<filename>kdesktoprc</filename> does. Its options are not described
2441
herein; guess their meanings or use the control center.
2445
Never/GRAB_NEVER: never grab
2446
IfNoAuth/GRAB_IFNOAUTH: grab if the display requires no X authorization
2447
Always/GRAB_ALWAYS: always grab
2449
User: greeter-c(grabInputPre)
2452
Whether to grab keyboard and mouse while the greeter is visible. Grabs
2453
may improve security, but make on-screen keyboards, etc. unusable.
2455
To improve security, the greeter may grab mouse and keyboard input so
2456
no other X clients can eavesdrop it. However, the X authorization
2457
mechanism will usually prevent malicious X clients from connecting
2458
in the first place. Consequently, enabling grabs for local displays
2459
is pointless and only marginally improves security for remote displays.
2461
<note><para>The mouse grab will make on-screen keyboards unusable.
2471
Hold the &X-Server; grabbed the whole time the greeter is visible. This
2472
may be more secure, but it will disable any background and other
2473
X-clients started from the Setup script.
2475
To improve security, the greeter grabs the &X-Server; and then the input
2476
when it starts up. This option specifies if the &X-Server; grab should be held
2477
for the duration of the name/password reading. When disabled, the &X-Server;
2478
is ungrabbed after the input grabs succeed; otherwise, the &X-Server; is
2479
grabbed until just before the session begins.
2481
<note><para>Enabling this option disables <option>UseBackground</option> and
2482
<option>Setup</option>.</para></note>
2491
How many seconds to wait for grab to succeed.
2493
This option specifies the maximum time &kdm; will wait for the grabs to
2494
succeed. A grab may fail if some other X-client has the &X-Server; or the
2495
keyboard grabbed, or possibly if the network latencies are very high. You
2496
should be cautious when raising the timeout, as a user can be spoofed by
2497
a look-alike window on the display. If a grab fails, &kdm; kills and
2498
restarts the &X-Server; (if possible) and the session.
2507
Warn, if display has no X-authorization (local auth cannot be created,
2508
&XDMCP; display wants no auth, or display is foreign from StaticServers).
2510
Warn, if a display has no X-authorization. This will be the case if
2513
the authorization file for a local &X-Server; could not be created,
2516
a remote display from &XDMCP; did not request any authorization or
2519
the display is a <quote>foreign</quote> display specified in
2520
<option>StaticServers</option>.
2527
LocalOnly/LOGIN_LOCAL_ONLY: only local login possible
2528
DefaultLocal/LOGIN_DEFAULT_LOCAL: start up in local mode, but allow switching to remote mode
2529
DefaultRemote/LOGIN_DEFAULT_REMOTE: ... and the other way round
2530
RemoteOnly/LOGIN_REMOTE_ONLY: only choice of remote host possible
2534
Instance: :*/DefaultLocal
2535
# from make_it_cool branch and SuSE 8.1
2536
Merge: kdm:EnableChooser(P_EnableChooser)
2539
Specify whether the greeter of local displays should start up in host chooser
2540
(remote) or login (local) mode and whether it is allowed to switch to the
2548
Instance: #:*/"*,host1,host2,host3.local,login.domain.com"
2550
A list of hosts to be automatically added to the remote login menu. The
2551
special name "*" means broadcast.
2553
A list of hosts to be automatically added to the remote login menu.
2554
The special name <literal>*</literal> means broadcast.
2555
Has no effect if <option>LoginMode</option> is <literal>LocalOnly</literal>.
2563
Random seed for forging saved session types, etc. of unknown users.
2564
This value should be random but constant across the login domain.
2566
Use this number as a random seed when forging saved session types, etc. of
2567
unknown users. This is used to avoid telling an attacker about existing users
2568
by reverse conclusion. This value should be random but constant across the
2572
If: defined(WITH_KDM_XCONSOLE)
2578
Enable &kdm;'s built-in xconsole. Note that this can be enabled for only
2579
one display at a time.
2581
Enable &kdm;'s built-in <command>xconsole</command>.
2582
Note that this can be enabled for only one display at a time.
2583
This option is available only if &kdm; was <command>configure</command>d
2584
with <option>--enable-kdm-xconsole</option>.
2587
If: defined(WITH_KDM_XCONSOLE)
2591
Instance: :0/"/dev/xconsole"
2593
The data source for &kdm;'s built-in xconsole.
2594
If empty, a console log redirection is requested from /dev/console.
2596
The data source for &kdm;'s built-in <command>xconsole</command>.
2597
If empty, a console log redirection is requested from
2598
<filename>/dev/console</filename>.
2599
Has no effect if <option>ShowLog</option> is disabled.
2607
Specify conversation plugins for the login dialog. Each plugin can be
2608
specified as a base name (which expands to $kde_modulesdir/kgreet_$base)
2609
or as a full pathname.
2611
Specify conversation plugins for the login dialog; the first in the list
2612
is selected initially.
2613
Each plugin can be specified as a base name (which expands to
2614
<filename>$<envar>kde_modulesdir</envar>/kgreet_<replaceable>base</replaceable></filename>)
2615
or as a full pathname.
2617
Conversation plugins are modules for the greeter which obtain authentication
2618
data from the user. Currently only the <literal>classic</literal> plugin is
2619
shipped with &kde;; it presents the well-known username and password form.
2621
Key: PluginsShutdown
2625
Instance: #*/"modern"
2628
Same as <option>PluginsLogin</option>, but for the shutdown dialog.
2634
Instance: #*/"SomeKey=randomvalue,Foo=bar"
2636
A list of options of the form Key=Value. The conversation plugins can query
2637
these settings; it is up to them what possible keys are.
2639
A list of options of the form
2640
<replaceable>Key</replaceable><literal>=</literal><replaceable>Value</replaceable>.
2641
The conversation plugins can query these settings; it is up to them what
2647
User: greeter(hasConsole)
2651
Show the <guilabel>Console Login</guilabel> action in the greeter (if <option>ServerTTY</option>/<option>ConsoleTTYs</option>
2661
Show the <guilabel>Restart X Server</guilabel>/<guilabel>Close Connection</guilabel> action in the greeter.
2667
Instance: */KDE_BINDIR "/preloadkde"
2668
Update: upd_preloader
2671
A program to run while the greeter is visible. It is supposed to preload
2672
as much as possible of the session that is going to be started (most
2682
Whether the greeter should be themed.
2688
Instance: */KDMDATA "/themes/horos"
2691
The theme to use for the greeter. Can point to either a directory or an XML
2694
Key: AllowThemeDebug
2701
Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging.