You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/tdm/config.def

2684 lines
86 KiB

#
# Copyright 2010 Timothy Pearson <kb9vqf@pearsoncomputing.net>
# Copyright 2004-2005 Oswald Buddenhagen <ossi@kde.org>
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of a copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
#
# The contents of this section are copied into config.ci verbatim.
<code>
#define RCVERMAJOR 2
#define RCVERMINOR 3
#define TDMCONF KDE_CONFDIR "/tdm"
#define TDMDATA KDE_DATADIR "/tdm"
#ifdef _AIX
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
# define HALT_CMD "/sbin/shutdown -h now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"
# define REBOOT_CMD "/usr/sbin/reboot"
#else
# define HALT_CMD "/sbin/poweroff"
# define REBOOT_CMD "/sbin/reboot"
#endif
#if defined(BSD) || defined(__linux__)
# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"
# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/opt/trinity/sbin:/usr/sbin:/opt/trinity/bin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
#else
# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/ucb"
# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/opt/trinity/sbin:/usr/sbin:/opt/trinity/bin:/usr/bin:/sbin:/bin:/etc:/usr/ucb"
#endif
#if 0 /*def HASXDMAUTH*/
# define DEF_AUTH_NAME "XDM-AUTHORIZATION-1,MIT-MAGIC-COOKIE-1"
#else
# define DEF_AUTH_NAME "MIT-MAGIC-COOKIE-1"
#endif
#ifdef __linux__
# define HAVE_VTS
#elif defined(__sun__)
# define DEF_SERVER_TTY "console"
#elif defined(_AIX)
# define DEF_SERVER_TTY "lft0"
#else
# define DEF_SERVER_TTY ""
#endif
#ifdef _AIX
# define DEF_SERVER_CMD XBINDIR "/X -T -force"
#elif defined(__linux__) || defined(__GNU__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
/* we just assume that any free *nix installation has a recent xfree86/xorg */
# define DEF_SERVER_CMD XBINDIR "/X -br"
#else
# define DEF_SERVER_CMD XBINDIR "/X"
#endif
#if defined(__NetBSD__) && !defined(__powerpc__)
# define DEF_SERVER_ARGS "-nolisten tcp vt05"
#else
# define DEF_SERVER_ARGS "-nolisten tcp"
#endif
</code>
# The contents of this section are copied mostly verbatim to the
# default/example configuration file.
# Everything indented with a space is considered a comment for the output;
# it is prefixed with a hash mark but otherwise copied verbatim (except
# for lines consisting of a single underscore, which generate empty comment
# lines).
# Section headers are "condensation seeds" for the Instance:s in the key
# definitions below.
<tdmrc>
&tdm; master configuration file
_
Please note: Settings in this file are sometimes ignored (overridden).
The default TDM startup script /etc/init.d/tdm looks in /etc/default/tdm.d
for theme-related settings which, if found, take precedence. The possibly
overridden settings are: UseBackground, BackgroundCfg, UseTheme, Theme.
In addition, if a tdmdistrc file is found, this file will be ignored.
If a tdmdistrc file is installed, changes should be made to that file.
You may find more details in distribution specific files if present, like
for example /usr/share/doc/tdm-trinity/README.Debian for Debian-based distros.
_
Definition: the greeter is the login dialog, i.e., the part of &tdm;
which the user sees.
_
You can configure every X-display individually.
Every display has a display name, which consists of a host name
(which is empty for local displays specified in {Static|Reserve}Servers),
a colon, and a display number. Additionally, a display belongs to a
display class (which can be ignored in most cases; the control center
does not support this feature at all).
Sections with display-specific settings have the formal syntax
"[X-" host [":" number [ "_" class ]] "-" sub-section "]"
You can use the "*" wildcard for host, number, and class. You may omit
trailing components; they are assumed to be "*" then.
The host part may be a domain specification like ".inf.tu-dresden.de".
It may also be "+", which means non-empty, i.e. remote displays only.
From which section a setting is actually taken is determined by these
rules:
- an exact match takes precedence over a partial match (for the host part),
which in turn takes precedence over a wildcard ("+" taking precedence
over "*")
- precedence decreases from left to right for equally exact matches
Example: display name "myhost:0", class "dpy".
[X-myhost:0_dpy] precedes
[X-myhost:0_*] (same as [X-myhost:0]) precedes
[X-myhost:*_dpy] precedes
[X-myhost:*_*] (same as [X-myhost]) precedes
[X-+:0_dpy] precedes
[X-*:0_dpy] precedes
[X-*:0_*] (same as [X-*:0]) precedes
[X-*:*_*] (same as [X-*])
These sections do NOT match this display:
[X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
If a setting is not found in any matching section, the default is used.
_
Every comment applies to the following section or key. Note that all
comments will be lost if you change this file with the kcontrol frontend.
The defaults refer to &tdm;'s built-in values, not anything set in this file.
_
Special characters need to be backslash-escaped (leading and trailing
spaces (\\s), tab (\\t), linefeed (\\n), carriage return (\\r) and the
backslash itself (\\\\)).
In lists, fields are separated with commas without whitespace in between.
Some command strings are subject to simplified sh-style word splitting:
single quotes (') and double quotes (") have the usual meaning; the backslash
quotes everything (not only special characters). Note that the backslashes
need to be doubled because of the two levels of quoting.
[General]
[Xdmcp]
[Shutdown]
Rough estimations about how many seconds &tdm; will spend at most on
- opening a connection to the X-server (OpenTime) if the attempt
- times out: OpenTimeout
- is refused: OpenRepeat * OpenDelay
- starting a local X-server (ServerTime):
ServerAttempts * (ServerTimeout + OpenDelay)
- starting a display:
- local display: ServerTime + OpenTime
- foreign display: StartAttempts * OpenTime
- &XDMCP; display: OpenTime (repeated indefinitely by client)
Core config for all displays
[X-*-Core]
Greeter config for all displays
[X-*-Greeter]
Core config for local displays
[X-:*-Core]
Greeter config for local displays
[X-:*-Greeter]
Core config for 1st local display
[X-:0-Core]
Greeter config for 1st local display
[X-:0-Greeter]
</tdmrc>
# The contents of this section are copied into tdmrc-ref.docbook.
# The macro %REF% is replaced with the accumulated Description:s from the key
# definitions below.
<docu>
<chapter id="tdm-files">
<title>The Files &tdm; Uses for Configuration</title>
<para>This chapter documents the files that control &tdm;'s behavior.
Some of this can be also controlled from the &kcontrol; module, but
not all.</para>
<sect1 id="tdmrc">
<title>&tdmrc; - The &tdm; master configuration file</title>
<para>The basic format of the file is <quote>INI-like</quote>.
Options are key/value pairs, placed in sections.
Everything in the file is case sensitive.
Syntactic errors and unrecognized key/section identifiers cause &tdm; to
issue non-fatal error messages.</para>
<para>Lines beginning with <literal>#</literal> are comments; empty lines
are ignored as well.</para>
<para>Sections are denoted by
<literal>[</literal><replaceable>Name of Section</replaceable><literal>]</literal>.
</para>
<para>You can configure every X-display individually.</para>
<para>Every display has a display name, which consists of a host name
(which is empty for local displays specified in <option>StaticServers</option>
or <option>ReserveServers</option>), a colon, and a display number.
Additionally, a display belongs to a
display class (which can be ignored in most cases).</para>
<para>Sections with display-specific settings have the formal syntax
<literal>[X-</literal>&nbsp;<replaceable>host</replaceable>&nbsp;[&nbsp;<literal>:</literal>&nbsp;<replaceable>number</replaceable>&nbsp;[&nbsp;<literal>_</literal>&nbsp;<replaceable>class</replaceable>&nbsp;]&nbsp;]&nbsp;<literal>-</literal>&nbsp;<replaceable>sub-section</replaceable>&nbsp;<literal>]</literal>
</para>
<para>All sections with the same <replaceable>sub-section</replaceable>
make up a section class.</para>
<para>You can use the wildcard <literal>*</literal> (match any) for
<replaceable>host</replaceable>, <replaceable>number</replaceable>,
and <replaceable>class</replaceable>. You may omit trailing components;
they are assumed to be <literal>*</literal> then. The host part may be a
domain specification like <replaceable>.inf.tu-dresden.de</replaceable>
or the wildcard <literal>+</literal> (match non-empty).</para>
<para>From which section a setting is actually taken is determined by
these rules:</para>
<itemizedlist>
<listitem>
<para>An exact match takes precedence over a partial match (for the
host part), which in turn takes precedence over a wildcard
(<literal>+</literal> taking precendence over <literal>*</literal>).</para>
</listitem>
<listitem>
<para>Precedence decreases from left to right for equally exact matches.</para>
</listitem>
<listitem>
<para>
Example: display name <quote>myhost.foo:0</quote>, class <quote>dpy</quote>
</para>
<itemizedlist>
<listitem>
<para>[X-myhost.foo:0_dpy] precedes</para>
</listitem>
<listitem>
<para>[X-myhost.foo:0_*] (same as [X-myhost.foo:0]) precedes</para>
</listitem>
<listitem>
<para>[X-myhost.foo:*_dpy] precedes</para>
</listitem>
<listitem>
<para>[X-myhost.foo:*_*] (same as [X-myhost.foo]) precedes</para>
</listitem>
<listitem>
<para>[X-.foo:*_*] (same as [X-.foo]) precedes</para>
</listitem>
<listitem>
<para>[X-+:0_dpy] precedes</para>
</listitem>
<listitem>
<para>[X-*:0_dpy] precedes</para>
</listitem>
<listitem>
<para>[X-*:0_*] (same as [X-*:0]) precedes</para>
</listitem>
<listitem>
<para>[X-*:*_*] (same as [X-*]).</para>
</listitem>
<listitem>
<para>These sections do <emphasis>not</emphasis> match this display:</para>
<para>[X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<para>Common sections are [X-*] (all displays), [X-:*] (all local displays)
and [X-:0] (the first local display).</para>
<para>The format for all keys is
<userinput><option><replaceable>key</replaceable></option>&nbsp;<literal>=</literal>&nbsp;<parameter>value</parameter></userinput>.
Keys are only valid in the section class they are defined for.
Some keys do not apply to particular displays, in which case they are ignored.
</para>
<para>If a setting is not found in any matching section, the default
is used.</para>
<para>Special characters need to be backslash-escaped (leading and trailing
spaces (<literal>\s</literal>), tab (<literal>\t</literal>), linefeed
(<literal>\n</literal>), carriage return (<literal>\r</literal>) and the
backslash itself (<literal>\\</literal>)).</para>
<para>In lists, fields are separated with commas without whitespace in between.
</para>
<para>Some command strings are subject to simplified sh-style word splitting:
single quotes (<literal>'</literal>) and double quotes (<literal>"</literal>)
have the usual meaning; the backslash quotes everything (not only special
characters). Note that the backslashes need to be doubled because of the
two levels of quoting.</para>
<note><para>A pristine &tdmrc; is very thoroughly commented.
All comments will be lost if you change this file with the
kcontrol frontend.</para></note>
%REF%
</sect1>
<sect1 id="tdmrc-xservers">
<title>Specifying permanent &X-Server;s</title>
<para>Each entry in the <option>StaticServers</option> list indicates a
display which should constantly be
managed and which is not using &XDMCP;. This method is typically used only for
local &X-Server;s that are started by &tdm;, but &tdm; can manage externally
started (<quote>foreign</quote>) &X-Server;s as well, may they run on the
local machine or rather remotely.</para>
<para>The formal syntax of a specification is
<screen>
<userinput><replaceable>display&nbsp;name</replaceable>&nbsp;[<literal>_</literal><replaceable>display&nbsp;class</replaceable>]</userinput>
</screen>
for all &X-Server;s. <quote>Foreign</quote> displays differ in having
a host name in the display name, may it be <literal>localhost</literal>.</para>
<para>The <replaceable>display name</replaceable> must be something that can
be passed in the <option>-display</option> option to an X program. This string
is used to generate the display-specific section names, so be careful to match
the names.
The display name of &XDMCP; displays is derived from the display's address by
reverse host name resolution. For configuration purposes, the
<literal>localhost</literal> prefix from locally running &XDMCP; displays is
<emphasis>not</emphasis> stripped to make them distinguishable from local
&X-Server;s started by &tdm;.</para>
<para>The <replaceable>display class</replaceable> portion is also used in the
display-specific sections. This is useful if you have a large collection of
similar displays (such as a corral of X terminals) and would like to set
options for groups of them.
When using &XDMCP;, the display is required to specify the display class,
so the manual for your particular X terminal should document the display
class string for your device. If it does not, you can run &tdm; in debug
mode and <command>grep</command> the log for <quote>class</quote>.</para>
<para>The displays specified in <option>ReserveServers</option> will not be
started when &tdm; starts up, but when it is explicitly requested via
the command socket (or <acronym>FiFo</acronym>).
If reserve displays are specified, the &kde; menu will have a
<guilabel>Start New Session</guilabel> item near the bottom; use that to
activate a reserve display with a new login session. The monitor will switch
to the new display, and you will have a minute to login. If there are no more
reserve displays available, the menu item will be disabled.</para>
<para>When &tdm; starts a session, it sets up authorization data for the
&X-Server;. For local servers, &tdm; passes
<command><option>-auth</option>&nbsp;<filename><replaceable>filename</replaceable></filename></command>
on the &X-Server;'s command line to point it at its authorization data.
For &XDMCP; displays, &tdm; passes the authorization data to the &X-Server;
via the <quote>Accept</quote> &XDMCP; message.</para>
</sect1>
<sect1 id="tdmrc-xaccess">
<title>&XDMCP; access control</title>
<para>The file specified by the <option>AccessFile</option> option provides
information which &tdm; uses to control access from displays requesting service
via &XDMCP;.
The file contains four types of entries: entries which control the response
to <quote>Direct</quote> and <quote>Broadcast</quote> queries, entries which
control the response to <quote>Indirect</quote> queries, macro definitions for
<quote>Indirect</quote> entries, and entries which control on which network
interfaces &tdm; listens for &XDMCP; queries.
Blank lines are ignored, <literal>#</literal> is treated as a comment
delimiter causing the rest of that line to be ignored, and <literal>\</literal>
causes an immediately following newline to be ignored, allowing indirect host
lists to span multiple lines.
</para>
<para>The format of the <quote>Direct</quote> entries is simple, either a
host name or a pattern, which is compared against the host name of the display
device.
Patterns are distinguished from host names by the inclusion of one or more
meta characters; <literal>*</literal> matches any sequence of 0 or more
characters, and <literal>?</literal> matches any single character.
If the entry is a host name, all comparisons are done using network addresses,
so any name which converts to the correct network address may be used. Note
that only the first network address returned for a host name is used.
For patterns, only canonical host names are used in the comparison, so ensure
that you do not attempt to match aliases.
Host names from &XDMCP; queries always contain the local domain name
even if the reverse lookup returns a short name, so you can use
patterns for the local domain.
Preceding the entry with a <literal>!</literal> character causes hosts which
match that entry to be excluded.
To only respond to <quote>Direct</quote> queries for a host or pattern,
it can be followed by the optional <literal>NOBROADCAST</literal> keyword.
This can be used to prevent a &tdm; server from appearing on menus based on
<quote>Broadcast</quote> queries.</para>
<para>An <quote>Indirect</quote> entry also contains a host name or pattern,
but follows it with a list of host names or macros to which the queries
should be forwarded. <quote>Indirect</quote> entries can be excluding as well,
in which case a (valid) dummy host name must be supplied to make the entry
distinguishable from a <quote>Direct</quote> entry.
If compiled with IPv6 support, multicast address groups may also be included
in the list of addresses the queries are forwarded to.
<!-- Not actually implemented!
Multicast addresses may be followed by an optional <literal>/</literal>
character and hop count. If no hop count is specified, the multicast hop count
defaults to 1, keeping the packet on the local network. For IPv4 multicasting,
the hop count is used as the TTL.
-->
If the indirect host list contains the keyword <literal>CHOOSER</literal>,
<quote>Indirect</quote> queries are not forwarded, but instead a host chooser
dialog is displayed by &tdm;. The chooser will send a <quote>Direct</quote>
query to each of the remaining host names in the list and offer a menu of
all the hosts that respond. The host list may contain the keyword
<literal>BROADCAST</literal>, to make the chooser send a
<quote>Broadcast</quote> query as well; note that on some operating systems,
UDP packets cannot be broadcast, so this feature will not work.
</para>
<para>When checking access for a particular display host, each entry is scanned
in turn and the first matching entry determines the response.
<quote>Direct</quote> and <quote>Broadcast</quote> entries are ignored when
scanning for an <quote>Indirect</quote> entry and vice-versa.</para>
<para>A macro definition contains a macro name and a list of host names and
other macros that the macro expands to. To distinguish macros from hostnames,
macro names start with a <literal>%</literal> character.</para>
<para>The last entry type is the <literal>LISTEN</literal> directive.
The formal syntax is
<screen>
<userinput>&nbsp;<literal>LISTEN</literal>&nbsp;[<replaceable>interface</replaceable>&nbsp;[<replaceable>multicast&nbsp;list</replaceable>]]</userinput>
</screen>
If one or more <literal>LISTEN</literal> lines are specified, &tdm; listens
for &XDMCP; requests only on the specified interfaces.
<replaceable>interface</replaceable> may be a hostname or IP address
representing a network interface on this machine, or the wildcard
<literal>*</literal> to represent all available network interfaces.
If multicast group addresses are listed on a <literal>LISTEN</literal> line,
&tdm; joins the multicast groups on the given interface. For IPv6 multicasts,
the IANA has assigned ff0<replaceable>X</replaceable>:0:0:0:0:0:0:12b as the
permanently assigned range of multicast addresses for &XDMCP;. The
<replaceable>X</replaceable> in the prefix may be replaced by any valid scope
identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and
so on (see IETF RFC 2373 or its replacement for further details and scope
definitions). &tdm; defaults to listening on the Link-Local scope address
ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior.
If no <literal>LISTEN</literal> lines are given, &tdm; listens on all
interfaces and joins the default &XDMCP; IPv6 multicast group (when
compiled with IPv6 support).
To disable listening for &XDMCP; requests altogether, a
<literal>LISTEN</literal> line with no addresses may be specified, but using
the <literal>[Xdmcp]</literal> <option>Enable</option> option is preferred.
</para>
</sect1>
<sect1 id="tdm-scripts">
<title>Supplementary programs</title>
<para>
The following programs are run by &tdm; at various stages of a session.
They typically are shell scripts.
</para>
<para>
The Setup, Startup and Reset programs are run as
<systemitem class="username">root</systemitem>, so they should be careful
about security.
Their first argument is <literal>auto</literal> if the session results
from an automatic login; otherwise, no arguments are passed to them.
</para>
<sect2 id="tdmrc-xsetup">
<title>Setup program</title>
<para>
The <filename>Xsetup</filename> program is run after the &X-Server; is
started or reset, but before the greeter is offered.
This is the place to change the root background (if
<option>UseBackground</option> is disabled) or bring up other windows that
should appear on the screen along with the greeter.
</para>
<para>
In addition to any specified by <option>ExportList</option>,
the following environment variables are passed:</para>
<variablelist>
<varlistentry>
<term>DISPLAY</term>
<listitem><para>the associated display name</para></listitem>
</varlistentry>
<varlistentry>
<term>PATH</term>
<listitem><para>the value of <option>SystemPath</option></para></listitem>
</varlistentry>
<varlistentry>
<term>SHELL</term>
<listitem><para>the value of <option>SystemShell</option></para></listitem>
</varlistentry>
<varlistentry>
<term>XAUTHORITY</term>
<listitem><para>may be set to an authority file</para></listitem>
</varlistentry>
<varlistentry>
<term>DM_CONTROL</term>
<listitem><para>the value of <option>FifoDir</option></para></listitem>
</varlistentry>
</variablelist>
<para> Note that since &tdm; grabs the keyboard, any other windows will not be
able to receive keyboard input. They will be able to interact with the mouse,
however; beware of potential security holes here. If <option>GrabServer</option>
is set, <filename>Xsetup</filename> will not be able to connect to the display
at all. Resources for this program can be put into the file named by
<option>Resources</option>.
</para>
</sect2>
<sect2 id="tdmrc-xstartup">
<title>Startup program</title>
<para>The <filename>Xstartup</filename> program is run as
<systemitem class="username">root</systemitem> when the user logs in.
This is the place to put commands which add entries to
<filename>utmp</filename> (the <command>sessreg</command> program
may be useful here), mount users' home directories from file servers,
or abort the session if some requirements are not met (but note that on
modern systems, many of these tasks are already taken care of by
<acronym>PAM</acronym> modules).</para>
<para>In addition to any specified by <option>ExportList</option>,
the following environment variables are passed:</para>
<variablelist>
<varlistentry>
<term>DISPLAY</term>
<listitem><para>the associated display name</para></listitem>
</varlistentry>
<varlistentry>
<term>HOME</term>
<listitem><para>the initial working directory of the user</para></listitem>
</varlistentry>
<varlistentry>
<term>LOGNAME</term>
<listitem><para>the username</para></listitem>
</varlistentry>
<varlistentry>
<term>USER</term>
<listitem><para>the username</para></listitem>
</varlistentry>
<varlistentry>
<term>PATH</term>
<listitem><para>the value of <option>SystemPath</option></para></listitem>
</varlistentry>
<varlistentry>
<term>SHELL</term>
<listitem><para>the value of <option>SystemShell</option></para></listitem>
</varlistentry>
<varlistentry>
<term>XAUTHORITY</term>
<listitem><para>may be set to an authority file</para></listitem>
</varlistentry>
<varlistentry>
<term>DM_CONTROL</term>
<listitem><para>the value of <option>FifoDir</option></para></listitem>
</varlistentry>
</variablelist>
<para>&tdm; waits until this program exits before starting the user session.
If the exit value of this program is non-zero, &tdm; discontinues the session
and starts another authentication cycle.</para>
</sect2>
<sect2 id="tdmrc-xsession">
<title>Session program</title>
<para>The <filename>Xsession</filename> program is the command which is run
as the user's session. It is run with the permissions of the authorized user.
One of the keywords <literal>failsafe</literal>, <literal>default</literal>
or <literal>custom</literal>, or a string to <command>eval</command> by a
Bourne-compatible shell is passed as the first argument.</para>
<para>In addition to any specified by <option>ExportList</option>,
the following environment variables are passed:</para>
<variablelist>
<varlistentry>
<term>DISPLAY</term>
<listitem><para>the associated display name</para></listitem>
</varlistentry>
<varlistentry>
<term>HOME</term>
<listitem><para>the initial working directory of the user</para></listitem>
</varlistentry>
<varlistentry>
<term>LOGNAME</term>
<listitem><para>the username</para></listitem>
</varlistentry>
<varlistentry>
<term>USER</term>
<listitem><para>the username</para></listitem>
</varlistentry>
<varlistentry>
<term>PATH</term>
<listitem><para>the value of <option>UserPath</option>
(or <option>SystemPath</option> for
<systemitem class="username">root</systemitem> user sessions)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SHELL</term>
<listitem><para>the user's default shell</para></listitem>
</varlistentry>
<varlistentry>
<term>XAUTHORITY</term>
<listitem><para>may be set to a non-standard authority file</para></listitem>
</varlistentry>
<varlistentry>
<term>KRBTKFILE</term>
<listitem><para>may be set to a Kerberos4 credentials cache name</para>
</listitem>
</varlistentry>
<varlistentry>
<term>KRB5CCNAME</term>
<listitem><para>may be set to a Kerberos5 credentials cache name</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DM_CONTROL</term>
<listitem><para>the value of <option>FifoDir</option></para></listitem>
</varlistentry>
<varlistentry>
<term>XDM_MANAGED</term>
<listitem><para>will contain a comma-separated list of parameters the
session might find interesting, like the location of the command
<acronym>FiFo</acronym> and its capabilities, and which conversation
plugin was used for the login</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DESKTOP_SESSION</term>
<listitem><para>the name of the session the user has chosen to run</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="tdmrc-xreset">
<title>Reset program</title>
<para>Symmetrical with <filename>Xstartup</filename>, the
<filename>Xreset</filename> program is run after the user session has
terminated. Run as <systemitem class="username">root</systemitem>, it should
contain commands that undo the effects of commands in
<filename>Xstartup</filename>, removing entries from <filename>utmp</filename>
or unmounting directories from file servers.</para>
<para>The environment variables that were passed to
<filename>Xstartup</filename> are also passed to <filename>Xreset</filename>.
</para>
</sect2>
</sect1>
</chapter>
</docu>
# The rest of this file are section and key definitions for the options.
# The order of the keywords is fixed and everything is case sensitive.
# A keyword may expect supplementary data in the form of space-indented
# lines following it. Definitions are delimited by empty lines.
#
# Section definition:
# Section: <name>
# Section name. Section classes start with a dash.
# If: <expression>
# C preprocessor conditional for supporting this section.
# If it evaluates to false, all keys in this section are disabled as well.
# Description:
# A docbook description of this section is expected in the next lines.
# The contents are automatically enclosed in <para></para>.
#
# Option key definition:
# Key: <name>
# Option name.
# If: <expression>
# C preprocessor conditional for supporting this option.
# Type: (int|bool|enum|group|string|path|list)
# The option's data type.
# If the type is enum, the element definitions follow in the next lines:
# <term>[/<c #define>]: <docbook style description>
# Default: <default>
# Default value. string, path and list are copied verbatim and therefore
# must be already quoted appropriately. The other types are auto-quoted.
# If the default value is prefixed with a "*", a c #define def_<Key> is
# created.
# The default is automatically appended to the tdmrc comment and the
# documentation entry.
# CDefault: <verbose default>
# Append this instead of the real default to the two docs. The quoting
# rules are the same as for Default.
# DDefault: -
# If specified, the default value will not be appended to the documentation
# entry. The Description should mention the default then. Use this when
# the default is system-dependent.
# PostProc: <function>
# A function to postprocess the read config value before using it.
# User: (dummy|(core|greeter|greeter-c|dep|config)[(<variable>)][:font])
# These entries specify which parts of tdm need the option in question:
# dummy: no user; entry is there only for syntactical correctness.
# dep: this option is an internal dependency for another option.
# config: this option configures the config reader itself.
# core: the tdm backend needs this option.
# greeter-c: the tdm frontend needs this option as a C data type.
# greeter: the tdm frontend needs this option as a C++/Qt data type.
# If a :font tag is appended, a string entry is converted to a QFont.
# If no variable name is specified, it will be derived from the Key by
# un-capitalizing it.
# Instance: (-|[#][<display spec>/](!|<value>))
# These entries specify option instances for the default/example tdmrc.
# A "-" entry is a dummy for syntactical correctness.
# A prefixing hash mark will be copied to tdmrc.
# For options in a section class a display must be specified.
# For bool options "!" can be used as the value to specify the negation
# of the default.
# Update: <function>[/<number>]
# Call this function on each occurence of this option in gentdmconf.
# Options with higher numbers (default is 0) will be processed later.
# Merge: (xdm[:<resource>][(<function>)]|tdm:[<section>/][<key>][<function>])
# Specify config options to merge from xdm and older tdm versions.
# Kdm options from the current version are automatically merged.
# When merging an xdm resource and no resource name is specified, it is
# derived from the Key by un-capitalizing it.
# When merging a tdm option, at least one of <section> and <key> must
# be given; an unspecified entity defaults to the current Section/Key.
# <section> may be a dash-prefixed section class.
# A function to postprocess the read value can be specified.
# Comment: [&|-]
# A tdmrc comment for this option is expected in the next lines.
# If "-" is given to Comment, no comment is generated at all.
# If "&" is given, the comment is derived from the Description below by
# applying some simple docbook interpretation to it. Note that the
# Description must be preformatted in this case. Use
# sed -ne 's/^\(.\{79,\}\)$/\1/p' < tdmrc
# after running "make install" to see whether all lines still fit.
# If Type is enum, a list of the previously defined element/description
# pairs is appended; the descriptions undergo docbook interpretation.
# Finally, a sentence with the Default (or CDefault, if given) is appended.
# Description: [!|-]
# A docbook description of this option is expected in the next lines.
# The contents are automatically enclosed in <para></para>.
# If "-" is given to Description, no comment is generated at all.
# If "!" is given, enums are not treated specially; otherwise, the macro
# %ENUM% is replaced with a list of the defined element/description pairs,
# or - if the macro is not present - the list is appended to the
# description.
# Finally, a sentence with the Default (or CDefault, if given) is appended,
# unless "DDefault: -" was specified.
# Each option entry generates an anchor named option-<lowercase(Key)>;
# it can be referenced in the main documentation.
# Do not forget to run "make ref" in tdebase/doc/tdm after changing
# Descriptions.
Section: General
Description:
This section contains global options that do not fit into any specific section.
Key: ConfigVersion
Type: string
Default: ""
CDefault: -
User: dummy
# will be overwritten
Instance:
Comment:
This option exists solely for the purpose of a clean automatic upgrade.
Do not even think about changing it!
Description:
This option exists solely for the purpose of clean automatic upgrades.
<emphasis>Do not</emphasis> change it, you may interfere with future
upgrades and this could result in &tdm; failing to run.
Key: PAMService
If: defined(USE_PAM)
Type: string
Default: TDM_PAM_SERVICE
User: core
Instance: -
Comment: -
Description: -
<legacy>
Proc: absorb_xservers
# note: this can miss Xservers from tdm for kde 2.2 because of stupid default.
Source: tdm:General/Xservers
Source: xdm:servers
</legacy>
Key: StaticServers
Type: list
Default: ":0"
User: core
Instance: ":0"
Comment:
List of permanent displays. Displays with a hostname are foreign. A display
class may be specified separated by an underscore.
Description:
List of displays (&X-Server;s) permanently managed by &tdm;. Displays with a
hostname are foreign displays which are expected to be already running,
the others are local displays for which &tdm; starts an own &X-Server;;
see <option>ServerCmd</option>. Each display may belong to a display class;
append it to the display name separated by an underscore.
See <xref linkend="tdmrc-xservers"/> for the details.
Key: ReserveServers
Type: list
Default: ""
User: core
Instance: ":1,:2,:3"
Comment: &
Description:
List of on-demand displays. See <option>StaticServers</option> for syntax.
Key: ServerVTs
If: defined(HAVE_VTS)
Type: list
Default: ""
User: core
Instance: #"7,8,-9,-10"
Update: upd_servervts
Comment:
VTs to allocate to &X-Server;s. A negative number means that the VT will be
used only if it is free. If all VTs in this list are used up, the next free
one greater than the last one in this list will be allocated.
Description:
List of Virtual Terminals to allocate to &X-Server;s. For negative numbers the
absolute value is used, and the <acronym>VT</acronym> will be allocated only
if the kernel says it is free. If &tdm; exhausts this list, it will allocate
free <acronym>VT</acronym>s greater than the absolute value of the last entry
in this list.
Currently Linux only.
Key: ConsoleTTYs
If: defined(HAVE_VTS)
Type: list
Default: ""
User: core
Instance: #"tty1,tty2,tty3,tty4,tty5,tty6"
Update: upd_consolettys
Comment:
TTYs (without /dev/) to monitor for activity while in console mode.
Description:
This option is for operating systems (<acronym>OS</acronym>s) with support
for virtual terminals (<acronym>VT</acronym>s), by both &tdm; and the
<acronym>OS</acronym>s itself.
Currently this applies only to Linux.
</para><para>
When &tdm; switches to console mode, it starts monitoring all
<acronym>TTY</acronym> lines listed here (without the leading
<literal>/dev/</literal>).
If none of them is active for some time, &tdm; switches back to the X login.
Key: PidFile
Type: string
Default: ""
User: core
Instance: "/var/run/tdm.pid"
Merge: xdm
Comment:
Where &tdm; should store its PID (do not store if empty).
Description:
The filename specified will be created to contain an ASCII representation
of the process ID of the main &tdm; process; the PID will not be stored
if the filename is empty.
Key: LockPidFile
Type: bool
Default: true