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(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 KDM_DEF_USER_PATH
53
# define DEF_SYSTEM_PATH KDM_DEF_SYSTEM_PATH
55
# define DEF_USER_PATH KDM_DEF_USER_PATH ":/usr/ucb"
56
# define DEF_SYSTEM_PATH KDM_DEF_SYSTEM_PATH ":/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
Definition: the greeter is the login dialog, i.e., the part of &kdm;
95
You can configure every X-display individually.
96
Every display has a display name, which consists of a host name
97
(which is empty for local displays specified in {Static|Reserve}Servers),
98
a colon, and a display number. Additionally, a display belongs to a
99
display class (which can be ignored in most cases; the control center
100
does not support this feature at all).
101
Sections with display-specific settings have the formal syntax
102
"[X-" host [":" number [ "_" class ]] "-" sub-section "]"
103
You can use the "*" wildcard for host, number, and class. You may omit
104
trailing components; they are assumed to be "*" then.
105
The host part may be a domain specification like ".inf.tu-dresden.de".
106
It may also be "+", which means non-empty, i.e. remote displays only.
107
From which section a setting is actually taken is determined by these
109
- an exact match takes precedence over a partial match (for the host part),
110
which in turn takes precedence over a wildcard ("+" taking precedence
112
- precedence decreases from left to right for equally exact matches
113
Example: display name "myhost:0", class "dpy".
114
[X-myhost:0_dpy] precedes
115
[X-myhost:0_*] (same as [X-myhost:0]) precedes
116
[X-myhost:*_dpy] precedes
117
[X-myhost:*_*] (same as [X-myhost]) precedes
120
[X-*:0_*] (same as [X-*:0]) precedes
121
[X-*:*_*] (same as [X-*])
122
These sections do NOT match this display:
123
[X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
124
If a setting is not found in any matching section, the default is used.
126
Every comment applies to the following section or key. Note that all
127
comments will be lost if you change this file with the systemsettings frontend.
128
The defaults refer to &kdm;'s built-in values, not anything set in this file.
130
Special characters need to be backslash-escaped (leading and trailing
131
spaces (\\s), tab (\\t), linefeed (\\n), carriage return (\\r) and the
132
backslash itself (\\\\)).
133
In lists, fields are separated with commas without whitespace in between.
134
Some command strings are subject to simplified sh-style word splitting:
135
single quotes (') and double quotes (") have the usual meaning; the backslash
136
quotes everything (not only special characters). Note that the backslashes
137
need to be doubled because of the two levels of quoting.
145
Rough estimations about how many seconds &kdm; will spend at most on
146
- opening a connection to the X-server (OpenTime) if the attempt
147
- times out: OpenTimeout
148
- is refused: OpenRepeat * OpenDelay
149
- starting a local X-server (ServerTime):
150
ServerAttempts * (ServerTimeout + OpenDelay)
151
- starting a display:
152
- local display: ServerTime + OpenTime
153
- foreign display: StartAttempts * OpenTime
154
- &XDMCP; display: OpenTime (repeated indefinitely by client)
156
Core config for all displays
159
Greeter config for all displays
162
Core config for local displays
165
Greeter config for local displays
168
Core config for 1st local display
171
Greeter config for 1st local display
175
# The contents of this section are copied into kdmrc-ref.docbook.
176
# The macro %REF% is replaced with the accumulated Description:s from the key
179
<chapter id="kdm-files">
180
<title>The Files &kdm; Uses for Configuration</title>
182
<para>This chapter documents the files that control &kdm;'s behavior.
183
Some of this can be also controlled from the &systemsettings; module, but
187
<title>&kdmrc; - The &kdm; master configuration file</title>
189
<para>The basic format of the file is <quote>INI-like</quote>.
190
Options are key/value pairs, placed in sections.
191
Everything in the file is case sensitive.
192
Syntactic errors and unrecognized key/section identifiers cause &kdm; to
193
issue non-fatal error messages.</para>
195
<para>Lines beginning with <literal>#</literal> are comments; empty lines
196
are ignored as well.</para>
198
<para>Sections are denoted by
199
<literal>[</literal><replaceable>Name of Section</replaceable><literal>]</literal>.
202
<para>You can configure every X-display individually.</para>
203
<para>Every display has a display name, which consists of a host name
204
(which is empty for local displays specified in <option>StaticServers</option>
205
or <option>ReserveServers</option>), a colon, and a display number.
206
Additionally, a display belongs to a
207
display class (which can be ignored in most cases).</para>
209
<para>Sections with display-specific settings have the formal syntax
210
<literal>[X-</literal> <replaceable>host</replaceable> [ <literal>:</literal> <replaceable>number</replaceable> [ <literal>_</literal> <replaceable>class</replaceable> ] ] <literal>-</literal> <replaceable>sub-section</replaceable> <literal>]</literal>
212
<para>All sections with the same <replaceable>sub-section</replaceable>
213
make up a section class.</para>
215
<para>You can use the wildcard <literal>*</literal> (match any) for
216
<replaceable>host</replaceable>, <replaceable>number</replaceable>,
217
and <replaceable>class</replaceable>. You may omit trailing components;
218
they are assumed to be <literal>*</literal> then. The host part may be a
219
domain specification like <replaceable>.inf.tu-dresden.de</replaceable>
220
or the wildcard <literal>+</literal> (match non-empty).</para>
222
<para>From which section a setting is actually taken is determined by
227
<para>An exact match takes precedence over a partial match (for the
228
host part), which in turn takes precedence over a wildcard
229
(<literal>+</literal> taking precendence over <literal>*</literal>).</para>
233
<para>Precedence decreases from left to right for equally exact matches.</para>
239
Example: display name <quote>myhost.foo:0</quote>, class <quote>dpy</quote>
243
<para>[X-myhost.foo:0_dpy] precedes</para>
246
<para>[X-myhost.foo:0_*] (same as [X-myhost.foo:0]) precedes</para>
249
<para>[X-myhost.foo:*_dpy] precedes</para>
252
<para>[X-myhost.foo:*_*] (same as [X-myhost.foo]) precedes</para>
255
<para>[X-.foo:*_*] (same as [X-.foo]) precedes</para>
258
<para>[X-+:0_dpy] precedes</para>
261
<para>[X-*:0_dpy] precedes</para>
264
<para>[X-*:0_*] (same as [X-*:0]) precedes</para>
267
<para>[X-*:*_*] (same as [X-*]).</para>
270
<para>These sections do <emphasis>not</emphasis> match this display:</para>
271
<para>[X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]</para>
279
<para>Common sections are [X-*] (all displays), [X-:*] (all local displays)
280
and [X-:0] (the first local display).</para>
282
<para>The format for all keys is
283
<userinput><option><replaceable>key</replaceable></option> <literal>=</literal> <parameter>value</parameter></userinput>.
284
Keys are only valid in the section class they are defined for.
285
Some keys do not apply to particular displays, in which case they are ignored.
288
<para>If a setting is not found in any matching section, the default
291
<para>Special characters need to be backslash-escaped (leading and trailing
292
spaces (<literal>\s</literal>), tab (<literal>\t</literal>), linefeed
293
(<literal>\n</literal>), carriage return (<literal>\r</literal>) and the
294
backslash itself (<literal>\\</literal>)).</para>
295
<para>In lists, fields are separated with commas without whitespace in between.
297
<para>Some command strings are subject to simplified sh-style word splitting:
298
single quotes (<literal>'</literal>) and double quotes (<literal>"</literal>)
299
have the usual meaning; the backslash quotes everything (not only special
300
characters). Note that the backslashes need to be doubled because of the
301
two levels of quoting.</para>
303
<note><para>A pristine &kdmrc; is very thoroughly commented.
304
All comments will be lost if you change this file with the
305
&systemsettings; frontend.</para></note>
311
<sect1 id="kdmrc-xservers">
312
<title>Specifying permanent &X-Server;s</title>
314
<para>Each entry in the <option>StaticServers</option> list indicates a
315
display which should constantly be
316
managed and which is not using &XDMCP;. This method is typically used only for
317
local &X-Server;s that are started by &kdm;, but &kdm; can manage externally
318
started (<quote>foreign</quote>) &X-Server;s as well, may they run on the
319
local machine or rather remotely.</para>
321
<para>The formal syntax of a specification is
323
<userinput><replaceable>display name</replaceable> [<literal>_</literal><replaceable>display class</replaceable>]</userinput>
325
for all &X-Server;s. <quote>Foreign</quote> displays differ in having
326
a host name in the display name, may it be <literal>localhost</literal>.</para>
328
<para>The <replaceable>display name</replaceable> must be something that can
329
be passed in the <option>-display</option> option to an X program. This string
330
is used to generate the display-specific section names, so be careful to match
332
The display name of &XDMCP; displays is derived from the display's address by
333
reverse host name resolution. For configuration purposes, the
334
<literal>localhost</literal> prefix from locally running &XDMCP; displays is
335
<emphasis>not</emphasis> stripped to make them distinguishable from local
336
&X-Server;s started by &kdm;.</para>
338
<para>The <replaceable>display class</replaceable> portion is also used in the
339
display-specific sections. This is useful if you have a large collection of
340
similar displays (such as a corral of X terminals) and would like to set
341
options for groups of them.
342
When using &XDMCP;, the display is required to specify the display class,
343
so the manual for your particular X terminal should document the display
344
class string for your device. If it does not, you can run &kdm; in debug
345
mode and <command>grep</command> the log for <quote>class</quote>.</para>
347
<para>The displays specified in <option>ReserveServers</option> will not be
348
started when &kdm; starts up, but when it is explicitly requested via
350
If reserve displays are specified, the &kde; menu will have a
351
<guilabel>Start New Session</guilabel> item near the bottom; use that to
352
activate a reserve display with a new login session. The monitor will switch
353
to the new display, and you will have a minute to login. If there are no more
354
reserve displays available, the menu item will be disabled.</para>
356
<para>When &kdm; starts a session, it sets up authorization data for the
357
&X-Server;. For local servers, &kdm; passes
358
<command><option>-auth</option> <filename><replaceable>filename</replaceable></filename></command>
359
on the &X-Server;'s command line to point it at its authorization data.
360
For &XDMCP; displays, &kdm; passes the authorization data to the &X-Server;
361
via the <quote>Accept</quote> &XDMCP; message.</para>
365
<sect1 id="kdmrc-xaccess">
366
<title>&XDMCP; access control</title>
368
<para>The file specified by the <option>AccessFile</option> option provides
369
information which &kdm; uses to control access from displays requesting service
371
The file contains four types of entries: entries which control the response
372
to <quote>Direct</quote> and <quote>Broadcast</quote> queries, entries which
373
control the response to <quote>Indirect</quote> queries, macro definitions,
374
and entries which control on which network interfaces &kdm; listens for &XDMCP;
376
Blank lines are ignored, <literal>#</literal> is treated as a comment
377
delimiter causing the rest of that line to be ignored, and <literal>\</literal>
378
causes an immediately following newline to be ignored, allowing host lists
379
to span multiple lines.
382
<para>The format of the <quote>Direct</quote> entries is simple, either a
383
host name or a pattern, which is compared against the host name of the display
384
device. Alternatively, a macro may be used to make the entry match everything
385
the macro expands to.
386
Patterns are distinguished from host names by the inclusion of one or more
387
meta characters; <literal>*</literal> matches any sequence of 0 or more
388
characters, and <literal>?</literal> matches any single character.
389
If the entry is a host name, all comparisons are done using network addresses,
390
so any name which converts to the correct network address may be used. Note
391
that only the first network address returned for a host name is used.
392
For patterns, only canonical host names are used in the comparison, so ensure
393
that you do not attempt to match aliases.
394
Host names from &XDMCP; queries always contain the local domain name
395
even if the reverse lookup returns a short name, so you can use
396
patterns for the local domain.
397
Preceding the entry with a <literal>!</literal> character causes hosts which
398
match that entry to be excluded. Preceding it with an <literal>=</literal> has
399
no effect but is required when specifying a macro to distinguish the entry
400
from a macro definition.
401
To only respond to <quote>Direct</quote> queries for a host or pattern,
402
it can be followed by the optional <literal>NOBROADCAST</literal> keyword.
403
This can be used to prevent a &kdm; server from appearing on menus based on
404
<quote>Broadcast</quote> queries.</para>
406
<para>An <quote>Indirect</quote> entry also contains a host name, pattern or
407
macro, but follows it with a list of host names or macros to which the queries
408
should be forwarded. <quote>Indirect</quote> entries can be excluding as well,
409
in which case a (valid) dummy host name must be supplied to make the entry
410
distinguishable from a <quote>Direct</quote> entry.
411
If compiled with IPv6 support, multicast address groups may also be included
412
in the list of addresses the queries are forwarded to.
413
<!-- Not actually implemented!
414
Multicast addresses may be followed by an optional <literal>/</literal>
415
character and hop count. If no hop count is specified, the multicast hop count
416
defaults to 1, keeping the packet on the local network. For IPv4 multicasting,
417
the hop count is used as the TTL.
419
If the indirect host list contains the keyword <literal>CHOOSER</literal>,
420
<quote>Indirect</quote> queries are not forwarded, but instead a host chooser
421
dialog is displayed by &kdm;. The chooser will send a <quote>Direct</quote>
422
query to each of the remaining host names in the list and offer a menu of
423
all the hosts that respond. The host list may contain the keyword
424
<literal>BROADCAST</literal>, to make the chooser send a
425
<quote>Broadcast</quote> query as well; note that on some operating systems,
426
UDP packets cannot be broadcast, so this feature will not work.
429
<para>When checking access for a particular display host, each entry is scanned
430
in turn and the first matching entry determines the response.
431
<quote>Direct</quote> and <quote>Broadcast</quote> entries are ignored when
432
scanning for an <quote>Indirect</quote> entry and vice-versa.</para>
434
<para>A macro definition contains a macro name and a list of host names and
435
other macros that the macro expands to. To distinguish macros from hostnames,
436
macro names start with a <literal>%</literal> character.</para>
438
<para>The last entry type is the <literal>LISTEN</literal> directive.
441
<userinput> <literal>LISTEN</literal> [<replaceable>interface</replaceable> [<replaceable>multicast list</replaceable>]]</userinput>
443
If one or more <literal>LISTEN</literal> lines are specified, &kdm; listens
444
for &XDMCP; requests only on the specified interfaces.
445
<replaceable>interface</replaceable> may be a hostname or IP address
446
representing a network interface on this machine, or the wildcard
447
<literal>*</literal> to represent all available network interfaces.
448
If multicast group addresses are listed on a <literal>LISTEN</literal> line,
449
&kdm; joins the multicast groups on the given interface. For IPv6 multicasts,
450
the IANA has assigned ff0<replaceable>X</replaceable>:0:0:0:0:0:0:12b as the
451
permanently assigned range of multicast addresses for &XDMCP;. The
452
<replaceable>X</replaceable> in the prefix may be replaced by any valid scope
453
identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and
454
so on (see IETF RFC 2373 or its replacement for further details and scope
455
definitions). &kdm; defaults to listening on the Link-Local scope address
456
ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior.
457
If no <literal>LISTEN</literal> lines are given, &kdm; listens on all
458
interfaces and joins the default &XDMCP; IPv6 multicast group (when
459
compiled with IPv6 support).
460
To disable listening for &XDMCP; requests altogether, a
461
<literal>LISTEN</literal> line with no addresses may be specified, but using
462
the <literal>[Xdmcp]</literal> <option>Enable</option> option is preferred.
467
<sect1 id="kdm-scripts">
468
<title>Supplementary programs</title>
471
The following programs are run by &kdm; at various stages of a session.
472
They typically are shell scripts.
476
The Setup, Startup and Reset programs are run as
477
<systemitem class="username">root</systemitem>, so they should be careful
479
Their first argument is <literal>auto</literal> if the session results
480
from an automatic login; otherwise, no arguments are passed to them.
483
<sect2 id="kdmrc-xsetup">
484
<title>Setup program</title>
487
The <filename>Xsetup</filename> program is run after the &X-Server; is
488
started or reset, but before the greeter is offered.
489
This is the place to change the root background (if
490
<option>UseBackground</option> is disabled) or bring up other windows that
491
should appear on the screen along with the greeter. Resources for this
492
program can be put into the file named by <option>Resources</option>.
496
In addition to any specified by <option>ExportList</option>,
497
the following environment variables are passed:</para>
501
<listitem><para>the associated display name</para></listitem>
505
<listitem><para>the value of <option>SystemPath</option></para></listitem>
509
<listitem><para>the value of <option>SystemShell</option></para></listitem>
512
<term>XAUTHORITY</term>
513
<listitem><para>may be set to an authority file</para></listitem>
516
<term>DM_CONTROL</term>
517
<listitem><para>the value of <option>FifoDir</option></para></listitem>
521
<note><para><option>GrabInput</option> can make &kdm; grab the
522
keyboard and mouse, making any other windows unable to receive input.
523
If <option>GrabServer</option> is set, <filename>Xsetup</filename>
524
will not be able to connect to the display at all.</para></note>
528
<sect2 id="kdmrc-xstartup">
529
<title>Startup program</title>
531
<para>The <filename>Xstartup</filename> program is run as
532
<systemitem class="username">root</systemitem> when the user logs in.
533
This is the place to put commands which add entries to
534
<filename>utmp</filename> (the <command>sessreg</command> program
535
may be useful here), mount users' home directories from file servers,
536
or abort the session if some requirements are not met (but note that on
537
modern systems, many of these tasks are already taken care of by
538
<acronym>PAM</acronym> modules).</para>
540
<para>In addition to any specified by <option>ExportList</option>,
541
the following environment variables are passed:</para>
545
<listitem><para>the associated display name</para></listitem>
549
<listitem><para>the initial working directory of the user</para></listitem>
553
<listitem><para>the username</para></listitem>
557
<listitem><para>the username</para></listitem>
561
<listitem><para>the value of <option>SystemPath</option></para></listitem>
565
<listitem><para>the value of <option>SystemShell</option></para></listitem>
568
<term>XAUTHORITY</term>
569
<listitem><para>may be set to an authority file</para></listitem>
572
<term>DM_CONTROL</term>
573
<listitem><para>the value of <option>FifoDir</option></para></listitem>
577
<para>&kdm; waits until this program exits before starting the user session.
578
If the exit value of this program is non-zero, &kdm; discontinues the session
579
and starts another authentication cycle.</para>
583
<sect2 id="kdmrc-xsession">
584
<title>Session program</title>
586
<para>The <filename>Xsession</filename> program is the command which is run
587
as the user's session. It is run with the permissions of the authorized user.
588
One of the keywords <literal>failsafe</literal>, <literal>default</literal>
589
or <literal>custom</literal>, or a string to <command>eval</command> by a
590
Bourne-compatible shell is passed as the first argument.</para>
592
<para>In addition to any specified by <option>ExportList</option>,
593
the following environment variables are passed:</para>
597
<listitem><para>the associated display name</para></listitem>
601
<listitem><para>the initial working directory of the user</para></listitem>
605
<listitem><para>the username</para></listitem>
609
<listitem><para>the username</para></listitem>
613
<listitem><para>the value of <option>UserPath</option>
614
(or <option>SystemPath</option> for
615
<systemitem class="username">root</systemitem> user sessions)</para>
620
<listitem><para>the user's default shell</para></listitem>
623
<term>XAUTHORITY</term>
624
<listitem><para>may be set to a non-standard authority file</para></listitem>
627
<term>KRBTKFILE</term>
628
<listitem><para>may be set to a Kerberos4 credentials cache name</para>
632
<term>KRB5CCNAME</term>
633
<listitem><para>may be set to a Kerberos5 credentials cache name</para>
637
<term>DM_CONTROL</term>
638
<listitem><para>the value of <option>FifoDir</option></para></listitem>
641
<term>XDM_MANAGED</term>
642
<listitem><para>will contain a comma-separated list of parameters the
643
session might find interesting, like which conversation
644
plugin was used for the login</para>
648
<term>DESKTOP_SESSION</term>
649
<listitem><para>the name of the session the user has chosen to run</para>
656
<sect2 id="kdmrc-xreset">
657
<title>Reset program</title>
659
<para>Symmetrical with <filename>Xstartup</filename>, the
660
<filename>Xreset</filename> program is run after the user session has
661
terminated. Run as <systemitem class="username">root</systemitem>, it should
662
contain commands that undo the effects of commands in
663
<filename>Xstartup</filename>, removing entries from <filename>utmp</filename>
664
or unmounting directories from file servers.</para>
666
<para>The environment variables that were passed to
667
<filename>Xstartup</filename> are also passed to <filename>Xreset</filename>.
678
# The rest of this file are section and key definitions for the options.
679
# The order of the keywords is fixed and everything is case sensitive.
680
# A keyword may expect supplementary data in the form of space-indented
681
# lines following it. Definitions are delimited by empty lines.
683
# Section definition:
685
# Section name. Section classes start with a dash.
687
# C preprocessor conditional for supporting this section.
688
# If it evaluates to false, all keys in this section are disabled as well.
690
# A docbook description of this section is expected in the next lines.
691
# The contents are automatically enclosed in <para></para>.
693
# Option key definition:
697
# C preprocessor conditional for supporting this option.
698
# Type: (int|bool|enum|group|string|path|list)
699
# The option's data type.
700
# If the type is enum, the element definitions follow in the next lines:
701
# <term>[/<c #define>]: <docbook style description>
703
# Default value. string, path and list are copied verbatim and therefore
704
# must be already quoted appropriately. The other types are auto-quoted.
705
# If the default value is prefixed with a "*", a c #define def_<Key> is
707
# The default is automatically appended to the kdmrc comment and the
708
# documentation entry.
709
# CDefault: <verbose default>
710
# Append this instead of the real default to the two docs. The quoting
711
# rules are the same as for Default.
713
# If specified, the default value will not be appended to the documentation
714
# entry. The Description should mention the default then. Use this when
715
# the default is system-dependent.
716
# PostProc: <function>
717
# A function to postprocess the read config value before using it.
718
# User: (dummy|(core|greeter|greeter-c|dep|config)[(<variable>)][:font])
719
# These entries specify which parts of kdm need the option in question:
720
# dummy: no user; entry is there only for syntactical correctness.
721
# dep: this option is an internal dependency for another option.
722
# config: this option configures the config reader itself.
723
# core: the kdm backend needs this option.
724
# greeter-c: the kdm frontend needs this option as a C data type.
725
# greeter: the kdm frontend needs this option as a C++/Qt data type.
726
# If a :font tag is appended, a string entry is converted to a QFont.
727
# If no variable name is specified, it will be derived from the Key by
728
# un-capitalizing it.
729
# Instance: (-|[#][<display spec>/](!|<value>))
730
# These entries specify option instances for the default/example kdmrc.
731
# A "-" entry is a dummy for syntactical correctness.
732
# A prefixing hash mark will be copied to kdmrc.
733
# For options in a section class a display must be specified.
734
# For bool options "!" can be used as the value to specify the negation
736
# Update: <function>[/<number>]
737
# Call this function on each occurence of this option in genkdmconf.
738
# Options with higher numbers (default is 0) will be processed later.
739
# Merge: xdm[:<resource>][(<function>)]
740
# Merge: kdm:[<section>/][<key>][(<function>)]
741
# Specify config options to merge from xdm and older kdm versions.
742
# Kdm options from the current version are automatically merged.
743
# When merging an xdm resource and no resource name is specified, it is
744
# derived from the Key by un-capitalizing it.
745
# When merging a kdm option, at least one of <section> and <key> must
746
# be given; an unspecified entity defaults to the current Section/Key.
747
# <section> may be a dash-prefixed section class.
748
# A function to postprocess the read value can be specified.
750
# A kdmrc comment for this option is expected in the next lines.
751
# If "-" is given to Comment, no comment is generated at all.
752
# If "&" is given, the comment is derived from the Description below by
753
# applying some simple docbook interpretation to it. Note that the
754
# Description must be preformatted in this case. Use
755
# sed -ne 's/^\(.\{79,\}\)$/\1/p' < kdmrc
756
# after running "make install" to see whether all lines still fit.
757
# If Type is enum, a list of the previously defined element/description
758
# pairs is appended; the descriptions undergo docbook interpretation.
759
# Finally, a sentence with the Default (or CDefault, if given) is appended.
761
# A docbook description of this option is expected in the next lines.
762
# The contents are automatically enclosed in <para></para>.
763
# If "-" is given to Description, no comment is generated at all.
764
# If "!" is given, enums are not treated specially; otherwise, the macro
765
# %ENUM% is replaced with a list of the defined element/description pairs,
766
# or - if the macro is not present - the list is appended to the
768
# Finally, a sentence with the Default (or CDefault, if given) is appended,
769
# unless "DDefault: -" was specified.
770
# Each option entry generates an anchor named option-<lowercase(Key)>;
771
# it can be referenced in the main documentation.
772
# Do not forget to run "make ref" in kdebase/doc/kdm after changing
777
This section contains global options that do not fit into any specific section.
784
# will be overwritten
787
This option exists solely for the purpose of a clean automatic upgrade.
788
Do not even think about changing it!
790
This option exists solely for the purpose of clean automatic upgrades.
791
<emphasis>Do not</emphasis> change it, you may interfere with future
792
upgrades and this could result in &kdm; failing to run.
797
Default: KDM_PAM_SERVICE
805
# note: this can miss Xservers from kdm for kde 2.2 because of stupid default.
806
Source: kdm:General/Xservers
816
List of permanent displays. Displays with a hostname are foreign. A display
817
class may be specified separated by an underscore.
819
List of displays (&X-Server;s) permanently managed by &kdm;. Displays with a
820
hostname are foreign displays which are expected to be already running,
821
the others are local displays for which &kdm; starts an own &X-Server;;
822
see <option>ServerCmd</option>. Each display may belong to a display class;
823
append it to the display name separated by an underscore.
824
See <xref linkend="kdmrc-xservers"/> for the details.
833
List of on-demand displays. See <option>StaticServers</option> for syntax.
836
If: defined(HAVE_VTS)
840
Instance: #"7,8,-9,-10"
841
Update: upd_servervts
843
VTs to allocate to &X-Server;s. A negative number means that the VT will be
844
used only if it is free. If all VTs in this list are used up, the next free
845
one greater than the last one in this list will be allocated.
847
List of Virtual Terminals to allocate to &X-Server;s. For negative numbers the
848
absolute value is used, and the <acronym>VT</acronym> will be allocated only
849
if the kernel says it is free. If &kdm; exhausts this list, it will allocate
850
free <acronym>VT</acronym>s greater than the absolute value of the last entry
852
Currently Linux only.
855
If: defined(HAVE_VTS)
859
Instance: #"tty1,tty2,tty3,tty4,tty5,tty6"
860
Update: upd_consolettys
862
TTYs (without /dev/) to monitor for activity while in console mode.
864
This option is for operating systems (<acronym>OS</acronym>s) with support
865
for virtual terminals (<acronym>VT</acronym>s), by both &kdm; and the
866
<acronym>OS</acronym>s itself.
867
Currently this applies only to Linux.
869
When &kdm; switches to console mode, it starts monitoring all
870
<acronym>TTY</acronym> lines listed here (without the leading
871
<literal>/dev/</literal>).
872
If none of them is active for some time, &kdm; switches back to the X login.
878
Instance: "/var/run/kdm.pid"
881
Where &kdm; should store its PID (do not store if empty).
883
The filename specified will be created to contain an ASCII representation
884
of the process ID of the main &kdm; process; the PID will not be stored
885
if the filename is empty.
894
Whether &kdm; should lock the PID file to prevent having multiple &kdm;
895
instances running at once. Do not change unless you are brave.
897
This option controls whether &kdm; uses file locking to keep multiple
898
display managers from running onto each other.
903
Default: "/var/run/xauth"
906
Merge: xdm(P_authDir)
908
Where to store authorization files.
910
This names a directory under which &kdm; stores &X-Server; authorization
911
files while initializing the session. &kdm; expects the system to clean up
912
this directory from stale files on reboot.
914
The authorization file to be used for a particular display can be
915
specified with the <option>AuthFile</option> option in [X-*-Core].
924
Whether &kdm; should automatically re-read configuration files, if it
925
finds them having changed.
927
This boolean controls whether &kdm; automatically re-reads its
928
configuration files if it finds them to have changed.
934
Instance: #"LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR"
938
Additional environment variables &kdm; should pass on to all programs it runs.
939
<envar>LD_LIBRARY_PATH</envar> and <envar>XCURSOR_THEME</envar> are good candidates;
940
otherwise, it should not be necessary very often.
943
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
950
A file &kdm; should read entropy from.
952
If the system has no native entropy source like /dev/urandom (see
953
<option>RandomDevice</option>) and no entropy daemon like EGD (see
954
<option>PrngdSocket</option> and <option>PrngdPort</option>) is running,
955
&kdm; will fall back to its own pseudo-random number generator
956
that will, among other things, successively checksum parts of this file
957
(which, obviously, should change frequently).
959
This option does not exist on Linux and various BSDs.
962
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
967
Instance: #"/tmp/entropy"
970
A UNIX domain socket &kdm; should read entropy from.
972
If the system has no native entropy source like /dev/urandom (see
973
<option>RandomDevice</option>), read random data from a Pseudo-Random
974
Number Generator Daemon,
975
like EGD (http://egd.sourceforge.net) via this UNIX domain socket.
977
This option does not exist on Linux and various BSDs.
980
If: !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
987
A TCP socket on localhost &kdm; should read entropy from.
989
Same as <option>PrngdSocket</option>, only use a TCP socket on localhost.
992
If: !defined(ARC4_RANDOM)
996
Instance: #"/dev/altrandom"
999
A character device &kdm; should read entropy from.
1000
Empty means use the system's preferred entropy device.
1002
The path to a character device which &kdm; should read random data from.
1003
Empty means to use the system's preferred entropy device if there is one.
1005
This option does not exist on OpenBSD, as it uses the arc4_random
1010
Default: *"/var/run/xdmctl"
1015
Where the command sockets should be created; make it empty to disable
1018
The directory in which the command sockets should
1019
be created; make it empty to disable them.
1020
# See <xref linkend="kdm-fifos"/> for the details.
1029
The group to which the global command socket should belong;
1030
can be either a name or a numerical ID.
1037
Update: upd_greeteruid
1040
The user the greeter should run as. Empty results in <systemitem class="username">root</systemitem>.
1041
Consider the impact on <option>LogSource</option> when setting it.
1045
Default: *"/var/lib/kdm"
1048
Update: upd_datadir/1
1050
The directory in which &kdm; should store persistent working data.
1052
The directory in which &kdm; should store persistent working data; such data
1053
is, for example, the previous user that logged in on a particular display.
1059
Instance: #"/nfs-shared/var/dmrcs"
1062
The directory in which &kdm; should store users' <filename>.dmrc</filename> files. This is only
1063
needed if the home directories are not readable before actually logging in
1070
This section contains options that control &kdm;'s handling of
1072
# See <xref linkend="xdmcp-with-kdm"/> to find out what &XDMCP; is.
1077
User: dep(xdmcpEnable)
1081
Whether &kdm; should listen to incoming &XDMCP; requests.
1086
PostProc: PrequestPort
1087
User: core(requestPort)
1089
Merge: xdm:requestPort(P_requestPort)
1091
The UDP port on which &kdm; should listen for &XDMCP; requests. Do not change.
1093
This indicates the UDP port number which &kdm; uses to listen for incoming
1094
&XDMCP; requests. Unless you need to debug the system, leave this with its
1101
Instance: #KDMCONF "/kdmkeys"
1105
File with the private keys of X-terminals. Required for XDM authentication.
1107
XDM-AUTHENTICATION-1 style &XDMCP; authentication requires a private
1108
key to be shared between &kdm; and the terminal. This option specifies
1109
the file containing those values. Each entry in the file consists of a
1110
display name and the shared key.
1115
Default: *KDMCONF "/Xaccess"
1116
User: config(Xaccess)
1119
Merge: xdm:accessFile
1121
&XDMCP; access control file in the usual XDM-Xaccess format.
1123
To prevent unauthorized &XDMCP; service and to allow forwarding of &XDMCP;
1124
IndirectQuery requests, this file contains a database of hostnames which
1125
are either allowed direct access to this machine, or have a list of hosts
1126
to which queries should be forwarded to. The format of this file is
1127
described in <xref linkend="kdmrc-xaccess"/>.
1136
Number of seconds to wait for display to respond after the user has
1137
selected a host from the chooser.
1139
Number of seconds to wait for the display to respond after the user has
1140
selected a host from the chooser. If the display sends an &XDMCP;
1141
IndirectQuery within this time, the request is forwarded to the chosen
1142
host; otherwise, it is assumed to be from a new session and the chooser
1145
Key: RemoveDomainname
1152
Strip domain name from remote display names if it is equal to the local
1155
When computing the display name for &XDMCP; clients, the name resolver will
1156
typically create a fully qualified host name for the terminal. As this is
1157
sometimes confusing, &kdm; will remove the domain name portion of the host
1158
name if it is the same as the domain name of the local host when this option
1168
Use the numeric IP address of the incoming connection on multihomed hosts
1169
instead of the host name.
1171
Use the numeric IP address of the incoming connection on multihomed hosts
1172
instead of the host name. This is to avoid trying to connect on the wrong
1173
interface which might be down at this time.
1179
# will be overwritten
1185
The program which is invoked to dynamically generate replies to &XDMCP;
1186
DirectQuery or BroadcastQuery requests.
1187
If empty, no program is invoked and "Willing to manage" is sent.
1189
This specifies a program which is run (as
1190
<systemitem class="username">root</systemitem>) when an &XDMCP;
1191
DirectQuery or BroadcastQuery is received and this host is configured
1192
to offer &XDMCP; display management. The output of this program may be
1193
displayed in a chooser window. If no program is specified, the string
1194
<quote>Willing to manage</quote> is sent.
1199
This section contains global options concerning system shutdown.
1208
The command (subject to word splitting) to run to halt the system.
1210
The command (subject to word splitting) to run to halt/poweroff the system.
1212
The default is something reasonable for the system on which &kdm; was built, like
1213
<command>/sbin/shutdown <option>-h</option> <parameter>now</parameter></command>.
1219
User: core(cmdReboot)
1222
The command (subject to word splitting) to run to reboot the system.
1224
The command (subject to word splitting) to run to reboot the system.
1226
The default is something reasonable for the system &kdm; on which was built, like
1227
<command>/sbin/shutdown <option>-r</option> <parameter>now</parameter></command>.
1232
User: core(fifoAllowShutdown)
1236
Whether it is allowed to shut down the system via the global command socket.
1241
User: core(fifoAllowNuke)
1244
Whether it is allowed to abort active sessions when shutting down the
1245
system via the global command socket.
1247
Whether it is allowed to abort active sessions when shutting down the
1248
system via the global command socket.
1250
This will have no effect unless <option>AllowFifo</option> is enabled.
1254
None/BO_NONE: no boot manager
1255
Grub/BO_GRUB: Grub boot manager
1256
Lilo/BO_LILO: Lilo boot manager (Linux on i386 & x86-64 only)
1261
Merge: kdm:UseLilo(P_UseLilo)
1264
The boot manager &kdm; should use for offering boot options in the
1270
This section class contains options concerning the configuration
1271
of the &kdm; backend (core).
1278
Merge: xdm(P_openDelay)
1280
How long to wait before retrying to connect a display.
1282
See <option>OpenRepeat</option>.
1291
How long to wait before timing out a display connection attempt.
1293
See <option>OpenRepeat</option>.
1302
How many connection attempts to make during a start attempt. Note that
1303
a timeout aborts the entire start attempt.
1305
These options control the behavior of &kdm; when attempting to open a
1306
connection to an &X-Server;. <option>OpenDelay</option> is the length
1307
of the pause (in seconds) between successive attempts,
1308
<option>OpenRepeat</option> is the number of attempts to make and
1309
<option>OpenTimeout</option> is the amount of time to spend on a
1310
connection attempt. After <option>OpenRepeat</option> attempts have been
1311
made, or if <option>OpenTimeout</option> seconds elapse in any particular
1312
connection attempt, the start attempt is considered failed.
1321
Try at most that many times to start a display. If this fails, the display
1324
How many times &kdm; should attempt to start a <literal>foreign</literal>
1325
display listed in <option>StaticServers</option> before giving up
1327
Local displays are attempted only once, and &XDMCP; displays are retried
1328
indefinitely by the client (unless the option <option>-once</option>
1329
was given to the &X-Server;).
1338
How often to try to run the &X-Server;. Running includes executing it and
1339
waiting for it to come up.
1341
How many times &kdm; should attempt to start up a local &X-Server;.
1342
Starting up includes executing it and waiting for it to come up.
1350
How long to wait for a local &X-Server; to come up.
1352
How many seconds &kdm; should wait for a local &X-Server; to come up.
1356
Default: DEF_SERVER_CMD
1359
Instance: :*/DEF_SERVER_CMD
1360
Update: upd_servercmd
1362
The command line to start the &X-Server;, without display number and VT spec.
1363
This string is subject to word splitting.
1365
The command line to start the &X-Server;, without display number and VT spec.
1366
Note that with some &X-Server;s (in particular, OpenSolaris') it is necessary
1367
to put most additional arguments into <option>ServerArgsLocal</option> and
1368
<option>ServerArgsRemote</option> even if they are the same for both.
1369
This string is subject to word splitting.
1371
The default is something reasonable for the system on which &kdm; was built,
1372
like <command>/usr/X11R6/bin/X</command>.
1374
Key: ServerArgsLocal
1378
Instance: :*/"-nolisten tcp"
1381
Additional arguments for the &X-Server;s for local sessions.
1382
This string is subject to word splitting.
1384
Key: ServerArgsRemote
1391
Additional arguments for the &X-Server;s for remote sessions.
1392
This string is subject to word splitting.
1395
If: defined(HAVE_VTS)
1398
User: core(reqSrvVT)
1401
The VT the &X-Server; should run on; auto-assign if zero, don't assign if -1.
1402
Better leave it zero and use ServerVTs.
1404
The VT the &X-Server; should run on.
1405
<option>ServerVTs</option> should be used instead of this option.
1406
Leave it zero to let &kdm; assign a <acronym>VT</acronym> automatically.
1407
Set it to <literal>-1</literal> to avoid assigning a <acronym>VT</acronym>
1408
alltogether - this is required for setups with multiple physical consoles.
1409
Currently Linux only.
1412
If: !defined(HAVE_VTS)
1416
Instance: :0/DEF_SERVER_TTY
1418
The TTY line (without /dev/) the &X-Server; covers physically.
1420
This option is for <acronym>OS</acronym>s without support for
1421
<acronym>VT</acronym>s, either by &kdm; or the <acronym>OS</acronym> itself.
1422
Currently this applies to all <acronym>OS</acronym>s but Linux.
1424
When &kdm; switches to console mode, it starts monitoring this
1425
<acronym>TTY</acronym> line (specified without the leading
1426
<literal>/dev/</literal>) for activity. If the line is not used for some time,
1427
&kdm; switches back to the X login.
1433
Instance: #:*/"_x11"
1436
The user the &X-Server; should run as. Empty results in <systemitem class="username">root</systemitem>.
1446
Ping remote display every that many minutes.
1448
See <option>PingTimeout</option>.
1458
Wait for a Pong that many minutes.
1460
To discover when <emphasis>remote</emphasis> displays disappear, &kdm;
1461
regularly pings them.
1462
<option>PingInterval</option> specifies the time (in minutes) between the
1463
pings and <option>PingTimeout</option> specifies the maximum amount of
1464
time (in minutes) to wait for the terminal to respond to the request. If
1465
the terminal does not respond, the session is declared dead and terminated.
1467
If you frequently use X terminals which can become isolated from
1468
the managing host, you may wish to increase the timeout. The only worry
1469
is that sessions will continue to exist after the terminal has been
1470
accidentally disabled.
1472
Key: TerminateServer
1479
Restart instead of resetting the local &X-Server; after session exit.
1480
Use it if the server leaks memory etc.
1482
Whether &kdm; should restart the local &X-Server; after session exit instead
1483
of resetting it. Use this if the &X-Server; leaks memory or crashes the system
1493
Create X-authorizations for local displays.
1495
Controls whether &kdm; generates and uses authorization for
1496
<emphasis>local</emphasis> &X-Server; connections.
1497
For &XDMCP; displays the authorization requested by the display is used;
1498
foreign non-&XDMCP; displays do not support authorization at all.
1502
Default: DEF_AUTH_NAME
1507
Which X-authorization mechanisms should be used.
1509
If <option>Authorize</option> is true, use the authorization mechanisms
1510
listed herein. The MIT-MAGIC-COOKIE-1 authorization is always available;
1511
XDM-AUTHORIZATION-1, SUN-DES-1 and MIT-KERBEROS-5 might be available as well,
1512
depending on the build configuration.
1521
Need to reset the &X-Server; to make it read initial Xauth file.
1523
Some <emphasis>old</emphasis> &X-Server;s re-read the authorization file
1524
at &X-Server; reset time, instead of when checking the initial connection.
1525
As &kdm; generates the authorization information just before connecting to
1526
the display, an old &X-Server; would not get up-to-date authorization
1527
information. This option causes &kdm; to send SIGHUP to the &X-Server;
1528
after setting up the file, causing an additional &X-Server; reset to occur,
1529
during which time the new authorization information will be read.
1534
User: core(clientAuthFile)
1538
The name of this &X-Server;'s Xauth file.
1539
If empty, a random name in the AuthDir directory will be used.
1541
This file is used to communicate the authorization data from &kdm; to
1542
the &X-Server;, using the <option>-auth</option> &X-Server; command line
1543
option. It should be kept in a directory which is not world-writable
1544
as it could easily be removed, disabling the authorization mechanism in
1545
the &X-Server;. If not specified, a random name is generated from
1546
<option>AuthDir</option> and the name of the display.
1549
# XXX strictly speaking this is supposed to be a string list, i think.
1554
Update: cp_resources
1557
Specify a file with X-resources for the greeter, chooser and background.
1558
The KDE frontend does not use this file, so you do not need it unless you
1559
use another background generator than krootimage.
1561
This option specifies the name of the file to be loaded by
1562
<command>xrdb</command> as the resource database onto the root window
1563
of screen 0 of the display. KDE programs generally do not use
1564
X-resources, so this option is only needed if the <option>Setup</option>
1565
program needs some X-resources.
1569
Default: XBINDIR "/xrdb"
1574
The xrdb program to use to read the above specified recources.
1575
Subject to word splitting.
1577
The <command>xrdb</command> program to use to read the X-resources file
1578
specified in <option>Recources</option>.
1579
The command is subject to word splitting.
1585
# will be overwritten
1590
A program to run before the greeter is shown. Can be used to start an
1591
xconsole or an alternative background generator. Subject to word splitting.
1593
This string is subject to word splitting.
1594
It specifies a program which is run (as
1595
<systemitem class="username">root</systemitem>) before offering the
1596
greeter window. This may be used to change the appearance of the screen
1597
around the greeter window or to put up other windows (e.g., you may want
1598
to run <command>xconsole</command> here).
1599
Usually, a script named <command>Xsetup</command> is used here.
1600
See <xref linkend="kdmrc-xsetup"/>.
1606
# will be overwritten
1611
A program to run before a user session starts. Subject to word splitting.
1613
This string is subject to word splitting.
1614
It specifies a program which is run (as
1615
<systemitem class="username">root</systemitem>) after the user
1616
authentication process succeeds.
1617
Usually, a script named <command>Xstartup</command> is used here.
1618
See <xref linkend="kdmrc-xstartup"/>.
1624
# will be overwritten
1629
A program to run after a user session exits. Subject to word splitting.
1631
This string is subject to word splitting.
1632
It specifies a program which is run (as
1633
<systemitem class="username">root</systemitem>) after the session
1635
Usually, a script named <command>Xreset</command> is used here.
1636
See <xref linkend="kdmrc-xreset"/>.
1640
Default: XBINDIR "/xterm -ls -T"
1641
#Merge: xdm - incompatible!
1643
# will be overwritten
1647
The program which is run as the user which logs in. It is supposed to
1648
interpret the session argument (see SessionsDirs) and start an appropriate
1649
session according to it. Subject to word splitting.
1651
This string is subject to word splitting.
1652
It specifies the session program to be executed (as the user owning
1654
Usually, a script named <command>Xsession</command> is used here.
1655
See <xref linkend="kdmrc-xsession"/>.
1659
Default: XBINDIR "/xterm"
1664
The program to run if Session fails.
1666
If the <option>Session</option> program fails to execute, &kdm; will
1667
fall back to this program. This program is executed with no arguments,
1668
but executes using the same environment variables as the session would
1669
have had (see <xref linkend="kdmrc-xsession"/>).
1673
Default: DEF_USER_PATH
1679
The PATH for the Session program.
1681
The <envar>PATH</envar> environment variable for
1682
non-<systemitem class="username">root</systemitem> <option>Session</option>s.
1684
The default depends on the system &kdm; was built on.
1688
Default: DEF_SYSTEM_PATH
1694
The PATH for Setup, Startup and Reset, etc.
1696
The <envar>PATH</envar> environment variable for all programs but
1697
non-<systemitem class="username">root</systemitem>
1698
<option>Session</option>s. Note that it is good practice not to include
1699
<literal>.</literal> (the current directory) into this entry.
1701
The default depends on the system &kdm; was built on.
1707
Instance: #*/"/bin/bash"
1710
The default system shell.
1712
The <envar>SHELL</envar> environment variable for all programs but the
1713
<option>Session</option>.
1722
Where to put the user's &X-Server; authorization file if ~/.Xauthority
1725
When &kdm; is unable to write to the usual user authorization file
1726
($<envar>HOME</envar>/.Xauthority), it creates a unique file name in this
1727
directory and points the environment variable <envar>XAUTHORITY</envar>
1728
at the created file.
1730
Key: ForceUserAuthDir
1737
If true, <option>UserAuthDir</option> will be used unconditionally.
1746
Whether to automatically restart sessions after &X-Server; crashes.
1747
Note that enabling this makes circumventing screen lockers other than
1748
KDE's built-in one possible!
1750
If enabled, &kdm; will automatically restart a session after an &X-Server;
1751
crash (or if it is killed by Alt-Ctrl-BackSpace). Note that enabling this
1752
feature opens a security hole: a secured display lock can be circumvented
1753
(unless &kde;'s built-in screen locker is used).
1759
User: greeter(showRoot)
1765
If disabled, do not allow <systemitem class="username">root</systemitem>
1766
(and any other user with UID = 0) to log in directly.
1768
Key: AllowNullPasswd
1777
Allow to log in, when user has set an empty password?
1779
If disabled, only users that have passwords assigned can log in.
1783
None/SHUT_NONE: no <guilabel>Shutdown...</guilabel> menu entry is shown at all
1784
Root/SHUT_ROOT: the <systemitem class="username">root</systemitem> password must be entered to shut down
1785
All/SHUT_ALL: everybody can shut down the machine
1791
Merge: kdm:-Greeter/
1794
Who is allowed to shut down the system. This applies both to the
1795
greeter and to the command sockets.
1797
Key: AllowSdForceNow
1799
None: no forced shutdown is allowed at all
1800
Root: the <systemitem class="username">root</systemitem> password must be entered to shut down forcibly
1801
All: everybody can shut down the machine forcibly
1803
User: core(allowNuke)
1804
User: greeter(allowNuke)
1808
Who is allowed to abort active sessions when shutting down.
1812
Schedule: shut down after all active sessions exit (possibly at once)
1813
TryNow: shut down, if no active sessions are open; otherwise, do nothing
1814
ForceNow: shut down unconditionally
1816
User: core(defSdMode)
1817
User: greeter(defSdMode)
1818
Instance: #*/ForceNow
1821
The default choice for the shutdown condition/timing.
1825
Never/SHUT_NEVER: not at all
1826
Optional/SHUT_OPTION: as a button in the simple shutdown dialogs
1827
Always/SHUT_ALWAYS: instead of the simple shutdown dialogs
1830
Instance: #*/Optional
1833
How to offer shutdown scheduling options:
1842
Enable password-less logins on this display. <emphasis>Use with extreme care!</emphasis>
1847
PostProc: PnoPassUsers
1849
Instance: #:*/"fred,ethel"
1850
Merge: xdm(P_noPassUsers)
1852
The users that do not need to provide a password to log in. NEVER list root!
1853
"*" means all non-root users. @<group> means all users in that group.
1855
The users that do not need to provide a password to log in.
1856
Items which are prefixed with <literal>@</literal> represent all users in the
1857
user group named by that item.
1858
<literal>*</literal> means all users but
1859
<systemitem class="username">root</systemitem>
1860
(and any other user with UID = 0).
1861
<emphasis>Never</emphasis> list <systemitem class="username">root</systemitem>.
1863
Key: AutoLoginEnable
1870
Enable automatic login. <emphasis>Use with extreme care!</emphasis>
1875
User: core(autoAgain)
1880
If true, auto-login after logout. If false, auto-login is performed only
1881
when a display session starts up.
1886
User: core(autoDelay)
1890
The delay in seconds before automatic login kicks in.
1892
The delay in seconds before automatic login kicks in. This is also known as
1893
<quote>Timed Login</quote>.
1898
PostProc: PautoLoginX
1899
User: core(autoUser)
1901
Instance: #:0/"fred"
1902
Merge: xdm:autoUser(P_autoUser)
1905
The user to log in automatically. <emphasis>Never</emphasis> specify <systemitem class="username">root</systemitem>!
1910
PostProc: PautoLoginX
1911
User: core(autoPass)
1912
Instance: #:0/"secret!"
1913
Merge: xdm:autoPass(P_autoPass)
1916
The password for the user to log in automatically. This is <emphasis>not</emphasis> required
1917
unless the user is logged into a <acronym>NIS</acronym> or Kerberos domain. If you use this
1918
option, you should <command>chmod <option>600</option> <filename>kdmrc</filename></command> for obvious reasons.
1920
Key: AutoLoginLocked
1923
User: core(autoLock)
1927
Immediately lock the automatically started session. This works only with
1932
Default: *KDMDATA "/sessions"
1935
Instance: */KDMCONF "/sessions," KDMDATA "/sessions"
1936
Update: upd_sessionsdirs
1938
The directories containing session type definitions in .desktop format,
1939
ordered by falling priority.
1941
A list of directories containing session type definitions.
1942
Ordered by falling priority.
1943
# See <xref linkend="kdmrc-sessions"> for details.
1947
Default: ".xsession-errors"
1949
Instance: */".xsession-errors-%d"
1950
Instance: :0/".xsession-errors"
1951
Update: upd_userlogfile
1953
The file (relative to $HOME) to redirect the session output to. The
1954
following character pairs are replaced:
1955
- %d -> current display
1956
- %u -> current user
1957
- %r -> empty at first. See below.
1959
When the constructed filename cannot be used safely and the specification
1960
contains %<stuff>r, other names will be tried - this time expanding %<stuff>r
1961
to <stuff> followed by a random number.
1963
The file (relative to the user's home directory) to redirect the session
1966
The following character pairs are replaced by their value:
1969
<term><parameter>%d</parameter></term>
1970
<listitem><para>name of the current display</para></listitem>
1973
<term><parameter>%u</parameter></term>
1974
<listitem><para>login name of the current user</para></listitem>
1977
<term><parameter>%r</parameter></term>
1978
<listitem><para>empty at first. See below.</para></listitem>
1981
<term><parameter>%%</parameter></term>
1982
<listitem><para>a single <literal>%</literal></para></listitem>
1985
When the constructed filename cannot be used safely and the specification
1987
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>,
1988
other names will be tried - this time expanding
1989
<literal>%</literal><replaceable>stuff</replaceable><literal>r</literal>
1990
to <replaceable>stuff</replaceable> followed by a random number.
1992
Key: ClientLogFallback
1994
Default: "/tmp/xerr-%u-%d%-r"
1996
Instance: #*/"/var/log/xsession-errors/%u-%d%-r"
1999
Fallback when <option>ClientLogFile</option> cannot be used. The same expansions are
2000
supported. <emphasis>Do not</emphasis> use relative paths here.
2008
Whether &kdm;'s built-in utmp/wtmp/lastlog registration should be used.
2010
Specify whether &kdm;'s built-in utmp/wtmp/lastlog registration should
2011
be used. If it is not, the tool <command>sessreg</command> should be used
2012
in the <option>Startup</option> and <option>Reset</option> scripts, or,
2013
alternatively, the pam_lastlog module should be used on
2014
<acronym>PAM</acronym>-enabled systems.
2019
This section class contains options concerning the configuration
2020
of the &kdm; frontend (greeter).
2026
Instance: #*/"Plastique"
2027
Update: upd_guistyle
2030
Specify the widget style for the greeter. Empty means to use the
2031
built-in default which currently is <literal>Oxygen-air</literal>.
2037
Instance: #*/"MidnightMeadow"
2040
Specify the widget color scheme for the greeter. Empty means to use the
2041
built-in default which currently is <literal>Oxygen-air</literal>.
2045
None/LOGO_NONE: nothing
2046
Logo/LOGO_LOGO: the image specified by <option>LogoPixmap</option>
2047
Clock/LOGO_CLOCK: a neat analog clock
2052
What should be shown in the greeter's logo are:
2054
What should be shown in the greeter righthand of the input lines (if
2055
<option>UserList</option> is disabled) or above them (if
2056
<option>UserList</option> is enabled):
2062
Instance: */KDMDATA "/pics/kdelogo.png"
2064
The image to show when LogoArea=Logo.
2066
The image to show in the greeter if <option>LogoArea</option> is
2067
<literal>Logo</literal>.
2073
Instance: #*/"30,40"
2075
The relative coordinates (X,Y in percent) of the center of the greeter.
2077
The relative coordinates (percentages of the screen size; X,Y) at which
2078
the center of the greeter is put. &kdm; aligns the greeter to the edges
2079
of the screen it would cross otherwise.
2088
The screen the greeter should be displayed on in multi-headed and Xinerama
2089
setups. The numbering starts with 0. For Xinerama, it corresponds to the
2090
listing order in the active ServerLayout section of XF86Config; -1 means
2091
to use the upper-left screen, -2 means to use the upper-right screen.
2095
Default: "Welcome to %s at %n"
2097
Instance: #*/"K Desktop Environment (%n)"
2099
The headline in the greeter. The following character pairs are replaced:
2100
- %d -> current display
2101
- %h -> host name, possibly with domain name
2102
- %n -> node name, most probably the host name without domain name
2103
- %s -> the operating system
2104
- %r -> the operating system's version
2105
- %m -> the machine (hardware) type
2108
The headline in the greeter. An empty greeting means none at all.
2110
The following character pairs are replaced by their value:
2113
<term><parameter>%d</parameter></term>
2114
<listitem><para>name of the current display</para></listitem>
2117
<term><parameter>%h</parameter></term>
2118
<listitem><para>local host name, possibly with the
2119
domain name</para></listitem>
2122
<term><parameter>%n</parameter></term>
2123
<listitem><para>local node name, most probably the host name without the
2124
domain name</para></listitem>
2127
<term><parameter>%s</parameter></term>
2128
<listitem><para>operating system</para></listitem>
2131
<term><parameter>%r</parameter></term>
2132
<listitem><para>operating system version</para></listitem>
2135
<term><parameter>%m</parameter></term>
2136
<listitem><para>machine (hardware) type</para></listitem>
2139
<term><parameter>%%</parameter></term>
2140
<listitem><para>a single <literal>%</literal></para></listitem>
2144
# This needs to come _in front_ of the font settings to be effective!
2152
Whether the fonts used in the greeter should be antialiased.
2156
Default: "Serif,20,-1,5,50,0,0,0,0,0"
2157
CDefault: "Serif 20pt bold"
2159
Instance: #*/"Serif,20,-1,5,50,0,0,0,0,0"
2162
The font for the greeter headline. The value is encoded.
2166
Default: "Sans Serif,10,-1,5,50,0,0,0,0,0"
2167
CDefault: "Sans Serif 10pt"
2168
User: greeter(normalFont):font
2169
Instance: #*/"Sans Serif,10,-1,5,50,0,0,0,0,0"
2172
The normal font used in the greeter. The value is encoded.
2176
Default: "Sans Serif,10,-1,5,75,0,0,0,0,0"
2177
CDefault: "Sans Serif 10pt bold"
2179
Instance: #*/"Sans Serif,10,-1,5,75,0,0,0,0,0"
2182
The font used for the <quote>Login Failed</quote> message. The value is encoded.
2188
Keep: do not change the state
2190
User: greeter(numLockStatus)
2194
What to do with the Num Lock modifier for the time the greeter is running:
2200
Instance: #*/"de_DE"
2201
Update: upd_language
2204
Language and locale to use in the greeter, encoded like $<envar>LANGUAGE</envar>.
2205
If empty, the settings from the environment are used.
2214
Enable autocompletion in the username line edit.
2222
Enable user list (names along with images) in the greeter.
2224
Show a user list with unix login names, real names, and images in the greeter.
2228
NotHidden/SHOW_ALL: all users except those listed in HiddenUsers
2229
Selected/SHOW_SEL: only the users listed in SelectedUsers
2232
Instance: #*/Selected
2233
Update: upd_showusers
2235
User selection for UserCompletion and UserList:
2237
This option controls which users will be shown in the user view
2238
(<option>UserList</option>) and/or offered for autocompletion
2239
(<option>UserCompletion</option>).
2240
If it is <literal>Selected</literal>, <option>SelectedUsers</option> contains
2241
the final list of users.
2242
If it is <literal>NotHidden</literal>, the initial user list contains all
2243
users found on the system. Users contained in <option>HiddenUsers</option> are
2244
removed from the list, just like all users with a UID greater than specified
2245
in <option>MaxShowUID</option> and users with a non-zero UID less than
2246
specified in <option>MinShowUID</option>.
2247
Items in <option>SelectedUsers</option> and <option>HiddenUsers</option>
2248
which are prefixed with <literal>@</literal> represent all users in the
2249
user group named by that item.
2250
Finally, the user list will be sorted alphabetically, if
2251
<option>SortUsers</option> is enabled.
2256
User: greeter-c(users)
2257
Instance: #*/"root,johndoe"
2260
For ShowUsers=Selected. @<group> means all users in that group.
2262
See <option>ShowUsers</option>.
2267
User: greeter-c(noUsers)
2269
# depends on {Min,Max}ShowUID
2270
Update: upd_hiddenusers/1
2273
For ShowUsers=NotHidden. @<group> means all users in that group.
2275
See <option>ShowUsers</option>.
2280
User: greeter(lowUserId)
2281
# will be overwritten
2283
Update: upd_minshowuid
2285
Special case of HiddenUsers: users with a non-zero UID less than this number
2286
will not be shown as well.
2288
See <option>ShowUsers</option>.
2293
User: greeter(highUserId)
2294
# will be overwritten
2296
Update: upd_maxshowuid
2298
Complement to MinShowUID: users with a UID greater than this number will
2299
not be shown as well.
2301
See <option>ShowUsers</option>.
2309
If false, the users are listed in the order they appear in /etc/passwd.
2310
If true, they are sorted alphabetically.
2312
See <option>ShowUsers</option>.
2316
AdminOnly/FACE_ADMIN_ONLY: from <filename><<option>FaceDir</option>>/$<envar>USER</envar>.face[.icon]</filename>
2317
PreferAdmin/FACE_PREFER_ADMIN: prefer <<option>FaceDir</option>>, fallback on $<envar>HOME</envar>
2318
PreferUser/FACE_PREFER_USER: ... and the other way round
2319
UserOnly/FACE_USER_ONLY: from the user's <filename>$<envar>HOME</envar>/.face[.icon]</filename>
2322
Instance: #*/PreferUser
2324
Specify, where the users' pictures should be taken from.
2326
If <option>UserList</option> is enabled, this specifies where &kdm; gets the
2331
The images can be in any format Qt recognizes, but the filename
2332
must match &kdm;'s expectations: <literal>.face.icon</literal> should be a
2333
48x48 icon, while <literal>.face</literal> should be a 300x300 image.
2334
Currently the big image is used only as a fallback and is scaled down,
2335
but in the future it might be displayed full-size in the logo area or a
2337
To be accessible to &kdm;, the images must be world readable and their
2338
parent directories must be world executable.
2342
Default: *KDMDATA "/faces"
2344
Instance: #*/"/usr/share/faces"
2347
The directory containing the user images if FaceSource is not UserOnly.
2349
See <option>FaceSource</option>.
2353
None/PRESEL_NONE: do not preselect any user
2354
Previous/PRESEL_PREV: the user which successfully logged in last time
2355
Default/PRESEL_DEFAULT: the user specified in the <option>DefaultUser</option> option
2357
User: greeter(preselUser)
2358
Instance: #*/Previous
2359
Instance: :*/Previous
2360
Instance: #:0/Default
2362
Specify, if/which user should be preselected for log in.
2364
Specify, if/which user should be preselected for log in:
2368
If <option>FocusPasswd</option> is enabled and a user was preselected,
2369
the cursor is placed in the password input field automatically.
2371
<note><para>Enabling user preselection can be considered a security hole,
2372
as it presents a valid login name to a potential attacker, so he
2373
<quote>only</quote> needs to guess the password. On the other hand,
2374
one could set <option>DefaultUser</option> to a fake login name.</para></note>
2381
Instance: #:0/"johndoe"
2383
The user to preselect if PreselectUser=Default.
2385
See <option>PreselectUser</option>.
2394
If this is true, the password input line is focused automatically if
2395
a user is preselected.
2397
See <option>PreselectUser</option>.
2404
Merge: kdm:EchoMode(P_EchoMode)
2407
If this is true, the entered password is echoed as bullets. Otherwise,
2408
no feedback is given at all.
2416
If true, krootimage will be automatically started by &kdm;; otherwise, the
2417
Setup script should be used to setup the background.
2419
If enabled, &kdm; will automatically start the <command>krootimage</command>
2420
program to set up the background; otherwise, the <option>Setup</option>
2421
program is responsible for the background.
2425
Default: *KDMCONF "/backgroundrc"
2430
The configuration file to be used by krootimage.
2432
The configuration file to be used by <command>krootimage</command>.
2433
It contains a section named <literal>[Desktop0]</literal> like
2434
<filename>kdesktoprc</filename> does. Its options are not described
2435
herein; guess their meanings or use the control center.
2439
Never/GRAB_NEVER: never grab
2440
IfNoAuth/GRAB_IFNOAUTH: grab if the display requires no X authorization
2441
Always/GRAB_ALWAYS: always grab
2443
User: greeter-c(grabInputPre)
2446
Whether to grab keyboard and mouse while the greeter is visible. Grabs
2447
may improve security, but make on-screen keyboards, etc. unusable.
2449
To improve security, the greeter may grab mouse and keyboard input so
2450
no other X clients can eavesdrop it. However, the X authorization
2451
mechanism will usually prevent malicious X clients from connecting
2452
in the first place. Consequently, enabling grabs for local displays
2453
is pointless and only marginally improves security for remote displays.
2455
<note><para>The mouse grab will make on-screen keyboards unusable.
2465
Hold the &X-Server; grabbed the whole time the greeter is visible. This
2466
may be more secure, but it will disable any background and other
2467
X-clients started from the Setup script.
2469
To improve security, the greeter grabs the &X-Server; and then the input
2470
when it starts up. This option specifies if the &X-Server; grab should be held
2471
for the duration of the name/password reading. When disabled, the &X-Server;
2472
is ungrabbed after the input grabs succeed; otherwise, the &X-Server; is
2473
grabbed until just before the session begins.
2475
<note><para>Enabling this option disables <option>UseBackground</option> and
2476
<option>Setup</option>.</para></note>
2485
How many seconds to wait for grab to succeed.
2487
This option specifies the maximum time &kdm; will wait for the grabs to
2488
succeed. A grab may fail if some other X-client has the &X-Server; or the
2489
keyboard grabbed, or possibly if the network latencies are very high. You
2490
should be cautious when raising the timeout, as a user can be spoofed by
2491
a look-alike window on the display. If a grab fails, &kdm; kills and
2492
restarts the &X-Server; (if possible) and the session.
2501
Warn, if display has no X-authorization (local auth cannot be created,
2502
&XDMCP; display wants no auth, or display is foreign from StaticServers).
2504
Warn, if a display has no X-authorization. This will be the case if
2507
the authorization file for a local &X-Server; could not be created,
2510
a remote display from &XDMCP; did not request any authorization or
2513
the display is a <quote>foreign</quote> display specified in
2514
<option>StaticServers</option>.
2521
LocalOnly/LOGIN_LOCAL_ONLY: only local login possible
2522
DefaultLocal/LOGIN_DEFAULT_LOCAL: start up in local mode, but allow switching to remote mode
2523
DefaultRemote/LOGIN_DEFAULT_REMOTE: ... and the other way round
2524
RemoteOnly/LOGIN_REMOTE_ONLY: only choice of remote host possible
2528
Instance: :*/DefaultLocal
2529
# from make_it_cool branch and SuSE 8.1
2530
Merge: kdm:EnableChooser(P_EnableChooser)
2533
Specify whether the greeter of local displays should start up in host chooser
2534
(remote) or login (local) mode and whether it is allowed to switch to the
2542
Instance: #:*/"*,host1,host2,host3.local,login.domain.com"
2544
A list of hosts to be automatically added to the remote login menu. The
2545
special name "*" means broadcast.
2547
A list of hosts to be automatically added to the remote login menu.
2548
The special name <literal>*</literal> means broadcast.
2549
Has no effect if <option>LoginMode</option> is <literal>LocalOnly</literal>.
2556
Update: upd_forgingseed
2558
Random seed for forging saved session types, etc. of unknown users.
2559
This value should be random but constant across the login domain.
2561
Use this number as a random seed when forging saved session types, etc. of
2562
unknown users. This is used to avoid telling an attacker about existing users
2563
by reverse conclusion. This value should be random but constant across the
2567
If: defined(WITH_KDM_XCONSOLE)
2573
Enable &kdm;'s built-in xconsole. Note that this can be enabled for only
2574
one display at a time.
2576
Enable &kdm;'s built-in <command>xconsole</command>.
2577
Note that this can be enabled for only one display at a time.
2578
This option is available only if &kdm; was <command>configure</command>d
2579
with <option>--enable-kdm-xconsole</option>.
2582
If: defined(WITH_KDM_XCONSOLE)
2586
Instance: :0/"/dev/xconsole"
2588
The data source for &kdm;'s built-in xconsole.
2589
If empty, a console log redirection is requested from /dev/console.
2591
The data source for &kdm;'s built-in <command>xconsole</command>.
2592
If empty, a console log redirection is requested from
2593
<filename>/dev/console</filename>.
2594
Has no effect if <option>ShowLog</option> is disabled.
2602
Specify conversation plugins for the login dialog. Each plugin can be
2603
specified as a base name (which expands to $kde_modulesdir/kgreet_$base)
2604
or as a full pathname.
2606
Specify conversation plugins for the login dialog; the first in the list
2607
is selected initially.
2608
Each plugin can be specified as a base name (which expands to
2609
<filename>$<envar>kde_modulesdir</envar>/kgreet_<replaceable>base</replaceable></filename>)
2610
or as a full pathname.
2612
Conversation plugins are modules for the greeter which obtain authentication
2613
data from the user. Currently only the <literal>classic</literal> plugin is
2614
shipped with &kde;; it presents the well-known username and password form.
2616
Key: PluginsShutdown
2620
Instance: #*/"modern"
2623
Same as <option>PluginsLogin</option>, but for the shutdown dialog.
2629
Instance: #*/"SomeKey=randomvalue,Foo=bar"
2631
A list of options of the form Key=Value. The conversation plugins can query
2632
these settings; it is up to them what possible keys are.
2634
A list of options of the form
2635
<replaceable>Key</replaceable><literal>=</literal><replaceable>Value</replaceable>.
2636
The conversation plugins can query these settings; it is up to them what
2642
User: greeter(hasConsole)
2646
Show the <guilabel>Console Login</guilabel> action in the greeter (if <option>ServerTTY</option>/<option>ConsoleTTYs</option>
2656
Show the <guilabel>Restart X Server</guilabel>/<guilabel>Close Connection</guilabel> action in the greeter.
2662
Instance: */KDE_BINDIR "/preloadkde"
2663
Update: upd_preloader
2666
A program to run while the greeter is visible. It is supposed to preload
2667
as much as possible of the session that is going to be started (most
2677
Whether the greeter should be themed.
2683
Instance: */KDMDATA "/themes/horos"
2686
The theme to use for the greeter. Can point to either a directory or an XML
2689
Key: AllowThemeDebug
2696
Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging.