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_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(__linux__)
41
# define HALT_CMD "/sbin/shutdown -h -P now"
42
# define REBOOT_CMD "/sbin/shutdown -r now"
44
# define HALT_CMD "/sbin/shutdown -p now"
45
# define REBOOT_CMD "/sbin/shutdown -r now"
47
# define HALT_CMD "/usr/sbin/halt"
48
# define REBOOT_CMD "/usr/sbin/reboot"
50
# define HALT_CMD "/sbin/halt"
51
# define REBOOT_CMD "/sbin/reboot"
54
#if defined(BSD) || defined(__linux__)
55
# define DEF_USER_PATH KDM_DEF_USER_PATH
56
# define DEF_SYSTEM_PATH KDM_DEF_SYSTEM_PATH
58
# define DEF_USER_PATH KDM_DEF_USER_PATH ":/usr/ucb"
59
# define DEF_SYSTEM_PATH KDM_DEF_SYSTEM_PATH ":/etc:/usr/ucb"
62
#if 0 /*def HASXDMAUTH*/
63
# define DEF_AUTH_NAME "XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1"
65
# define DEF_AUTH_NAME "MIT-MAGIC-COOKIE-1"
69
#elif defined(__sun__)
70
# define DEF_SERVER_TTY "console"
72
# define DEF_SERVER_TTY "lft0"
74
# define DEF_SERVER_TTY ""
78
# define DEF_SERVER_CMD XBINDIR "/X -T -force"
80
# define DEF_SERVER_CMD XBINDIR "/X"
84
# The contents of this section are copied mostly verbatim to the
85
# default/example configuration file.
86
# Everything indented with a space is considered a comment for the output;
87
# it is prefixed with a hash mark but otherwise copied verbatim (except
88
# for lines consisting of a single underscore, which generate empty comment
90
# Section headers are "condensation seeds" for the Instance:s in the key
93
&kdm; master configuration file
95
Definition: the greeter is the login dialog, i.e., the part of &kdm;
98
You can configure every X-display individually.
99
Every display has a display name, which consists of a host name
100
(which is empty for local displays specified in {Static|Reserve}Servers),
101
a colon, and a display number. Additionally, a display belongs to a
102
display class (which can be ignored in most cases; the control center
103
does not support this feature at all).
104
Sections with display-specific settings have the formal syntax
105
"[X-" host [":" number [ "_" class ]] "-" sub-section "]"
106
You can use the "*" wildcard for host, number, and class. You may omit
107
trailing components; they are assumed to be "*" then.
108
The host part may be a domain specification like ".inf.tu-dresden.de".
109
It may also be "+", which means non-empty, i.e. remote displays only.
110
From which section a setting is actually taken is determined by these
112
- an exact match takes precedence over a partial match (for the host part),
113
which in turn takes precedence over a wildcard ("+" taking precedence
115
- precedence decreases from left to right for equally exact matches
116
Example: display name "myhost:0", class "dpy".
117
[X-myhost:0_dpy] precedes
118
[X-myhost:0_*] (same as [X-myhost:0]) precedes
119
[X-myhost:*_dpy] precedes
120
[X-myhost:*_*] (same as [X-myhost]) precedes
123
[X-*:0_*] (same as [X-*:0]) precedes
124
[X-*:*_*] (same as [X-*])
125
These sections do NOT match this display:
126
[X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
127
If a setting is not found in any matching section, the default is used.
129
Every comment applies to the following section or key. Note that all
130
comments will be lost if you change this file with the systemsettings frontend.
131
The defaults refer to &kdm;'s built-in values, not anything set in this file.
133
Special characters need to be backslash-escaped (leading and trailing
134
spaces (\\s), tab (\\t), linefeed (\\n), carriage return (\\r) and the
135
backslash itself (\\\\)).
136
In lists, fields are separated with commas without whitespace in between.
137
Some command strings are subject to simplified sh-style word splitting:
138
single quotes (') and double quotes (") have the usual meaning; the backslash
139
quotes everything (not only special characters). Note that the backslashes
140
need to be doubled because of the two levels of quoting.
148
Rough estimations about how many seconds &kdm; will spend at most on
149
- opening a connection to the X-server (OpenTime) if the attempt
150
- times out: OpenTimeout
151
- is refused: OpenRepeat * OpenDelay
152
- starting a local X-server (ServerTime):
153
ServerAttempts * (ServerTimeout + OpenDelay)
154
- starting a display:
155
- local display: ServerTime + OpenTime
156
- foreign display: StartAttempts * OpenTime
157
- &XDMCP; display: OpenTime (repeated indefinitely by client)
159
Core config for all displays
162
Greeter config for all displays
165
Core config for local displays
168
Greeter config for local displays
171
Core config for 1st local display
174
Greeter config for 1st local display
178
# The contents of this section are copied into kdmrc-ref.docbook.
179
# The macro %REF% is replaced with the accumulated Description:s from the key
182
<chapter id="kdm-files">
183
<title>The Files &kdm; Uses for Configuration</title>
185
<para>This chapter documents the files that control &kdm;'s behavior.
186
Some of this can be also controlled from the &systemsettings; module, but
190
<title>&kdmrc; - The &kdm; master configuration file</title>
192
<para>The basic format of the file is <quote>INI-like</quote>.
193
Options are key/value pairs, placed in sections.
194
Everything in the file is case sensitive.
195
Syntactic errors and unrecognized key/section identifiers cause &kdm; to
196
issue non-fatal error messages.</para>
198
<para>Lines beginning with <literal>#</literal> are comments; empty lines
199
are ignored as well.</para>
201
<para>Sections are denoted by
202
<literal>[</literal><replaceable>Name of Section</replaceable><literal>]</literal>.
205
<para>You can configure every X-display individually.</para>
206
<para>Every display has a display name, which consists of a host name
207
(which is empty for local displays specified in <option>StaticServers</option>
208
or <option>ReserveServers</option>), a colon, and a display number.
209
Additionally, a display belongs to a
210
display class (which can be ignored in most cases).</para>
212
<para>Sections with display-specific settings have the formal syntax
213
<literal>[X-</literal> <replaceable>host</replaceable> [ <literal>:</literal> <replaceable>number</replaceable> [ <literal>_</literal> <replaceable>class</replaceable> ] ] <literal>-</literal> <replaceable>sub-section</replaceable> <literal>]</literal>
215
<para>All sections with the same <replaceable>sub-section</replaceable>
216
make up a section class.</para>
218
<para>You can use the wildcard <literal>*</literal> (match any) for
219
<replaceable>host</replaceable>, <replaceable>number</replaceable>,
220
and <replaceable>class</replaceable>. You may omit trailing components;
221
they are assumed to be <literal>*</literal> then. The host part may be a
222
domain specification like <replaceable>.inf.tu-dresden.de</replaceable>
223
or the wildcard <literal>+</literal> (match non-empty).</para>
225
<para>From which section a setting is actually taken is determined by
230
<para>An exact match takes precedence over a partial match (for the
231
host part), which in turn takes precedence over a wildcard
232
(<literal>+</literal> taking precendence over <literal>*</literal>).</para>
236
<para>Precedence decreases from left to right for equally exact matches.</para>
242
Example: display name <quote>myhost.foo:0</quote>, class <quote>dpy</quote>
246
<para>[X-myhost.foo:0_dpy] precedes</para>
249
<para>[X-myhost.foo:0_*] (same as [X-myhost.foo:0]) precedes</para>
252
<para>[X-myhost.foo:*_dpy] precedes</para>
255
<para>[X-myhost.foo:*_*] (same as [X-myhost.foo]) precedes</para>
258
<para>[X-.foo:*_*] (same as [X-.foo]) precedes</para>
261
<para>[X-+:0_dpy] precedes</para>
264
<para>[X-*:0_dpy] precedes</para>
267
<para>[X-*:0_*] (same as [X-*:0]) precedes</para>
270
<para>[X-*:*_*] (same as [X-*]).</para>
273
<para>These sections do <emphasis>not</emphasis> match this display:</para>
274
<para>[X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]</para>
282
<para>Common sections are [X-*] (all displays), [X-:*] (all local displays)
283
and [X-:0] (the first local display).</para>
285
<para>The format for all keys is
286
<userinput><option><replaceable>key</replaceable></option> <literal>=</literal> <parameter>value</parameter></userinput>.
287
Keys are only valid in the section class they are defined for.
288
Some keys do not apply to particular displays, in which case they are ignored.
291
<para>If a setting is not found in any matching section, the default
294
<para>Special characters need to be backslash-escaped (leading and trailing
295
spaces (<literal>\s</literal>), tab (<literal>\t</literal>), linefeed
296
(<literal>\n</literal>), carriage return (<literal>\r</literal>) and the
297
backslash itself (<literal>\\</literal>)).</para>
298
<para>In lists, fields are separated with commas without whitespace in between.
300
<para>Some command strings are subject to simplified sh-style word splitting:
301
single quotes (<literal>'</literal>) and double quotes (<literal>"</literal>)
302
have the usual meaning; the backslash quotes everything (not only special
303
characters). Note that the backslashes need to be doubled because of the
304
two levels of quoting.</para>
306
<note><para>A pristine &kdmrc; is very thoroughly commented.
307
All comments will be lost if you change this file with the
308
&systemsettings; frontend.</para></note>
314
<sect1 id="kdmrc-xservers">
315
<title>Specifying permanent &X-Server;s</title>
317
<para>Each entry in the <option>StaticServers</option> list indicates a
318
display which should constantly be
319
managed and which is not using &XDMCP;. This method is typically used only for
320
local &X-Server;s that are started by &kdm;, but &kdm; can manage externally
321
started (<quote>foreign</quote>) &X-Server;s as well, may they run on the
322
local machine or rather remotely.</para>
324
<para>The formal syntax of a specification is
326
<userinput><replaceable>display name</replaceable> [<literal>_</literal><replaceable>display class</replaceable>]</userinput>
328
for all &X-Server;s. <quote>Foreign</quote> displays differ in having
329
a host name in the display name, may it be <literal>localhost</literal>.</para>
331
<para>The <replaceable>display name</replaceable> must be something that can
332
be passed in the <option>-display</option> option to an X program. This string
333
is used to generate the display-specific section names, so be careful to match
335
The display name of &XDMCP; displays is derived from the display's address by
336
reverse host name resolution. For configuration purposes, the
337
<literal>localhost</literal> prefix from locally running &XDMCP; displays is
338
<emphasis>not</emphasis> stripped to make them distinguishable from local
339
&X-Server;s started by &kdm;.</para>
341
<para>The <replaceable>display class</replaceable> portion is also used in the
342
display-specific sections. This is useful if you have a large collection of
343
similar displays (such as a corral of X terminals) and would like to set
344
options for groups of them.
345
When using &XDMCP;, the display is required to specify the display class,
346
so the manual for your particular X terminal should document the display
347
class string for your device. If it does not, you can run &kdm; in debug
348
mode and <command>grep</command> the log for <quote>class</quote>.</para>
350
<para>The displays specified in <option>ReserveServers</option> will not be
351
started when &kdm; starts up, but when it is explicitly requested via
353
If reserve displays are specified, the &kde; menu will have a
354
<guilabel>Start New Session</guilabel> item near the bottom; use that to
355
activate a reserve display with a new login session. The monitor will switch
356
to the new display, and you will have a minute to login. If there are no more
357
reserve displays available, the menu item will be disabled.</para>
359
<para>When &kdm; starts a session, it sets up authorization data for the
360
&X-Server;. For local servers, &kdm; passes
361
<command><option>-auth</option> <filename><replaceable>filename</replaceable></filename></command>
362
on the &X-Server;'s command line to point it at its authorization data.
363
For &XDMCP; displays, &kdm; passes the authorization data to the &X-Server;
364
via the <quote>Accept</quote> &XDMCP; message.</para>
368
<sect1 id="kdmrc-xaccess">
369
<title>&XDMCP; access control</title>
371
<para>The file specified by the <option>AccessFile</option> option provides
372
information which &kdm; uses to control access from displays requesting service
374
The file contains four types of entries: entries which control the response
375
to <quote>Direct</quote> and <quote>Broadcast</quote> queries, entries which
376
control the response to <quote>Indirect</quote> queries, macro definitions,
377
and entries which control on which network interfaces &kdm; listens for &XDMCP;
379
Blank lines are ignored, <literal>#</literal> is treated as a comment
380
delimiter causing the rest of that line to be ignored, and <literal>\</literal>
381
causes an immediately following newline to be ignored, allowing host lists
382
to span multiple lines.
385
<para>The format of the <quote>Direct</quote> entries is simple, either a
386
host name or a pattern, which is compared against the host name of the display
387
device. Alternatively, a macro may be used to make the entry match everything
388
the macro expands to.
389
Patterns are distinguished from host names by the inclusion of one or more
390
meta characters; <literal>*</literal> matches any sequence of 0 or more
391
characters, and <literal>?</literal> matches any single character.
392
If the entry is a host name, all comparisons are done using network addresses,
393
so any name which converts to the correct network address may be used. Note
394
that only the first network address returned for a host name is used.
395
For patterns, only canonical host names are used in the comparison, so ensure
396
that you do not attempt to match aliases.
397
Host names from &XDMCP; queries always contain the local domain name
398
even if the reverse lookup returns a short name, so you can use
399
patterns for the local domain.
400
Preceding the entry with a <literal>!</literal> character causes hosts which
401
match that entry to be excluded. Preceding it with an <literal>=</literal> has
402
no effect but is required when specifying a macro to distinguish the entry
403
from a macro definition.
404
To only respond to <quote>Direct</quote> queries for a host or pattern,
405
it can be followed by the optional <literal>NOBROADCAST</literal> keyword.
406
This can be used to prevent a &kdm; server from appearing on menus based on
407
<quote>Broadcast</quote> queries.</para>
409
<para>An <quote>Indirect</quote> entry also contains a host name, pattern or
410
macro, but follows it with a list of host names or macros to which the queries
411
should be forwarded. <quote>Indirect</quote> entries can be excluding as well,
412
in which case a (valid) dummy host name must be supplied to make the entry
413
distinguishable from a <quote>Direct</quote> entry.
414
If compiled with IPv6 support, multicast address groups may also be included
415
in the list of addresses the queries are forwarded to.
416
<!-- Not actually implemented!
417
Multicast addresses may be followed by an optional <literal>/</literal>
418
character and hop count. If no hop count is specified, the multicast hop count
419
defaults to 1, keeping the packet on the local network. For IPv4 multicasting,
420
the hop count is used as the TTL.
422
If the indirect host list contains the keyword <literal>CHOOSER</literal>,
423
<quote>Indirect</quote> queries are not forwarded, but instead a host chooser
424
dialog is displayed by &kdm;. The chooser will send a <quote>Direct</quote>
425
query to each of the remaining host names in the list and offer a menu of
426
all the hosts that respond. The host list may contain the keyword
427
<literal>BROADCAST</literal>, to make the chooser send a
428
<quote>Broadcast</quote> query as well; note that on some operating systems,
429
UDP packets cannot be broadcast, so this feature will not work.
432
<para>When checking access for a particular display host, each entry is scanned
433
in turn and the first matching entry determines the response.
434
<quote>Direct</quote> and <quote>Broadcast</quote> entries are ignored when
435
scanning for an <quote>Indirect</quote> entry and vice-versa.</para>
437
<para>A macro definition contains a macro name and a list of host names and
438
other macros that the macro expands to. To distinguish macros from hostnames,
439
macro names start with a <literal>%</literal> character.</para>
441
<para>The last entry type is the <literal>LISTEN</literal> directive.
444
<userinput> <literal>LISTEN</literal> [<replaceable>interface</replaceable> [<replaceable>multicast list</replaceable>]]</userinput>
446
If one or more <literal>LISTEN</literal> lines are specified, &kdm; listens
447
for &XDMCP; requests only on the specified interfaces.
448
<replaceable>interface</replaceable> may be a hostname or IP address
449
representing a network interface on this machine, or the wildcard
450
<literal>*</literal> to represent all available network interfaces.
451
If multicast group addresses are listed on a <literal>LISTEN</literal> line,
452
&kdm; joins the multicast groups on the given interface. For IPv6 multicasts,
453
the IANA has assigned ff0<replaceable>X</replaceable>:0:0:0:0:0:0:12b as the
454
permanently assigned range of multicast addresses for &XDMCP;. The
455
<replaceable>X</replaceable> in the prefix may be replaced by any valid scope
456
identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and
457
so on (see IETF RFC 2373 or its replacement for further details and scope
458
definitions). &kdm; defaults to listening on the Link-Local scope address
459
ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior.
460
If no <literal>LISTEN</literal> lines are given, &kdm; listens on all
461
interfaces and joins the default &XDMCP; IPv6 multicast group (when
462
compiled with IPv6 support).
463
To disable listening for &XDMCP; requests altogether, a
464
<literal>LISTEN</literal> line with no addresses may be specified, but using
465
the <literal>[Xdmcp]</literal> <option>Enable</option> option is preferred.
470
<sect1 id="kdm-scripts">
471
<title>Supplementary programs</title>
474
The following programs are run by &kdm; at various stages of a session.
475
They typically are shell scripts.
479
The Setup, Startup and Reset programs are run as
480
<systemitem class="username">root</systemitem>, so they should be careful
482
Their first argument is <literal>auto</literal> if the session results
483
from an automatic login; otherwise, no arguments are passed to them.
486
<sect2 id="kdmrc-xsetup">
487
<title>Setup program</title>
490
The <filename>Xsetup</filename> program is run after the &X-Server; is
491
started or reset, but before the greeter is offered.
492
This is the place to change the root background (if
493
<option>UseBackground</option> is disabled) or bring up other windows that
494
should appear on the screen along with the greeter. Resources for this
495
program can be put into the file named by <option>Resources</option>.
499
In addition to any specified by <option>ExportList</option>,
500
the following environment variables are passed:</para>
504
<listitem><para>the associated display name</para></listitem>
508
<listitem><para>the value of <option>SystemPath</option></para></listitem>
512
<listitem><para>the value of <option>SystemShell</option></para></listitem>
515
<term>XAUTHORITY</term>
516
<listitem><para>may be set to an authority file</para></listitem>
519
<term>DM_CONTROL</term>
520
<listitem><para>the value of <option>FifoDir</option></para></listitem>
524
<note><para><option>GrabInput</option> can make &kdm; grab the
525
keyboard and mouse, making any other windows unable to receive input.
526
If <option>GrabServer</option> is set, <filename>Xsetup</filename>
527
will not be able to connect to the display at all.</para></note>
531
<sect2 id="kdmrc-xstartup">
532
<title>Startup program</title>
534
<para>The <filename>Xstartup</filename> program is run as
535
<systemitem class="username">root</systemitem> when the user logs in.
536
This is the place to put commands which add entries to
537
<filename>utmp</filename> (the <command>sessreg</command> program
538
may be useful here), mount users' home directories from file servers,
539
or abort the session if some requirements are not met (but note that on
540
modern systems, many of these tasks are already taken care of by
541
<acronym>PAM</acronym> modules).</para>
543
<para>In addition to any specified by <option>ExportList</option>,
544
the following environment variables are passed:</para>
548
<listitem><para>the associated display name</para></listitem>
552
<listitem><para>the initial working directory of the user</para></listitem>
556
<listitem><para>the username</para></listitem>
560
<listitem><para>the username</para></listitem>
564
<listitem><para>the value of <option>SystemPath</option></para></listitem>
568
<listitem><para>the value of <option>SystemShell</option></para></listitem>
571
<term>XAUTHORITY</term>
572
<listitem><para>may be set to an authority file</para></listitem>
575
<term>DM_CONTROL</term>
576
<listitem><para>the value of <option>FifoDir</option></para></listitem>
580
<para>&kdm; waits until this program exits before starting the user session.
581
If the exit value of this program is non-zero, &kdm; discontinues the session
582
and starts another authentication cycle.</para>
586
<sect2 id="kdmrc-xsession">
587
<title>Session program</title>
589
<para>The <filename>Xsession</filename> program is the command which is run
590
as the user's session. It is run with the permissions of the authorized user.
591
One of the keywords <literal>failsafe</literal>, <literal>default</literal>
592
or <literal>custom</literal>, or a string to <command>eval</command> by a
593
Bourne-compatible shell is passed as the first argument.</para>
595
<para>In addition to any specified by <option>ExportList</option>,
596
the following environment variables are passed:</para>
600
<listitem><para>the associated display name</para></listitem>
604
<listitem><para>the initial working directory of the user</para></listitem>
608
<listitem><para>the username</para></listitem>
612
<listitem><para>the username</para></listitem>
616
<listitem><para>the value of <option>UserPath</option>
617
(or <option>SystemPath</option> for
618
<systemitem class="username">root</systemitem> user sessions)</para>
623
<listitem><para>the user's default shell</para></listitem>
626
<term>XAUTHORITY</term>
627
<listitem><para>may be set to a non-standard authority file</para></listitem>
630
<term>KRBTKFILE</term>
631
<listitem><para>may be set to a Kerberos4 credentials cache name</para>
635
<term>KRB5CCNAME</term>
636
<listitem><para>may be set to a Kerberos5 credentials cache name</para>
640
<term>DM_CONTROL</term>
641
<listitem><para>the value of <option>FifoDir</option></para></listitem>
644
<term>XDM_MANAGED</term>
645
<listitem><para>will contain a comma-separated list of parameters the
646
session might find interesting, like which conversation
647
plugin was used for the login</para>
651
<term>DESKTOP_SESSION</term>
652
<listitem><para>the name of the session the user has chosen to run</para>
659
<sect2 id="kdmrc-xreset">
660
<title>Reset program</title>
662
<para>Symmetrical with <filename>Xstartup</filename>, the
663
<filename>Xreset</filename> program is run after the user session has
664
terminated. Run as <systemitem class="username">root</systemitem>, it should
665
contain commands that undo the effects of commands in
666
<filename>Xstartup</filename>, removing entries from <filename>utmp</filename>
667
or unmounting directories from file servers.</para>
669
<para>The environment variables that were passed to
670
<filename>Xstartup</filename> are also passed to <filename>Xreset</filename>.
681
# The rest of this file are section and key definitions for the options.
682
# The order of the keywords is fixed and everything is case sensitive.
683
# A keyword may expect supplementary data in the form of space-indented
684
# lines following it. Definitions are delimited by empty lines.
686
# Section definition:
688
# Section name. Section classes start with a dash.
690
# C preprocessor conditional for supporting this section.
691
# If it evaluates to false, all keys in this section are disabled as well.
693
# A docbook description of this section is expected in the next lines.
694
# The contents are automatically enclosed in <para></para>.
696
# Option key definition:
700
# C preprocessor conditional for supporting this option.
701
# Type: (int|bool|enum|group|string|path|list)
702
# The option's data type.
703
# If the type is enum, the element definitions follow in the next lines:
704
# <term>[/<c #define>]: <docbook style description>
706
# Default value. string, path and list are copied verbatim and therefore
707
# must be already quoted appropriately. The other types are auto-quoted.
708
# If the default value is prefixed with a "*", a c #define def_<Key> is
710
# The default is automatically appended to the kdmrc comment and the
711
# documentation entry.
712
# CDefault: <verbose default>
713
# Append this instead of the real default to the two docs. The quoting
714
# rules are the same as for Default.
716
# If specified, the default value will not be appended to the documentation
717
# entry. The Description should mention the default then. Use this when
718
# the default is system-dependent.
719
# PostProc: <function>
720
# A function to postprocess the read config value before using it.
721
# User: (dummy|(core|greeter|greeter-c|dep|config)[(<variable>)][:font])
722
# These entries specify which parts of kdm need the option in question:
723
# dummy: no user; entry is there only for syntactical correctness.
724
# dep: this option is an internal dependency for another option.
725
# config: this option configures the config reader itself.
726
# core: the kdm backend needs this option.
727
# greeter-c: the kdm frontend needs this option as a C data type.
728
# greeter: the kdm frontend needs this option as a C++/Qt data type.
729
# If a :font tag is appended, a string entry is converted to a QFont.
730
# If no variable name is specified, it will be derived from the Key by
731
# un-capitalizing it.
732
# Instance: (-|[#][<display spec>/](!|<value>))
733
# These entries specify option instances for the default/example kdmrc.
734
# A "-" entry is a dummy for syntactical correctness.
735
# A prefixing hash mark will be copied to kdmrc.
736
# For options in a section class a display must be specified.
737
# For bool options "!" can be used as the value to specify the negation
739
# Update: <function>[/<number>]
740
# Call this function on each occurence of this option in genkdmconf.
741
# Options with higher numbers (default is 0) will be processed later.
742
# Merge: xdm[:<resource>][(<function>)]
743
# Merge: kdm:[<section>/][<key>][(<function>)]
744
# Specify config options to merge from xdm and older kdm versions.
745
# Kdm options from the current version are automatically merged.
746
# When merging an xdm resource and no resource name is specified, it is
747
# derived from the Key by un-capitalizing it.
748
# When merging a kdm option, at least one of <section> and <key> must
749
# be given; an unspecified entity defaults to the current Section/Key.
750
# <section> may be a dash-prefixed section class.
751
# A function to postprocess the read value can be specified.
753
# A kdmrc comment for this option is expected in the next lines.
754
# If "-" is given to Comment, no comment is generated at all.
755
# If "&" is given, the comment is derived from the Description below by
756
# applying some simple docbook interpretation to it. Note that the
757
# Description must be preformatted in this case. Use
758
# sed -ne 's/^\(.\{79,\}\)$/\1/p' < kdmrc
759
# after running "make install" to see whether all lines still fit.
760
# If Type is enum, a list of the previously defined element/description
761
# pairs is appended; the descriptions undergo docbook interpretation.
762
# Finally, a sentence with the Default (or CDefault, if given) is appended.
764
# A docbook description of this option is expected in the next lines.
765
# The contents are automatically enclosed in <para></para>.
766
# If "-" is given to Description, no comment is generated at all.
767
# If "!" is given, enums are not treated specially; otherwise, the macro
768
# %ENUM% is replaced with a list of the defined element/description pairs,
769
# or - if the macro is not present - the list is appended to the
771
# Finally, a sentence with the Default (or CDefault, if given) is appended,
772
# unless "DDefault: -" was specified.
773
# Each option entry generates an anchor named option-<lowercase(Key)>;
774
# it can be referenced in the main documentation.
775
# Do not forget to run "make ref" in kdebase/doc/kdm after changing
780
This section contains global options that do not fit into any specific section.
787
# will be overwritten
790
This option exists solely for the purpose of a clean automatic upgrade.
791
Do not even think about changing it!
793
This option exists solely for the purpose of clean automatic upgrades.
794
<emphasis>Do not</emphasis> change it, you may interfere with future
795
upgrades and this could result in &kdm; failing to run.
800
Default: KDM_PAM_SERVICE
808
# note: this can miss Xservers from kdm for kde 2.2 because of stupid default.
809
Source: kdm:General/Xservers
819
List of permanent displays. Displays with a hostname are foreign. A display
820
class may be specified separated by an underscore.
822
List of displays (&X-Server;s) permanently managed by &kdm;. Displays with a
823
hostname are foreign displays which are expected to be already running,
824
the others are local displays for which &kdm; starts an own &X-Server;;
825
see <option>ServerCmd</option>. Each display may belong to a display class;
826
append it to the display name separated by an underscore.
827
See <xref linkend="kdmrc-xservers"/> for the details.
836
List of on-demand displays. See <option>StaticServers</option> for syntax.
839
If: defined(HAVE_VTS)
843
Instance: #"7,8,-9,-10"
844
Update: upd_servervts
846
VTs to allocate to &X-Server;s. A negative number means that the VT will be
847
used only if it is free. If all VTs in this list are used up, the next free
848
one greater than the last one in this list will be allocated.
850
List of Virtual Terminals to allocate to &X-Server;s. For negative numbers the
851
absolute value is used, and the <acronym>VT</acronym> will be allocated only
852
if the kernel says it is free. If &kdm; exhausts this list, it will allocate
853
free <acronym>VT</acronym>s greater than the absolute value of the last entry
855
Currently Linux only.
858
If: defined(HAVE_VTS)
862
Instance: #"tty1,tty2,tty3,tty4,tty5,tty6"
863
Update: upd_consolettys
865
TTYs (without /dev/) to monitor for activity while in console mode.
867
This option is for operating systems (<acronym>OS</acronym>s) with support
868
for virtual terminals (<acronym>VT</acronym>s), by both &kdm; and the
869
<acronym>OS</acronym>s itself.
870
Currently this applies only to Linux.
872
When &kdm; switches to console mode, it starts monitoring all
873
<acronym>TTY</acronym> lines listed here (without the leading
874
<literal>/dev/</literal>).
875
If none of them is active for some time, &kdm; switches back to the X login.
881
Instance: "/var/run/kdm.pid"
884
Where &kdm; should store its PID (do not store if empty).
886
The filename specified will be created to contain an ASCII representation
887
of the process ID of the main &kdm; process; the PID will not be stored
888
if the filename is empty.
897
Whether &kdm; should lock the PID file to prevent having multiple &kdm;
898
instances running at once. Do not change unless you are brave.
900
This option controls whether &kdm; uses file locking to keep multiple
901
display managers from running onto each other.
906
Default: "/var/run/xauth"
909
Merge: xdm(P_authDir)
911
Where to store authorization files.
913
This names a directory under which &kdm; stores &X-Server; authorization
914
files while initializing the session. &kdm; expects the system to clean up
915
this directory from stale files on reboot.
917
The authorization file to be used for a particular display can be
918
specified with the <option>AuthFile</option> option in [X-*-Core].
927
Whether &kdm; should automatically re-read configuration files, if it
928
finds them having changed.
930
This boolean controls whether &kdm; automatically re-reads its
931
configuration files if it finds them to have changed.
937
Instance: #"LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR"
941
Additional environment variables &kdm; should pass on to all programs it runs.
942
<envar>LD_LIBRARY_PATH</envar> and <envar>XCURSOR_THEME</envar> are good candidates;
943
otherwise, it should not be necessary very often.
946
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
953
A file &kdm; should read entropy from.
955
If the system has no native entropy source like /dev/urandom (see
956
<option>RandomDevice</option>) and no entropy daemon like EGD (see
957
<option>PrngdSocket</option> and <option>PrngdPort</option>) is running,
958
&kdm; will fall back to its own pseudo-random number generator
959
that will, among other things, successively checksum parts of this file
960
(which, obviously, should change frequently).
962
This option does not exist on Linux and various BSDs.
965
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
970
Instance: #"/tmp/entropy"
973
A UNIX domain socket &kdm; should read entropy from.
975
If the system has no native entropy source like /dev/urandom (see
976
<option>RandomDevice</option>), read random data from a Pseudo-Random
977
Number Generator Daemon,
978
like EGD (http://egd.sourceforge.net) via this UNIX domain socket.
980
This option does not exist on Linux and various BSDs.
983
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
990
A TCP socket on localhost &kdm; should read entropy from.
992
Same as <option>PrngdSocket</option>, only use a TCP socket on localhost.
995
If: !defined(ARC4_RANDOM)
999
Instance: #"/dev/altrandom"
1002
A character device &kdm; should read entropy from.
1003
Empty means use the system's preferred entropy device.
1005
The path to a character device which &kdm; should read random data from.
1006
Empty means to use the system's preferred entropy device if there is one.
1008
This option does not exist on OpenBSD, as it uses the arc4_random
1013
Default: *"/var/run/xdmctl"
1018
Where the command sockets should be created; make it empty to disable
1021
The directory in which the command sockets should
1022
be created; make it empty to disable them.
1023
# See <xref linkend="kdm-fifos"/> for the details.
1032
The group to which the global command socket should belong;
1033
can be either a name or a numerical ID.
1040
Update: upd_greeteruid
1043
The user the greeter should run as. Empty results in <systemitem class="username">root</systemitem>.
1044
Consider the impact on <option>LogSource</option> when setting it.
1048
Default: *"/var/lib/kdm"
1051
Update: upd_datadir/1
1053
The directory in which &kdm; should store persistent working data.
1055
The directory in which &kdm; should store persistent working data; such data
1056
is, for example, the previous user that logged in on a particular display.
1062
Instance: #"/nfs-shared/var/dmrcs"
1065
The directory in which &kdm; should store users' <filename>.dmrc</filename> files. This is only
1066
needed if the home directories are not readable before actually logging in
1073
This section contains options that control &kdm;'s handling of
1075
# See <xref linkend="xdmcp-with-kdm"/> to find out what &XDMCP; is.
1080
User: dep(xdmcpEnable)
1084
Whether &kdm; should listen to incoming &XDMCP; requests.
1089
PostProc: PrequestPort
1090
User: core(requestPort)
1092
Merge: xdm:requestPort(P_requestPort)
1094
The UDP port on which &kdm; should listen for &XDMCP; requests. Do not change.
1096
This indicates the UDP port number which &kdm; uses to listen for incoming
1097
&XDMCP; requests. Unless you need to debug the system, leave this with its
1104
Instance: #KDMCONF "/kdmkeys"
1108
File with the private keys of X-terminals. Required for XDM authentication.
1110
XDM-AUTHENTICATION-1 style &XDMCP; authentication requires a private
1111
key to be shared between &kdm; and the terminal. This option specifies
1112
the file containing those values. Each entry in the file consists of a
1113
display name and the shared key.
1118
Default: *KDMCONF "/Xaccess"
1119
User: config(Xaccess)
1122
Merge: xdm:accessFile
1124
&XDMCP; access control file in the usual XDM-Xaccess format.
1126
To prevent unauthorized &XDMCP; service and to allow forwarding of &XDMCP;
1127
IndirectQuery requests, this file contains a database of hostnames which
1128
are either allowed direct access to this machine, or have a list of hosts
1129
to which queries should be forwarded to. The format of this file is
1130
described in <xref linkend="kdmrc-xaccess"/>.
1139
Number of seconds to wait for display to respond after the user has
1140
selected a host from the chooser.
1142
Number of seconds to wait for the display to respond after the user has
1143
selected a host from the chooser. If the display sends an &XDMCP;
1144
IndirectQuery within this time, the request is forwarded to the chosen
1145
host; otherwise, it is assumed to be from a new session and the chooser
1148
Key: RemoveDomainname
1155
Strip domain name from remote display names if it is equal to the local
1158
When computing the display name for &XDMCP; clients, the name resolver will
1159
typically create a fully qualified host name for the terminal. As this is
1160
sometimes confusing, &kdm; will remove the domain name portion of the host
1161
name if it is the same as the domain name of the local host when this option
1171
Use the numeric IP address of the incoming connection on multihomed hosts
1172
instead of the host name.
1174
Use the numeric IP address of the incoming connection on multihomed hosts
1175
instead of the host name. This is to avoid trying to connect on the wrong
1176
interface which might be down at this time.
1182
# will be overwritten
1188
The program which is invoked to dynamically generate replies to &XDMCP;
1189
DirectQuery or BroadcastQuery requests.
1190
If empty, no program is invoked and "Willing to manage" is sent.
1192
This specifies a program which is run (as
1193
<systemitem class="username">root</systemitem>) when an &XDMCP;
1194
DirectQuery or BroadcastQuery is received and this host is configured
1195
to offer &XDMCP; display management. The output of this program may be
1196
displayed in a chooser window. If no program is specified, the string
1197
<quote>Willing to manage</quote> is sent.
1202
This section contains global options concerning system shutdown.
1211
The command (subject to word splitting) to run to halt the system.
1213
The command (subject to word splitting) to run to halt/poweroff the system.
1215
The default is something reasonable for the system on which &kdm; was built, like
1216
<command>/sbin/shutdown <option>-h</option> <parameter>now</parameter></command>.
1222
User: core(cmdReboot)
1225
The command (subject to word splitting) to run to reboot the system.
1227
The command (subject to word splitting) to run to reboot the system.
1229
The default is something reasonable for the system &kdm; on which was built, like
1230
<command>/sbin/shutdown <option>-r</option> <parameter>now</parameter></command>.
1235
User: core(fifoAllowShutdown)
1239
Whether it is allowed to shut down the system via the global command socket.
1244
User: core(fifoAllowNuke)
1247
Whether it is allowed to abort active sessions when shutting down the
1248
system via the global command socket.
1250
Whether it is allowed to abort active sessions when shutting down the
1251
system via the global command socket.
1253
This will have no effect unless <option>AllowFifo</option> is enabled.
1257
None/BO_NONE: no boot manager
1258
Grub/BO_GRUB: Grub boot manager
1259
Grub2/BO_GRUB2: Grub2 boot manager
1260
Lilo/BO_LILO: Lilo boot manager (Linux on i386 & x86-64 only)
1265
Merge: kdm:UseLilo(P_UseLilo)
1268
The boot manager &kdm; should use for offering boot options in the
1274
This section class contains options concerning the configuration
1275
of the &kdm; backend (core).
1282
Merge: xdm(P_openDelay)
1284
How long to wait before retrying to connect a display.
1286
See <option>OpenRepeat</option>.
1295
How long to wait before timing out a display connection attempt.
1297
See <option>OpenRepeat</option>.
1306
How many connection attempts to make during a start attempt. Note that
1307
a timeout aborts the entire start attempt.
1309
These options control the behavior of &kdm; when attempting to open a
1310
connection to an &X-Server;. <option>OpenDelay</option> is the length
1311
of the pause (in seconds) between successive attempts,
1312
<option>OpenRepeat</option> is the number of attempts to make and
1313
<option>OpenTimeout</option> is the amount of time to spend on a
1314
connection attempt. After <option>OpenRepeat</option> attempts have been
1315
made, or if <option>OpenTimeout</option> seconds elapse in any particular
1316
connection attempt, the start attempt is considered failed.
1325
Try at most that many times to start a display. If this fails, the display
1328
How many times &kdm; should attempt to start a <literal>foreign</literal>
1329
display listed in <option>StaticServers</option> before giving up
1331
Local displays are attempted only once, and &XDMCP; displays are retried
1332
indefinitely by the client (unless the option <option>-once</option>
1333
was given to the &X-Server;).
1342
How often to try to run the &X-Server;. Running includes executing it and
1343
waiting for it to come up.
1345
How many times &kdm; should attempt to start up a local &X-Server;.
1346
Starting up includes executing it and waiting for it to come up.
1354
How long to wait for a local &X-Server; to come up.
1356
How many seconds &kdm; should wait for a local &X-Server; to come up.
1360
Default: DEF_SERVER_CMD
1363
Instance: :*/DEF_SERVER_CMD
1364
Update: upd_servercmd
1366
The command line to start the &X-Server;, without display number and VT spec.
1367
This string is subject to word splitting.
1369
The command line to start the &X-Server;, without display number and VT spec.
1370
Note that with some &X-Server;s (in particular, OpenSolaris') it is necessary
1371
to put most additional arguments into <option>ServerArgsLocal</option> and
1372
<option>ServerArgsRemote</option> even if they are the same for both.
1373
This string is subject to word splitting.
1375
The default is something reasonable for the system on which &kdm; was built,
1376
like <command>/usr/X11R6/bin/X</command>.
1378
Key: ServerArgsLocal
1382
Instance: :*/"-nolisten tcp"
1385
Additional arguments for the &X-Server;s for local sessions.
1386
This string is subject to word splitting.
1388
Key: ServerArgsRemote
1395
Additional arguments for the &X-Server;s for remote sessions.
1396
This string is subject to word splitting.
1399
If: defined(HAVE_VTS)
1402
User: core(reqSrvVT)
1405
The VT the &X-Server; should run on; auto-assign if zero, don't assign if -1.
1406
Better leave it zero and use ServerVTs.
1408
The VT the &X-Server; should run on.
1409
<option>ServerVTs</option> should be used instead of this option.
1410
Leave it zero to let &kdm; assign a <acronym>VT</acronym> automatically.
1411
Set it to <literal>-1</literal> to avoid assigning a <acronym>VT</acronym>
1412
alltogether - this is required for setups with multiple physical consoles.
1413
Currently Linux only.
1416
If: !defined(HAVE_VTS)
1420
Instance: :0/DEF_SERVER_TTY
1422
The TTY line (without /dev/) the &X-Server; covers physically.
1424
This option is for <acronym>OS</acronym>s without support for
1425
<acronym>VT</acronym>s, either by &kdm; or the <acronym>OS</acronym> itself.
1426
Currently this applies to all <acronym>OS</acronym>s but Linux.
1428
When &kdm; switches to console mode, it starts monitoring this
1429
<acronym>TTY</acronym> line (specified without the leading
1430
<literal>/dev/</literal>) for activity. If the line is not used for some time,
1431
&kdm; switches back to the X login.
1437
Instance: #:*/"_x11"
1440
The user the &X-Server; should run as. Empty results in <systemitem class="username">root</systemitem>.
1450
Ping remote display every that many minutes.
1452
See <option>PingTimeout</option>.
1462
Wait for a Pong that many minutes.
1464
To discover when <emphasis>remote</emphasis> displays disappear, &kdm;
1465
regularly pings them.
1466
<option>PingInterval</option> specifies the time (in minutes) between the
1467
pings and <option>PingTimeout</option> specifies the maximum amount of
1468
time (in minutes) to wait for the terminal to respond to the request. If
1469
the terminal does not respond, the session is declared dead and terminated.
1471
If you frequently use X terminals which can become isolated from
1472
the managing host, you may wish to increase the timeout. The only worry
1473
is that sessions will continue to exist after the terminal has been
1474
accidentally disabled.
1476
Key: TerminateServer
1483
Restart instead of resetting the local &X-Server; after session exit.
1484
Use it if the server leaks memory etc.
1486
Whether &kdm; should restart the local &X-Server; after session exit instead
1487
of resetting it. Use this if the &X-Server; leaks memory or crashes the system
1497
Create X-authorizations for local displays.
1499
Controls whether &kdm; generates and uses authorization for
1500
<emphasis>local</emphasis> &X-Server; connections.
1501
For &XDMCP; displays the authorization requested by the display is used;
1502
foreign non-&XDMCP; displays do not support authorization at all.
1506
Default: DEF_AUTH_NAME
1511
Which X-authorization mechanisms should be used.
1513
If <option>Authorize</option> is true, use the authorization mechanisms
1514
listed herein. The MIT-MAGIC-COOKIE-1 authorization is always available;
1515
XDM-AUTHORIZATION-1, SUN-DES-1 and MIT-KERBEROS-5 might be available as well,
1516
depending on the build configuration.
1525
Need to reset the &X-Server; to make it read initial Xauth file.
1527
Some <emphasis>old</emphasis> &X-Server;s re-read the authorization file
1528
at &X-Server; reset time, instead of when checking the initial connection.
1529
As &kdm; generates the authorization information just before connecting to
1530
the display, an old &X-Server; would not get up-to-date authorization
1531
information. This option causes &kdm; to send SIGHUP to the &X-Server;
1532
after setting up the file, causing an additional &X-Server; reset to occur,
1533
during which time the new authorization information will be read.
1538
User: core(clientAuthFile)
1542
The name of this &X-Server;'s Xauth file.
1543
If empty, a random name in the AuthDir directory will be used.
1545
This file is used to communicate the authorization data from &kdm; to
1546
the &X-Server;, using the <option>-auth</option> &X-Server; command line
1547
option. It should be kept in a directory which is not world-writable
1548
as it could easily be removed, disabling the authorization mechanism in
1549
the &X-Server;. If not specified, a random name is generated from
1550
<option>AuthDir</option> and the name of the display.
1553
# XXX strictly speaking this is supposed to be a string list, i think.
1558
Update: cp_resources
1561
Specify a file with X-resources for the greeter, chooser and background.
1562
The KDE frontend does not use this file, so you do not need it unless you
1563
use another background generator than krootimage.
1565
This option specifies the name of the file to be loaded by
1566
<command>xrdb</command> as the resource database onto the root window
1567
of screen 0 of the display. KDE programs generally do not use
1568
X-resources, so this option is only needed if the <option>Setup</option>
1569
program needs some X-resources.
1573
Default: XBINDIR "/xrdb"
1578
The xrdb program to use to read the above specified recources.
1579
Subject to word splitting.
1581
The <command>xrdb</command> program to use to read the X-resources file
1582
specified in <option>Recources</option>.
1583
The command is subject to word splitting.
1589
# will be overwritten
1594
A program to run before the greeter is shown. Can be used to start an
1595
xconsole or an alternative background generator. Subject to word splitting.
1597
This string is subject to word splitting.
1598
It specifies a program which is run (as
1599
<systemitem class="username">root</systemitem>) before offering the
1600
greeter window. This may be used to change the appearance of the screen
1601
around the greeter window or to put up other windows (e.g., you may want
1602
to run <command>xconsole</command> here).
1603
Usually, a script named <command>Xsetup</command> is used here.
1604
See <xref linkend="kdmrc-xsetup"/>.
1610
# will be overwritten
1615
A program to run before a user session starts. Subject to word splitting.
1617
This string is subject to word splitting.
1618
It specifies a program which is run (as
1619
<systemitem class="username">root</systemitem>) after the user
1620
authentication process succeeds.
1621
Usually, a script named <command>Xstartup</command> is used here.
1622
See <xref linkend="kdmrc-xstartup"/>.
1628
# will be overwritten
1633
A program to run after a user session exits. Subject to word splitting.
1635
This string is subject to word splitting.
1636
It specifies a program which is run (as
1637
<systemitem class="username">root</systemitem>) after the session
1639
Usually, a script named <command>Xreset</command> is used here.
1640
See <xref linkend="kdmrc-xreset"/>.
1644
Default: XBINDIR "/xterm -ls -T"
1645
#Merge: xdm - incompatible!
1647
# will be overwritten
1651
The program which is run as the user which logs in. It is supposed to
1652
interpret the session argument (see SessionsDirs) and start an appropriate
1653
session according to it. Subject to word splitting.
1655
This string is subject to word splitting.
1656
It specifies the session program to be executed (as the user owning
1658
Usually, a script named <command>Xsession</command> is used here.
1659
See <xref linkend="kdmrc-xsession"/>.
1663
Default: XBINDIR "/xterm"
1668
The program to run if Session fails.
1670
If the <option>Session</option> program fails to execute, &kdm; will
1671
fall back to this program. This program is executed with no arguments,
1672
but executes using the same environment variables as the session would
1673
have had (see <xref linkend="kdmrc-xsession"/>).
1677
Default: DEF_USER_PATH
1683
The PATH for the Session program.
1685
The <envar>PATH</envar> environment variable for
1686
non-<systemitem class="username">root</systemitem> <option>Session</option>s.
1688
The default depends on the system &kdm; was built on.
1692
Default: DEF_SYSTEM_PATH
1698
The PATH for Setup, Startup and Reset, etc.
1700
The <envar>PATH</envar> environment variable for all programs but
1701
non-<systemitem class="username">root</systemitem>
1702
<option>Session</option>s. Note that it is good practice not to include
1703
<literal>.</literal> (the current directory) into this entry.
1705
The default depends on the system &kdm; was built on.
1711
Instance: #*/"/bin/bash"
1714
The default system shell.
1716
The <envar>SHELL</envar> environment variable for all programs but the
1717
<option>Session</option>.
1726
Where to put the user's &X-Server; authorization file if ~/.Xauthority
1729
When &kdm; is unable to write to the usual user authorization file
1730
($<envar>HOME</envar>/.Xauthority), it creates a unique file name in this
1731
directory and points the environment variable <envar>XAUTHORITY</envar>
1732
at the created file.
1734
Key: ForceUserAuthDir
1741
If true, <option>UserAuthDir</option> will be used unconditionally.
1750
Whether to automatically restart sessions after &X-Server; crashes.
1751
Note that enabling this makes circumventing screen lockers other than
1752
KDE's built-in one possible!
1754
If enabled, &kdm; will automatically restart a session after an &X-Server;
1755
crash (or if it is killed by Alt-Ctrl-BackSpace). Note that enabling this
1756
feature opens a security hole: a secured display lock can be circumvented
1757
(unless &kde;'s built-in screen locker is used).
1763
User: greeter(showRoot)
1769
If disabled, do not allow <systemitem class="username">root</systemitem>
1770
(and any other user with UID = 0) to log in directly.
1772
Key: AllowNullPasswd
1781
Allow to log in, when user has set an empty password?
1783
If disabled, only users that have passwords assigned can log in.
1787
None/SHUT_NONE: no <guilabel>Shutdown...</guilabel> menu entry is shown at all
1788
Root/SHUT_ROOT: the <systemitem class="username">root</systemitem> password must be entered to shut down
1789
All/SHUT_ALL: everybody can shut down the machine
1795
Merge: kdm:-Greeter/
1798
Who is allowed to shut down the system. This applies both to the
1799
greeter and to the command sockets.
1801
Key: AllowSdForceNow
1803
None: no forced shutdown is allowed at all
1804
Root: the <systemitem class="username">root</systemitem> password must be entered to shut down forcibly
1805
All: everybody can shut down the machine forcibly
1807
User: core(allowNuke)
1808
User: greeter(allowNuke)
1812
Who is allowed to abort active sessions when shutting down.
1816
Schedule: shut down after all active sessions exit (possibly at once)
1817
TryNow: shut down, if no active sessions are open; otherwise, do nothing
1818
ForceNow: shut down unconditionally
1820
User: core(defSdMode)
1821
User: greeter(defSdMode)
1822
Instance: #*/ForceNow
1825
The default choice for the shutdown condition/timing.
1829
Never/SHUT_NEVER: not at all
1830
Optional/SHUT_OPTION: as a button in the simple shutdown dialogs
1831
Always/SHUT_ALWAYS: instead of the simple shutdown dialogs
1834
Instance: #*/Optional
1837
How to offer shutdown scheduling options:
1846
Enable password-less logins on this display. <emphasis>Use with extreme care!</emphasis>
1851
PostProc: PnoPassUsers
1853
Instance: #:*/"fred,ethel"
1854
Merge: xdm(P_noPassUsers)
1856
The users that do not need to provide a password to log in. NEVER list root!
1857
"*" means all non-root users. @<group> means all users in that group.
1859
The users that do not need to provide a password to log in.
1860
Items which are prefixed with <literal>@</literal> represent all users in the
1861
user group named by that item.
1862
<literal>*</literal> means all users but
1863
<systemitem class="username">root</systemitem>
1864
(and any other user with UID = 0).
1865
<emphasis>Never</emphasis> list <systemitem class="username">root</systemitem>.
1867
Key: AutoLoginEnable
1874
Enable automatic login. <emphasis>Use with extreme care!</emphasis>
1879
User: core(autoAgain)
1884
If true, auto-login after logout. If false, auto-login is performed only
1885
when a display session starts up.
1890
User: core(autoDelay)
1894
The delay in seconds before automatic login kicks in.
1896
The delay in seconds before automatic login kicks in. This is also known as
1897
<quote>Timed Login</quote>.
1902
PostProc: PautoLoginX
1903
User: core(autoUser)
1905
Instance: #:0/"fred"
1906
Merge: xdm:autoUser(P_autoUser)
1909
The user to log in automatically. <emphasis>Never</emphasis> specify <systemitem class="username">root</systemitem>!
1914
PostProc: PautoLoginX
1915
User: core(autoPass)
1916
Instance: #:0/"secret!"
1917
Merge: xdm:autoPass(P_autoPass)
1920
The password for the user to log in automatically. This is <emphasis>not</emphasis> required
1921
unless the user is logged into a <acronym>NIS</acronym> or Kerberos domain. If you use this
1922
option, you should <command>chmod <option>600</option> <filename>kdmrc</filename></command> for obvious reasons.
1924
Key: AutoLoginLocked
1927
User: core(autoLock)
1931
Immediately lock the automatically started session. This works only with
1936
Default: *KDMDATA "/sessions"
1939
Instance: */KDMCONF "/sessions," KDMDATA "/sessions"
1940
Update: upd_sessionsdirs
1942
The directories containing session type definitions in .desktop format,
1943
ordered by falling priority.
1945
A list of directories containing session type definitions.
1946
Ordered by falling priority.
1947
# See <xref linkend="kdmrc-sessions"> for details.
1951
Default: ".xsession-errors"
1953
Instance: */".xsession-errors-%d"
1954
Instance: :0/".xsession-errors"
1955
Update: upd_userlogfile
1957
The file (relative to $HOME) to redirect the session output to. The
1958
following character pairs are replaced:
1959
- %d -> current display
1960
- %u -> current user
1961
- %r -> empty at first. See below.
1963
When the constructed filename cannot be used safely and the specification
1964
contains %<stuff>r, other names will be tried - this time expanding %<stuff>r
1965
to <stuff> followed by a random number.
1967
The file (relative to the user's home directory) to redirect the session
1970
The following character pairs are replaced by their value:
1973
<term><parameter>%d</parameter></term>
1974
<listitem><para>name of the current display</para></listitem>
1977
<term><parameter>%u</parameter></term>
1978
<listitem><para>login name of the current user</para></listitem>
1981
<term><parameter>%r</parameter></term>
1982
<listitem><para>empty at first. See below.</para></listitem>
1985
<term><parameter>%%</parameter></term>
1986
<listitem><para>a single <literal>%</literal></para></listitem>
1989
When the constructed filename cannot be used safely and the specification
1991
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>,
1992
other names will be tried - this time expanding
1993
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>
1994
to <replaceable>stuff</replaceable> followed by a random number.
1996
Key: ClientLogFallback
1998
Default: "/tmp/xerr-%u-%d%-r"
2000
Instance: #*/"/var/log/xsession-errors/%u-%d%-r"
2003
Fallback when <option>ClientLogFile</option> cannot be used. The same expansions are
2004
supported. <emphasis>Do not</emphasis> use relative paths here.
2012
Whether &kdm;'s built-in utmp/wtmp/lastlog registration should be used.
2014
Specify whether &kdm;'s built-in utmp/wtmp/lastlog registration should
2015
be used. If it is not, the tool <command>sessreg</command> should be used
2016
in the <option>Startup</option> and <option>Reset</option> scripts, or,
2017
alternatively, the pam_lastlog module should be used on
2018
<acronym>PAM</acronym>-enabled systems.
2023
This section class contains options concerning the configuration
2024
of the &kdm; frontend (greeter).
2030
Instance: #*/"Plastique"
2031
Update: upd_guistyle
2034
Specify the widget style for the greeter. Empty means to use the
2035
built-in default which currently is <literal>Oxygen-air</literal>.
2041
Instance: #*/"MidnightMeadow"
2044
Specify the widget color scheme for the greeter. Empty means to use the
2045
built-in default which currently is <literal>Oxygen-air</literal>.
2049
None/LOGO_NONE: nothing
2050
Logo/LOGO_LOGO: the image specified by <option>LogoPixmap</option>
2051
Clock/LOGO_CLOCK: a neat analog clock
2056
What should be shown in the greeter's logo are:
2058
What should be shown in the greeter righthand of the input lines (if
2059
<option>UserList</option> is disabled) or above them (if
2060
<option>UserList</option> is enabled):
2066
Instance: */KDMDATA "/pics/kdelogo.png"
2068
The image to show when LogoArea=Logo.
2070
The image to show in the greeter if <option>LogoArea</option> is
2071
<literal>Logo</literal>.
2077
Instance: #*/"30,40"
2079
The relative coordinates (X,Y in percent) of the center of the greeter.
2081
The relative coordinates (percentages of the screen size; X,Y) at which
2082
the center of the greeter is put. &kdm; aligns the greeter to the edges
2083
of the screen it would cross otherwise.
2092
The screen the greeter should be displayed on in multi-headed and Xinerama
2093
setups. The numbering starts with 0. For Xinerama, it corresponds to the
2094
listing order in the active ServerLayout section of XF86Config; -1 means
2095
to use the upper-left screen, -2 means to use the upper-right screen.
2099
Default: "Welcome to %s at %n"
2101
Instance: #*/"K Desktop Environment (%n)"
2103
The headline in the greeter. The following character pairs are replaced:
2104
- %d -> current display
2105
- %h -> host name, possibly with domain name
2106
- %n -> node name, most probably the host name without domain name
2107
- %s -> the operating system
2108
- %r -> the operating system's version
2109
- %m -> the machine (hardware) type
2112
The headline in the greeter. An empty greeting means none at all.
2114
The following character pairs are replaced by their value:
2117
<term><parameter>%d</parameter></term>
2118
<listitem><para>name of the current display</para></listitem>
2121
<term><parameter>%h</parameter></term>
2122
<listitem><para>local host name, possibly with the
2123
domain name</para></listitem>
2126
<term><parameter>%n</parameter></term>
2127
<listitem><para>local node name, most probably the host name without the
2128
domain name</para></listitem>
2131
<term><parameter>%s</parameter></term>
2132
<listitem><para>operating system</para></listitem>
2135
<term><parameter>%r</parameter></term>
2136
<listitem><para>operating system version</para></listitem>
2139
<term><parameter>%m</parameter></term>
2140
<listitem><para>machine (hardware) type</para></listitem>
2143
<term><parameter>%%</parameter></term>
2144
<listitem><para>a single <literal>%</literal></para></listitem>
2148
# This needs to come _in front_ of the font settings to be effective!
2156
Whether the fonts used in the greeter should be antialiased.
2160
Default: "Serif,20,-1,5,50,0,0,0,0,0"
2161
CDefault: "Serif 20pt bold"
2163
Instance: #*/"Serif,20,-1,5,50,0,0,0,0,0"
2166
The font for the greeter headline. The value is encoded.
2170
Default: "Sans Serif,10,-1,5,50,0,0,0,0,0"
2171
CDefault: "Sans Serif 10pt"
2172
User: greeter(normalFont):font
2173
Instance: #*/"Sans Serif,10,-1,5,50,0,0,0,0,0"
2176
The normal font used in the greeter. The value is encoded.
2180
Default: "Sans Serif,10,-1,5,75,0,0,0,0,0"
2181
CDefault: "Sans Serif 10pt bold"
2183
Instance: #*/"Sans Serif,10,-1,5,75,0,0,0,0,0"
2186
The font used for the <quote>Login Failed</quote> message. The value is encoded.
2192
Keep: do not change the state
2194
User: greeter(numLockStatus)
2198
What to do with the Num Lock modifier for the time the greeter is running:
2204
Instance: #*/"de_DE"
2205
Update: upd_language
2208
Language and locale to use in the greeter, encoded like $<envar>LANGUAGE</envar>.
2209
If empty, the settings from the environment are used.
2218
Enable autocompletion in the username line edit.
2226
Enable user list (names along with images) in the greeter.
2228
Show a user list with unix login names, real names, and images in the greeter.
2232
NotHidden/SHOW_ALL: all users except those listed in HiddenUsers
2233
Selected/SHOW_SEL: only the users listed in SelectedUsers
2236
Instance: #*/Selected
2237
Update: upd_showusers
2239
User selection for UserCompletion and UserList:
2241
This option controls which users will be shown in the user view
2242
(<option>UserList</option>) and/or offered for autocompletion
2243
(<option>UserCompletion</option>).
2244
If it is <literal>Selected</literal>, <option>SelectedUsers</option> contains
2245
the final list of users.
2246
If it is <literal>NotHidden</literal>, the initial user list contains all
2247
users found on the system. Users contained in <option>HiddenUsers</option> are
2248
removed from the list, just like all users with a UID greater than specified
2249
in <option>MaxShowUID</option> and users with a non-zero UID less than
2250
specified in <option>MinShowUID</option>.
2251
Items in <option>SelectedUsers</option> and <option>HiddenUsers</option>
2252
which are prefixed with <literal>@</literal> represent all users in the
2253
user group named by that item.
2254
Finally, the user list will be sorted alphabetically, if
2255
<option>SortUsers</option> is enabled.
2260
User: greeter-c(users)
2261
Instance: #*/"root,johndoe"
2264
For ShowUsers=Selected. @<group> means all users in that group.
2266
See <option>ShowUsers</option>.
2271
User: greeter-c(noUsers)
2273
# depends on {Min,Max}ShowUID
2274
Update: upd_hiddenusers/1
2277
For ShowUsers=NotHidden. @<group> means all users in that group.
2279
See <option>ShowUsers</option>.
2284
User: greeter(lowUserId)
2285
# will be overwritten
2287
Update: upd_minshowuid
2289
Special case of HiddenUsers: users with a non-zero UID less than this number
2290
will not be shown as well.
2292
See <option>ShowUsers</option>.
2297
User: greeter(highUserId)
2298
# will be overwritten
2300
Update: upd_maxshowuid
2302
Complement to MinShowUID: users with a UID greater than this number will
2303
not be shown as well.
2305
See <option>ShowUsers</option>.
2313
If false, the users are listed in the order they appear in /etc/passwd.
2314
If true, they are sorted alphabetically.
2316
See <option>ShowUsers</option>.
2320
AdminOnly/FACE_ADMIN_ONLY: from <filename><<option>FaceDir</option>>/$<envar>USER</envar>.face[.icon]</filename>
2321
PreferAdmin/FACE_PREFER_ADMIN: prefer <<option>FaceDir</option>>, fallback on $<envar>HOME</envar>
2322
PreferUser/FACE_PREFER_USER: ... and the other way round
2323
UserOnly/FACE_USER_ONLY: from the user's <filename>$<envar>HOME</envar>/.face[.icon]</filename>
2326
Instance: #*/PreferUser
2328
Specify, where the users' pictures should be taken from.
2330
If <option>UserList</option> is enabled, this specifies where &kdm; gets the
2335
The images can be in any format Qt recognizes, but the filename
2336
must match &kdm;'s expectations: <literal>.face.icon</literal> should be a
2337
48x48 icon, while <literal>.face</literal> should be a 300x300 image.
2338
Currently the big image is used only as a fallback and is scaled down,
2339
but in the future it might be displayed full-size in the logo area or a
2341
To be accessible to &kdm;, the images must be world readable and their
2342
parent directories must be world executable.
2346
Default: *KDMDATA "/faces"
2348
Instance: #*/"/usr/share/faces"
2351
The directory containing the user images if FaceSource is not UserOnly.
2353
See <option>FaceSource</option>.
2357
None/PRESEL_NONE: do not preselect any user
2358
Previous/PRESEL_PREV: the user which successfully logged in last time
2359
Default/PRESEL_DEFAULT: the user specified in the <option>DefaultUser</option> option
2361
User: greeter(preselUser)
2362
Instance: #*/Previous
2363
Instance: :*/Previous
2364
Instance: #:0/Default
2366
Specify, if/which user should be preselected for log in.
2368
Specify, if/which user should be preselected for log in:
2372
If <option>FocusPasswd</option> is enabled and a user was preselected,
2373
the cursor is placed in the password input field automatically.
2375
<note><para>Enabling user preselection can be considered a security hole,
2376
as it presents a valid login name to a potential attacker, so he
2377
<quote>only</quote> needs to guess the password. On the other hand,
2378
one could set <option>DefaultUser</option> to a fake login name.</para></note>
2385
Instance: #:0/"johndoe"
2387
The user to preselect if PreselectUser=Default.
2389
See <option>PreselectUser</option>.
2398
If this is true, the password input line is focused automatically if
2399
a user is preselected.
2401
See <option>PreselectUser</option>.
2408
Merge: kdm:EchoMode(P_EchoMode)
2411
If this is true, the entered password is echoed as bullets. Otherwise,
2412
no feedback is given at all.
2420
If true, krootimage will be automatically started by &kdm;; otherwise, the
2421
Setup script should be used to setup the background.
2423
If enabled, &kdm; will automatically start the <command>krootimage</command>
2424
program to set up the background; otherwise, the <option>Setup</option>
2425
program is responsible for the background.
2429
Default: *KDMCONF "/backgroundrc"
2434
The configuration file to be used by krootimage.
2436
The configuration file to be used by <command>krootimage</command>.
2437
It contains a section named <literal>[Desktop0]</literal> like
2438
<filename>kdesktoprc</filename> does. Its options are not described
2439
herein; guess their meanings or use the control center.
2443
Never/GRAB_NEVER: never grab
2444
IfNoAuth/GRAB_IFNOAUTH: grab if the display requires no X authorization
2445
Always/GRAB_ALWAYS: always grab
2447
User: greeter-c(grabInputPre)
2450
Whether to grab keyboard and mouse while the greeter is visible. Grabs
2451
may improve security, but make on-screen keyboards, etc. unusable.
2453
To improve security, the greeter may grab mouse and keyboard input so
2454
no other X clients can eavesdrop it. However, the X authorization
2455
mechanism will usually prevent malicious X clients from connecting
2456
in the first place. Consequently, enabling grabs for local displays
2457
is pointless and only marginally improves security for remote displays.
2459
<note><para>The mouse grab will make on-screen keyboards unusable.
2469
Hold the &X-Server; grabbed the whole time the greeter is visible. This
2470
may be more secure, but it will disable any background and other
2471
X-clients started from the Setup script.
2473
To improve security, the greeter grabs the &X-Server; and then the input
2474
when it starts up. This option specifies if the &X-Server; grab should be held
2475
for the duration of the name/password reading. When disabled, the &X-Server;
2476
is ungrabbed after the input grabs succeed; otherwise, the &X-Server; is
2477
grabbed until just before the session begins.
2479
<note><para>Enabling this option disables <option>UseBackground</option> and
2480
<option>Setup</option>.</para></note>
2489
How many seconds to wait for grab to succeed.
2491
This option specifies the maximum time &kdm; will wait for the grabs to
2492
succeed. A grab may fail if some other X-client has the &X-Server; or the
2493
keyboard grabbed, or possibly if the network latencies are very high. You
2494
should be cautious when raising the timeout, as a user can be spoofed by
2495
a look-alike window on the display. If a grab fails, &kdm; kills and
2496
restarts the &X-Server; (if possible) and the session.
2505
Warn, if display has no X-authorization (local auth cannot be created,
2506
&XDMCP; display wants no auth, or display is foreign from StaticServers).
2508
Warn, if a display has no X-authorization. This will be the case if
2511
the authorization file for a local &X-Server; could not be created,
2514
a remote display from &XDMCP; did not request any authorization or
2517
the display is a <quote>foreign</quote> display specified in
2518
<option>StaticServers</option>.
2525
LocalOnly/LOGIN_LOCAL_ONLY: only local login possible
2526
DefaultLocal/LOGIN_DEFAULT_LOCAL: start up in local mode, but allow switching to remote mode
2527
DefaultRemote/LOGIN_DEFAULT_REMOTE: ... and the other way round
2528
RemoteOnly/LOGIN_REMOTE_ONLY: only choice of remote host possible
2532
Instance: :*/DefaultLocal
2533
# from make_it_cool branch and SuSE 8.1
2534
Merge: kdm:EnableChooser(P_EnableChooser)
2537
Specify whether the greeter of local displays should start up in host chooser
2538
(remote) or login (local) mode and whether it is allowed to switch to the
2546
Instance: #:*/"*,host1,host2,host3.local,login.domain.com"
2548
A list of hosts to be automatically added to the remote login menu. The
2549
special name "*" means broadcast.
2551
A list of hosts to be automatically added to the remote login menu.
2552
The special name <literal>*</literal> means broadcast.
2553
Has no effect if <option>LoginMode</option> is <literal>LocalOnly</literal>.
2560
Update: upd_forgingseed
2562
Random seed for forging saved session types, etc. of unknown users.
2563
This value should be random but constant across the login domain.
2565
Use this number as a random seed when forging saved session types, etc. of
2566
unknown users. This is used to avoid telling an attacker about existing users
2567
by reverse conclusion. This value should be random but constant across the
2571
If: defined(WITH_KDM_XCONSOLE)
2577
Enable &kdm;'s built-in xconsole. Note that this can be enabled for only
2578
one display at a time.
2580
Enable &kdm;'s built-in <command>xconsole</command>.
2581
Note that this can be enabled for only one display at a time.
2582
This option is available only if &kdm; was <command>configure</command>d
2583
with <option>--enable-kdm-xconsole</option>.
2586
If: defined(WITH_KDM_XCONSOLE)
2590
Instance: :0/"/dev/xconsole"
2592
The data source for &kdm;'s built-in xconsole.
2593
If empty, a console log redirection is requested from /dev/console.
2595
The data source for &kdm;'s built-in <command>xconsole</command>.
2596
If empty, a console log redirection is requested from
2597
<filename>/dev/console</filename>.
2598
Has no effect if <option>ShowLog</option> is disabled.
2606
Specify conversation plugins for the login dialog. Each plugin can be
2607
specified as a base name (which expands to $kde_modulesdir/kgreet_$base)
2608
or as a full pathname.
2610
Specify conversation plugins for the login dialog; the first in the list
2611
is selected initially.
2612
Each plugin can be specified as a base name (which expands to
2613
<filename>$<envar>kde_modulesdir</envar>/kgreet_<replaceable>base</replaceable></filename>)
2614
or as a full pathname.
2616
Conversation plugins are modules for the greeter which obtain authentication
2617
data from the user. Currently only the <literal>classic</literal> plugin is
2618
shipped with &kde;; it presents the well-known username and password form.
2620
Key: PluginsShutdown
2624
Instance: #*/"modern"
2627
Same as <option>PluginsLogin</option>, but for the shutdown dialog.
2633
Instance: #*/"SomeKey=randomvalue,Foo=bar"
2635
A list of options of the form Key=Value. The conversation plugins can query
2636
these settings; it is up to them what possible keys are.
2638
A list of options of the form
2639
<replaceable>Key</replaceable><literal>=</literal><replaceable>Value</replaceable>.
2640
The conversation plugins can query these settings; it is up to them what
2646
User: greeter(hasConsole)
2650
Show the <guilabel>Console Login</guilabel> action in the greeter (if <option>ServerTTY</option>/<option>ConsoleTTYs</option>
2660
Show the <guilabel>Restart X Server</guilabel>/<guilabel>Close Connection</guilabel> action in the greeter.
2666
Instance: */KDE_BINDIR "/preloadkde"
2667
Update: upd_preloader
2670
A program to run while the greeter is visible. It is supposed to preload
2671
as much as possible of the session that is going to be started (most
2681
Whether the greeter should be themed.
2687
Instance: */KDMDATA "/themes/horos"
2690
The theme to use for the greeter. Can point to either a directory or an XML
2693
Key: AllowThemeDebug
2700
Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging.