# Файли, у яких &kdm; зберігає налаштування

У цьому розділі наведено документацію щодо файлів, які керують поведінкою &kdm;. Деякими параметрами цієї поведінки можна керувати за допомогою модуля &kcontrol;, але далеко не усіма.

## &kdmrc; — основний файл налаштувань &kdm;

Базовий формат файла схожий на формат файлів INI. Параметри записано у вигляді пар ключ-значення, впорядкованих за розділами. Всі елементи файла є регістрозалежними. За умови виявлення синтаксичних помилок, а також невідомих програмі ключів і розділів &kdm; повідомлятиме про некритичні помилки.

Рядки, що починаються з символу `#` є коментарями, також не виконується обробка порожніх рядків.

Розділи позначаються у вигляді: `[`Назва розділу`]`.

Кожен з дисплеїв X ви можете налаштувати окремо.

Кожен дисплей має свою назву, яка складається з назви вузла (яка є порожньою для локальних дисплеїв, вказаних у розділах `StaticServers` і `ReserveServers`), двокрапки і номера дисплея. Крім того, кожен дисплей належить до певного класу дисплеїв (у більшості випадків цією залежністю можна знехтувати).

Розділи, у яких розміщено параметри, що стосуються окремого дисплея, мають такий синтаксис `[X-` вузол [ `:` номер [ `_` клас ] ] `-` підрозділ `]`

Всі розділи з однаковими полями підрозділ утворюють клас розділів.

Ви можете використовувати шаблони заміни `*` (будь-яке значення) для полів вузол, номер, і клас. Кінцеві елементи можна пропустити, у такому випадку вважатиметься, що їх значеннями є `*`. Частина «вузол» може приймати значення специфікації домену на зразок .inf.tu-dresden.de або шаблоном заміни `+` (будь-яке непорожнє значення).

Те, з якого розділу буде взято параметр, визначається за такими правилами:

- Точна відповідність має пріоритет над частковою (для поля вузла), яка, в свою чергу, має пріоритет над шаблоном заміни (`+` має пріоритет над `*`).

- Пріоритет спадає у напрямку праворуч для рівнозначних точних відповідників.

- Приклад: назва дисплея myhost.foo:0, клас — dpy

  - [X-myhost.foo:0_dpy] має пріоритет над

  - [X-myhost.foo:0_*] (те саме, що і [X-myhost.foo:0]), що має пріоритет над

  - [X-myhost.foo:*_dpy], що має пріоритет над

  - [X-myhost.foo:*_*] (те саме, що і [X-myhost.foo]), що має пріоритет над

  - [X-.foo:*_*] (те саме, що і [X-.foo]), що має пріоритет над

  - [X-+:0_dpy], що має пріоритет над

  - [X-*:0_dpy], що має пріоритет над

  - [X-*:0_*] (те саме, що і [X-*:0]), що має пріоритет над

  - [X-*:*_*] (те саме, що і [X-*]).

  - А ось такі розділи не відповідатимуть за цей дисплей:

    [X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*]

Спільними розділами є [X-*] (всі дисплеї), [X-:*] (всі локальні дисплеї) і [X-:0] (перший локальний дисплей).

Формат для всіх ключів такий: ``ключ` `=` `значення``. Ключі чинні лише у класі розділів, де їх було визначено. Деякі з ключів не можна використовувати для окремого типу дисплеїв, такі ключі не братимуться до уваги.

Якщо параметр не буде знайдено у відповідному розділі, використовуватиметься його типове значення.

Спеціальні символи слід екранувати зворотною косою рискою (початкові і кінцеві пробіли (`\s`), знаки табуляції (`\t`), переведення рядка (`\n`), повернення каретки (`\r`) і сама зворотна коса риска (`\\`)).

У списках елементи відокремлюються комами без додаткових пробілів.

У деяких рядках команд можна використовувати спрощений тип обрізання слів у стилі sh: апостроф (`'`) і лапки (`"`) мають звичайне значення, а зворотні лапки екранують все (не лише спеціальні символи). Зауважте, що в таких випадках слід подвоювати зворотні косі риски, оскільки тут ми маємо справу з подвійним екрануванням.

У початковому стані &kdmrc; містить докладні коментарі. Всі ці коментарі буде втрачено, якщо ви зміните цей файл за допомогою модуля графічної оболонки kcontrol.

### Розділ [General] &kdmrc;

У цьому розділі містяться загальні параметри, які не належать до будь-яких інших окремих розділів.

`ConfigVersion`

  Цей параметр потрібен лише для уникання проблем під час автоматичного оновлення. Не змінюйте його, інакше ви можете завадити наступним оновленням, що спричинить неможливість запуску &kdm;.

`StaticServers`

  Список дисплеїв (&X-Server;), які постійно керуються &kdm;. Дисплеї, для яких вказано назву вузла, вважаються вже увімкненими сторонніми (foreign) дисплеями, інші дисплеї є локальними, для кожного з яких &kdm; запускає свій &X-Server;; див. `ServerCmd`. Кожен дисплей належить до одного з класів дисплеїв; клас можна додати до назви дисплея після символу підкреслювання. Докладнішу інформацію можна отримати з довідки щодо .

  Типовим значенням є :0.

`ReserveServers`

  Список дисплеїв, які вмикатимуться за потреби. Синтаксис той самий, що і для `StaticServers`.

  Типово, цей параметр є порожнім

`ServerVTs`

  Список віртуальних терміналів, яким відповідатимуть сервери X. Якщо використати від’ємне число, буде взято його значення за модулем, а ВТ буде призначено лише у разі, якщо ядро повідомить про те, що цей віртуальний термінал є вільним. Якщо &kdm; вичерпає цей список, буде призначено вільний ВТ з номером більшим за абсолютним значення за номер, який є останнім у списку. У цій версії працює лише у Linux.

  Типово, цей параметр є порожнім

`ConsoleTTYs`

  Цей параметр призначено для операційних систем (ОС) з підтримкою віртуальних терміналів (ВТ), як з боку &kdm; так і з боку ОС. У цій версії параметр стосується лише Linux.

  Коли &kdm; перемикається у консольних режим, програма починає вести спостереження за всіма рядками TTY переліченими у списку (окрім першого `/dev/`). Якщо жоден з них певний час не буде задіяно, &kdm; знову повернеться до вікна входу до X.

  Типово, цей параметр є порожнім

`PidFile`

  Буде створено файл з вказаною назвою і вмістом, що відповідає ASCII-варіанту ідентифікатора головного процесу &kdm;; якщо назва файла буде порожньою, PID не зберігатиметься.

  Типово, цей параметр є порожнім

`LockPidFile`

  Цей параметр керує тим, чи буде &kdm; використовувати блокування для заборони запуску декількох програм керування вікнами одна над одною.

  Типовим є значення true.

`AuthDir`

  Цей параметр визначає каталог, у якому &kdm; зберігає файли розпізнавання сервера X під час започаткування сеансу. &kdm; вважає, що під час перезавантаження система вилучає застарілі файли з цього каталогу.

  Файл розпізнавання, який буде використано для певного дисплея можна вказати за допомогою параметра `AuthFile` у [X-*-Core].

  Типовою є тека /var/run/xauth.

`AutoRescan`

  Це булівське значення визначає, чи слід &kdm; перечитувати свої файли налаштувань, якщо програма виявить, що ці файли було змінено.

  Типовим є значення true.

`ExportList`

  Додаткові змінні середовища, які &kdm; має передавати всім програмам, які він запускає. Це, зокрема, можуть бути `LD_LIBRARY_PATH` and `XCURSOR_THEME`, у інших випадках цей параметр не дуже то й потрібен.

  Типово, цей параметр є порожнім

`RandomFile`

  Якщо у системі немає свого джерела псевдовипадкових чисел, на зразок /dev/urandom (див. `RandomDevice`), і не запущено відповідної фонової служби, на зразок EGD (див. `PrngdSocket` і `PrngdPort`), &kdm; скористається власним генератором псевдовипадкових чисел, який серед іншого створюватиме контрольні суми частин цього файла (файл, в такому разі, слід часто змінювати).

  Цього параметра немає у Linux і сімействі BSD.

  Типовим є значення /dev/mem.

`PrngdSocket`

  Якщо у системи немає свого джерела псевдовипадкових чисел, на зразок /dev/urandom (див. `RandomDevice`), отримувати випадкові числа від фонової служби-генератора псевдовипадкових чисел, на зразок EGD (http://egd.sourceforge.net) через це гніздо домену UNIX.

  Цього параметра немає у Linux і сімействі BSD.

  Типово, цей параметр є порожнім

`PrngdPort`

  Те саме, що і `PrngdSocket`, використовувати лише певне гніздо TCP локального вузла.

`RandomDevice`

  Шлях до символьного пристрою, з якого &kdm; слід читати випадкові дані. Якщо значення параметра буде порожнім, програма використовуватиме головний генератор псевдовипадкових чисел у системі, якщо такий є.

  Цього параметра не буде у OpenBSD, оскільки у цій системі замість нього використовується функція arc4_random.

  Типово, цей параметр є порожнім

`FifoDir`

  Каталог, у якому слід створити гнізда команд, зробіть це значення порожнім, щоб вимкнути створення.

  Типовим є /var/run/xdmctl.

`FifoGroup`

  Група, якій має належати загальне гніздо команд; значенням може бути назва або числовий ідентифікатор.

`DataDir`

  Каталог, у якому &kdm; слід зберігати постійні робочі дані; такими даними, наприклад, є попередній користувач, який входив до системи з певного дисплея.

  Типовим є каталог /var/lib/kdm.

`DmrcDir`

  Каталог, у якому &kdm; слід зберігати файли `.dmrc` користувачів. Цей параметр може знадобитися, лише якщо домашні каталоги на момент входу до системи непридатні для запису (наприклад, з AFS).

  Типово, цей параметр є порожнім

### Розділ [Xdmcp] у &kdmrc;

У цьому розділі містяться параметри, які керують обробкою &kdm; запитів &XDMCP;.

`Увімкнути`

  Визначає, чи слід &kdm; очікувати на вхідні запити &XDMCP;.

  Типовим є значення true.

`Порт`

  Цей параметр визначає номер порту UDP, на якому &kdm; очікуватиме на вхідні запити &XDMCP;. У випадку, якщо ви не робите це для зневаджування системи, не змінюйте типове значення цього параметра.

  Типовим є номер порту 177.

`KeyFile`

  Для розпізнавання &XDMCP; у стилі XDM-AUTHENTICATION-1 потрібен закритий ключ, який поділено між &kdm; і терміналом. За допомогою цього параметра можна вказати файл з ключем. Кожен запис цього файла має складатися з назви дисплея і розділеного ключа.

  Типово, цей параметр є порожнім

`Xaccess`

  Щоб заборонити використання служби &XDMCP; без розпізнавання і дозволити переспрямування запитів IndirectQuery &XDMCP;, у файлі, вказаному за допомогою цього параметра повинна міститися база даних назв вузлів, яким дозволено безпосередній доступ на цей комп’ютер, або список вузлів, на які слід переспрямовувати запити. Формат цього файла описано у .

  Типовим є значення ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

  Проміжок часу у секундах, протягом якого слід очікувати на відповідь від дисплея після вибору користувачем вузла за допомогою засобу вибору. Якщо протягом цього проміжку дисплей надішле запит If the display sends an IndirectQuery &XDMCP;, запит буде переспрямовано на вибраний вузол; у іншому випадку програма вважатиме, що відбувається спроба відкрити новий сеанс і користувачеві знову буде запропоновано зробити вибір вузла.

  Типовим значенням є 15.

`RemoveDomainname`

  Під час визначення назви дисплея для клієнтів &XDMCP;, засіб визначення назв типово створює повну назву вузла для термінала. Оскільки іноді це призводить до помилок, якщо встановлено цей параметр, &kdm; буде вилучати частину з назвою домену з назви вузла, якщо ця назва є такою самою, як і назва локального вузла.

  Типовим є значення true.

`SourceAddress`

  Використовувати числову IP-адресу, замість назви вузла, для вхідних з’єднань з вузлами, де декілька користувачів. Це потрібно для уникнення спроб з’єднань з інтерфейсами, які можуть у даний час не працювати.

  Типовим є значення false.

`Willing`

  Цей параметр задає програму, яку буде запущено (від імені користувача root) після отримання DirectQuery або BroadcastQuery &XDMCP;, якщо цей вузол було налаштовано для отримання запитів керування дисплеями &XDMCP;. Інформацію, виведену цією програмою, може бути показано у вікні засобу вибору. Якщо не буде вказано жодної програми, буде надіслано рядок Willing to manage.

  Типово, цей параметр є порожнім

### Розділ [Shutdown] файла &kdmrc;

У цьому розділі містяться загальні параметри, що стосуються завершення роботи системи.

`HaltCmd`

  Визначає команду (з розбиттям на слова), яку слід виконати для вимикання живлення системи.

  Типовою є команда, прийнятна на системі, де було зібрано &kdm;, наприклад, `/sbin/shutdown `-h` `now``.

`RebootCmd`

  Визначає команду (з розбиттям на слова), яку слід виконати для перезавантаження системи.

  Типовою є команда, прийнятна на системі, де було зібрано &kdm;, наприклад, `/sbin/shutdown `-r` `now``.

`AllowFifo`

  Визначає, чи можливе завершення роботи системи з допомогою глобального командного гнізда.

  Типовим є значення false.

`AllowFifoNow`

  Визначає, чи можна закривати активні робочі сеанси під час завершення роботи системи з загального гнізда команд.

  Цей параметр не працюватиме, якщо не увімкнено `AllowFifo`.

  Типовим є значення true.

`BootManager`

  Програма для керування завантаженням, яку слід використовувати &kdm;для визначення параметрів завантаження у діалоговому вікні завершення роботи.

  `None`

    без програми керування завантаженням

  `Grub`

    програма керування завантаженням Grub

  `Lilo`

    програма керування завантаженням Lilo (лише для Linux з архітектурами i386 і x86-64)

  Типовим є значення None.

### Клас розділів [X-*-Core] у файлі &kdmrc;

У цьому класі розділів містяться параметри, що стосуються налаштування сервера (ядра) &kdm;.

`OpenDelay`

  Див. `OpenRepeat`.

  Типовим значенням є 15.

`OpenTimeout`

  Див. `OpenRepeat`.

  Типовим є значення 120.

`OpenRepeat`

  Ці параметри керують поведінкою &kdm; під час спроб з’єднатися з сервером X. `OpenDelay` — це тривалість паузи (у секундах) між двома послідовними спробами, `OpenRepeat` — це кількість спроб, яку слід виконати, а `OpenTimeout` — це час відведений на спробу з’єднання. Після виконання `OpenRepeat` спроб, або якщо під час окремої спроби з’єднання пройшло `OpenTimeout` секунд, початкова спроба вважається невдалою.

  Типовим є значення 5.

`StartAttempts`

  Визначає кількість спроб, які має виконати &kdm; для запуску дисплея `foreign` зі списку `StaticServers` перш ніж припинити спроби і вимкнути його. Для локальних дисплеїв виконується лише одна спроба, а кількість спроб для дисплеїв &XDMCP; не обмежено (хіба що серверу X передано параметр `-once`).

  Типовим є значення 4.

`ServerAttempts`

  Визначає кількість спроб, які має виконати &kdm; для запуску локального сервера X. Запуск — це виконання відповідної програми і очікування стану «працює».

  Типовим є значення 1.

`ServerTimeout`

  Визначає кількість секунд, які має надати &kdm; серверу X на перехід у робочий стан.

  Типовим значенням є 15.

`ServerCmd`

  Рядок команди, яка запускає сервер X, без номера дисплея і специфікації VT. У цьому рядку можливе розбиття на слова.

  Типовою є команда, прийнятна на системі, де було зібрано &kdm;, наприклад, `/usr/X11R6/bin/X`.

`ServerArgsLocal`

  Додаткові параметри для локальних сеансів сервера X. У цьому рядку можливе розбиття на слова.

  Типово, цей параметр є порожнім

`ServerArgsRemote`

  Додаткові параметри для віддалених сеансів сервера X. У цьому рядку можливе розбиття на слова.

  Типово, цей параметр є порожнім

`ServerVT`

  VT, на якому слід запустити сервер X. Слід надавати перевагу параметру `ServerVTs` над цим параметром. Встановіть нульове значення, щоб &kdm; міг визначити VT автоматично. Встановіть значення `-1`, щоб взагалі не призначати VT — це потрібно для конфігурацій з декількома фізичними консолями. У цій версії можна використовувати лише у Linux.

`ServerTTY`

  Цей параметр призначено для ОС без підтримки VT з боку &kdm; або самої ОС. У цій версії застосовується для всіх ОС, окрім Linux.

  Якщо &kdm; перемикається у консольний режим, програма починає спостерігати за цією лінією TTY (значення слід вказувати без початкового `/dev/`), очікуючи на якісь дії. Якщо лінія не використовується певний часI, &kdm; повертається назад до входу до X.

  Типово, цей параметр є порожнім

`PingInterval`

  Див. `PingTimeout`.

  Типовим є значення 5.

`PingTimeout`

  Щоб виявити факт зникнення віддаленого дисплея, &kdm; регулярно надсилає йому луна-імпульси (пінгує). `PingInterval` визначає проміжок часу між (у хвилинах) між сеансами надсилання імпульсів, а `PingTimeout` визначає максимальний інтервал часу (у хвилинах), який слід очікувати відповіді на запит. Якщо термінал не відповідає, сеанс вважається закритим і припиняється.

  Якщо ви регулярно користуєтеся X-терміналами, які може бути ізольовано від вузла керування, вам слід збільшити час очікування. Єдиною проблемою у цьому випадку буде наявність сеансів, які існують після того, як термінал було раптово вимкнено.

  Типовим є значення 5.

`TerminateServer`

  Визначає чи слід &kdm; перезапускати локальний сервер X після виходу з сеансу замість того, щоб просто відновити його початкові параметри. Використовуйте цей параметр, якщо сервер X поступово збільшує споживання пам’яті (тече) або аварійно завершує роботу за спроби відновити початкові параметри.

  Типовим є значення false.

`ResetSignal`

  Номер сигналу, який слід використовувати для відновлення початкових параметрів локального сервера X.

  Типовим є значення 1 (SIGHUP).

`TermSignal`

  Номер сигналу, який слід використовувати для припинення роботи локального сервера X.

  Типовим є значення 15 (SIGTERM).

`Authorize`

  Визначає, чи буде &kdm; створювати і використовувати систему розпізнавання для локальних з’єднань з сервером X. Дисплеям &XDMCP; запити на розпізнавання надсилаються використаним дисплеєм; сторонні (foreign) не-&XDMCP; дисплеї взагалі не підтримують розпізнавання.

  Типовим є значення true.

`AuthNames`

  Якщо параметр `Authorize` має значення «true», буде використано механізми розпізнавання, вказані цим параметром. Спосіб розпізнавання MIT-MAGIC-COOKIE-1 доступний завжди, а способи XDM-AUTHORIZATION-1, SUN-DES-1 і MIT-KERBEROS-5 можуть бути доступними, залежно від налаштувань збирання програми.

  Типовим є значення DEF_AUTH_NAME.

`ResetForAuth`

  Деякі застарілі сервери X перечитують файл розпізнавання під час відновлення початкового стану, а не під час перевірки початкового з’єднання. Оскільки &kdm; створює інформацію про розпізнавання безпосередньо перед з’єднанням з дисплеєм, застарілий сервер X не отримає поточної інформації про розпізнавання. Цей параметр накаже &kdm; надсилати серверові X сигнал SIGHUP після переналаштування вказаного файла, це спричиняє додаткове відновлення початкового стану сервера X, під час якого буде прочитано нову інформацію про розпізнавання.

  Типовим є значення false.

`AuthFile`

  Цей файл використовується для обміну даними щодо розпізнавання між &kdm; і сервером X за допомогою параметра командного рядка `-auth`, переданого серверу X. Його слід зберігати у каталозі, який не має широкого доступу для запису, оскільки його легко буде вилучити, що вимкне механізм розпізнавання у сервері X. Якщо назви файла не вказано, буде створено випадкову назву з `AuthDir` і назви дисплея.

  Типово, цей параметр є порожнім

`Resources`

  Цей параметр визначає назву файла, який буде завантажено `xrdb`, як базу даних ресурсів у кореневе вікно екрана 0 дисплея. Зазвичай, програми KDE не використовують ресурсів X, отже, цей параметр знадобиться, лише якщо деякі з ресурсів X потрібні програмі `Setup`.

  Типово, цей параметр є порожнім

`Xrdb`

  Визначає програму `xrdb`, яку слід використовувати для читання ресурсів X, визначених у параметрі `Recources`. У цій команді можна використовувати розбиття на слова.

  Типовим є значення ${`x_bindir`}/xrdb.

`Setup`

  У цьому рядку можливе розбиття на слова. Рядок визначає програму, яку буде запущено (від імені користувача root) перед відкриттям вікна входу до системи. Цю програму можна використати для зміни вигляду екрана навколо вікна входу до системи або для того, щоб відкрити інші вікна (наприклад, вам може знадобитися запустити `xconsole` тут). Типовою назвою файла, який буде тут запущено є `Xsetup`. Також див. .

  Типово, цей параметр є порожнім

`Startup`

  У цьому рядку можливе розбиття на слова. Якщо визначає програму, яку буде запущено (від імені користувача root) після успішного розпізнавання користувача. Типовою назвою програми є `Xstartup`. Також див. .

  Типово, цей параметр є порожнім

`Reset`

  У цьому рядку можливе розбиття на слова. Рядок визначає програму, яку буде запущено (від імені користувача root) після завершення сеансу. Типовою назвою програми є `Xreset`. Також див. .

  Типово, цей параметр є порожнім

`Session`

  У цьому рядку можливе розбиття на слова. Рядок визначає програму сеансу, яку буде виконано (від імені користувача-власника сеансу). Типовою програмою є `Xsession`. Також див. .

  Типовим є значення ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

  Якщо програму, визначену параметром `Session` запустити не вдасться, &kdm; запустить програму визначену цим параметром. Цю програму буде виконано без будь-яких параметрів, але зі значеннями системних змінних, які було б встановлено запущеним сеансом (див. ).

  Типовим є значення ${`x_bindir`}/xterm.

`UserPath`

  Визначає змінну середовища `PATH` для `Session`, які не належать користувачевіroot.

  Типове значення залежить від системи, на якій було зібрано &kdm;.

`SystemPath`

  Визначає змінну середовища `PATH` для всіх програм, окрім не root `Session`. Зауважте, що добре було б не включати знак `.` (поточна тека) до цього запису.

  Типове значення залежить від системи, на якій було зібрано &kdm;.

`SystemShell`

  Визначає змінну середовища `SHELL` для всіх програм, окрім `Session`.

  Типовим значенням є /bin/sh.

`UserAuthDir`

  Якщо &kdm; не вдасться записати звичайний файл розпізнавання користувача ($`HOME`/.Xauthority), програма створить файл з унікальною назвою у цій теці і зробить так, щоб на створений файл вказувала системна змінна `XAUTHORITY`.

  Типовим значенням є /tmp.

`ForceUserAuthDir`

  Якщо має значення «true», параметр `UserAuthDir` буде застосовано безумовно.

  Типовим є значення false.

`AutoReLogin`

  Якщо увімкнено цей параметр, &kdm; автоматично перезапускатиме сеанс після аварійного завершення роботи сервера X (або у разі, якщо роботу цього сервера було припинено комбінацією клавіш Alt-Ctrl-BackSpace). Зауважте, що вмикання цього параметра відкриє дірку у безпеці системи: за його допомогою можна обійти обмеження блокування дисплея (якщо не використовується вбудоване блокування екрана &kde;).

  Типовим є значення false.

`AllowRootLogin`

  Якщо вимкнено, не дозволяти користувачеві root (і всім іншим користувачам з UID = 0) входити до системи напряму.

  Типовим є значення true.

`AllowNullPasswd`

  Якщо вимкнено, лише користувачам з ненульовими паролями буде надано дозвіл на вхід до системи.

  Типовим є значення true.

`AllowShutdown`

  Визначає тих, кому дозволено завершувати роботу системи. Цей параметр стосується як вікна входу до системи, так і гнізд команд.

  `None`

    не показувати пункт меню Вимкнути комп’ютер... взагалі

  `Root`

    для завершення роботи системи слід ввести пароль користувача root

  `All`

    завершити роботу комп’ютера можуть всі

  Типовим значенням є All.

`AllowSdForceNow`

  Визначає тих, кому дозволено завершувати роботу у активних сеансах під час завершення роботи системи.

  `None`

    примусове завершення роботи системи заборонено

  `Root`

    для примусового завершення роботи системи слід ввести пароль користувача root

  `All`

    всі користувачі можуть примусово завершувати роботу системи

  Типовим значенням є All.

`DefaultSdMode`

  Типовий вибір для умов і відрахунку часу для завершення роботи.

  `Schedule`

    завершити роботу після виходу користувачів з усіх активних сеансів (за можливості, одразу)

  `TryNow`

    завершити роботу, якщо немає активних сеансів, у іншому випадку нічого не робити

  `ForceNow`

    завершити роботу за будь-яких умов

  Типовим є значення Schedule.

`ScheduledSd`

  Яким чином пропонувати параметри завершення роботи:

  `Never`

    не пропонувати взагалі

  `Optional`

    у вигляді кнопки у простих діалогових вікнах завершення роботи

  `Always`

    замість простих діалогових вікон завершення роботи

  Типовим значенням є Never.

`NoPassEnable`

  Увімкнути можливість входу на цей дисплей без пароля. Будьте дуже обережні з цим параметром!

  Типовим є значення false.

`NoPassUsers`

  Визначає список користувачів, яким не потрібен пароль для входу до системи. Пункти, попереду яких стоїть `@`, відповідають всім користувачам групи з вказаною цим пунктом назвою. `*` означає всіх користувачів, окрім користувача root (і всіх інших користувачів з UID = 0). Ніколи не включайте до списку користувача root.

  Типово, цей параметр є порожнім

`AutoLoginEnable`

  Увімкнути автоматичний вхід до системи. Будьте дуже обережні з цим параметром!

  Типовим є значення false.

`AutoLoginAgain`

  Якщо має значення «true», автоматично входити до системи після виходу з неї. Якщо значенням є «false», автоматичний вхід буде виконано лише під час запуску сеансу роботи.

  Типовим є значення false.

`AutoLoginDelay`

  Затримка у секундах перед запуском автоматично входу до системи. Цей параметр також відомий під назвою Вхід з таймером.

`AutoLoginUser`

  Визначає користувача, для якого буде здійснюватися автоматичний вхід до системи. Ніколи не вказуйте користувача root!

  Типово, цей параметр є порожнім

`AutoLoginPass`

  Пароль для автоматичного входу користувача до системи. Цей параметр не потрібен, якщо користувач не входить до домену NIS або Kerberos. Якщо ви використовуєте цей параметр, вам слід з очевидних причин виконати команду `chmod `600` `kdmrc``.

  Типово, цей параметр є порожнім

`AutoLoginLocked`

  Негайно блокувати сеанси, розпочаті автоматично. Працює лише для сеансів KDE.

  Типовим є значення false.

`SessionsDirs`

  Список каталогів, що містять визначення типу сеансу.

  Типовим є значення ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

  Визначає файл (відносно домашнього каталогу користувача), у який буде переспрямовано вивід сеансу.

  Наступні пари символів буде замінено на їх значення:

  `%d`

    назва поточного дисплея

  `%u`

    ім’я для входу до системи поточного користувача

  `%r`

    порожнє на початку. див. нижче.

  `%%`

    один символ відсотків, `%`

  Якщо побудована назва файла не може бути безпечно використана і її визначення містить `%`назва `r`, відбудеться спроба розширити назву файла з `%`назва `r` до назва плюс випадкове число.

  Типовим є значення .xsession-errors.

`ClientLogFallback`

  Запасний варіант на випадок, якщо файл з параметра `ClientLogFile` неможливо використати. Підтримуються ті самі дволітерні розширення. Не використовуйте у цьому параметрі відносні шляхи.

  Типовим є значення /tmp/xerr-%u-%d%-r.

`UseSessReg`

  Визначає, чи слід використовувати вбудовану у &kdm; реєстрацію utmp/wtmp/lastlog. Якщо ні, слід використовувати інструмент `sessreg` у скриптах `Startup` and `Reset` або модуль pam_lastlog у системах з увімкненим PAM.

  Типовим є значення true.

### Клас розділів [X-*-Greeter] у файлі &kdmrc;

У цьому класі розділів містяться параметри, що стосуються налаштування графічної оболонки &kdm; (вікна входу до системи).

`GUIStyle`

  Визначає стиль віджетів вікна входу до системи. Порожнє значення означає використання вбудованого типового стилю, яким є `Plastik`.

  Типово, цей параметр є порожнім

`ColorScheme`

  Визначає схему кольорів віджетів вікна входу до системи. Порожнє значення означає використання вбудованої типової схеми, у цій версії вона є жовто-сірою з деякими світло-блакитними і жовтими елементами.

  Типово, цей параметр є порожнім

`LogoArea`

  Визначає те, що буде показано у вікні входу до системи праворуч від рядків для введення інформації (якщо вимкнено параметр `UserList`) або над ними (якщо увімкнено параметр `UserList`):

  `None`

    nothing

  `Logo`

    зображення, визначене `LogoPixmap`

  `Clock`

    лаконічний аналоговий годинник

  Типовим є значення Clock.

`LogoPixmap`

  Визначає зображення, яке буде показано у вікні входу до системи, якщо значенням параметра `LogoArea` є `Logo`.

  Типово, цей параметр є порожнім

`GreeterPos`

  Відносні координати (у відсотках до розмірів екрана; X,Y), за якими розташовуватиметься центр вікна входу до системи. &kdm; вирівнює вікно входу за краями екрана так, щоб вікно не їх не перетинало.

  Типовим є значення 50,50.

`GreeterScreen`

  Екран, на якому має бути показано вікно входу у режимі з декількома дисплеями і режимах Xinerama. Нумерація починається з 0. Для Xinerama це значення відповідає порядку за списком у активному розділі ServerLayout файла XF86Config; -1 означає «використовувати верхній лівий екран», -2 означає «використовувати верхній правий екран».

`GreetString`

  Визначає заголовок вікна входу до системи. Порожнє значення означає, що заголовка не буде.

  Наступні пари символів буде замінено на їх значення:

  `%d`

    назва поточного дисплея

  `%h`

    назва локального вузла, можливо, з назвою домену

  `%n`

    назва локального вузла, швидше за все, назва вузла без назви домену

  `%s`

    операційна система

  `%r`

    версія операційної системи

  `%m`

    архітектура (апаратна) комп’ютера

  `%%`

    один символ відсотків — `%`

  Типовим є значення Welcome to %s at %n.

`AntiAliasing`

  Визначає, чи слід застосовувати до шрифтів вікна входу до системи згладжування.

  Типовим є значення false.

`GreetFont`

  Шрифт заголовка вікна входу до системи.

  Типовим є значення Serif,20,bold.

`StdFont`

  Шрифт звичайних повідомлень вікна входу до системи.

  Типовим є значення Sans Serif,10.

`FailFont`

  Шрифт, який буде використано для повідомлення про невдалу спробу входу до системи.

  Типовим є значення Sans Serif,10,bold.

`NumLock`

  Визначає стан модифікатора Num Lock на час запуску вікна входу до системи:

  `Off`

    вимкнути

  `On`

    увімкнути

  `Keep`

    не змінювати стан

  Типовим є значення Keep.

`Мова`

  Визначає мову і локаль, яку слід використовувати у вікні входу до системи, закодовану у вигляді, подібному до змінної середовища $`LC_LANG`.

  Типовим значенням є en_US.

`UserCompletion`

  Увімкнути автоматичне доповнення у рядку введення імені користувача.

  Типовим є значення false.

`UserList`

  Показувати список користувачів з іменами для входу до unix, справжніми іменами і зображеннями у вікні входу.

  Типовим є значення true.

`ShowUsers`

  Цей параметр визначає список користувачів, який буде показано у вікні користувача (`UserList`) і/або запропоновано під час автодоповнення (`UserCompletion`). Якщо цей параметр має значення `Selected`, параметр `SelectedUsers` повинен містити остаточний список користувачів. Якщо значенням є `NotHidden`, списком буде початковий список всіх користувачів, знайдених у системі. Користувачів, які фігуруватимуть у значенні параметра `HiddenUsers` буде вилучено зі списку, те саме станеться з користувачами, UID яких більший за визначений параметром `MaxShowUID` і користувачами з ненульовим UID, меншим за вказаний у параметрі `MinShowUID`. Записи у значеннях параметрів `SelectedUsers` і `HiddenUsers`, першим символом яких є `@`, відповідають всім користувачам групи, визначеної цим записом. Нарешті, список користувачів буде впорядковано за абеткою, якщо увімкнено параметр `SortUsers`.

  Типовим є значення NotHidden.

`SelectedUsers`

  Див. `ShowUsers`.

  Типово, цей параметр є порожнім

`HiddenUsers`

  Див. `ShowUsers`.

  Типово, цей параметр є порожнім

`MinShowUID`

  Див. `ShowUsers`.

`MaxShowUID`

  Див. `ShowUsers`.

  Типовим є значення 65535.

`SortUsers`

  Див. `ShowUsers`.

  Типовим є значення true.

`FaceSource`

  Якщо увімкнено параметр `UserList`, цей параметр визначатиме звідки &kdm; має брати зображення для користувачів (піктограми або знімки):

  `AdminOnly`

    з `<`FaceDir`>/$`USER`.face[.icon]`

  `PreferAdmin`

    надавати перевагу зображенням з <`FaceDir`>, якщо не знайдено зображення, шукати у $`HOME`

  `PreferUser`

    ... і навпаки

  `UserOnly`

    лише з каталогу користувача `$`HOME`/.face[.icon]`

  Зображення можуть знаходитися у файлах будь-якого формату, який розпізнає Qt, але назви файлів повинні відповідати вимогам, які висуває до них &kdm;: `.face.icon` повинен бути файлом піктограми 48x48, а `.face` файлом зображення розміром 300x300. У поточній версій більші зображення використовуються лише за відсутності стандартних і зменшуються у розмірах, але у майбутньому програма відображатиме зображення у повному розмірі у полі логотипа або у вигляді вигулькної підказки.

  Типовим є значення AdminOnly.

`FaceDir`

  Див. `FaceSource`.

  Типовим є значення ${`kde_datadir`}/kdm/faces.

`PreselectUser`

  Визначає користувача (якщо такий буде), якого буде попередньо обрано для входу до системи:

  `None`

    не вибирати попередньо жодного з користувачів

  `Previous`

    останній користувач, який успішно увійшов до системи

  `Default`

    користувач, якого визначено параметром `DefaultUser`

  Якщо увімкнено параметр `FocusPasswd` і було попередньо обрано користувача, курсор автоматично переходитиме у поле для введення пароля.

  Увімкнення попереднього вибору користувача можна розглядати як дірку у безпеці системи, оскільки потенційний нападник у такому випадку знатиме назву одного з дійсний облікових записів, а отже, йому слід буде вгадати лише пароль. З іншого боку, можна встановити `DefaultUser` у значення фіктивного облікового запису.

  Типовим є значення None.

`DefaultUser`

  Див. `PreselectUser`.

  Типово, цей параметр є порожнім

`FocusPasswd`

  Див. `PreselectUser`.

  Типовим є значення false.

`EchoPasswd`

  Якщо значення цього параметра дорівнює «true», введений пароль буде показано у вигляді заповнювачів. У іншому випадку, ви взагалі не помітите змін на екрані.

  Типовим є значення true.

`UseBackground`

  Якщо увімкнено цей параметр, &kdm; автоматично запускатиме програму `krootimage` для налаштування тла; у іншому випадку за тло відповідатиме програма, визначена параметром `Setup`.

  Типовим є значення true.

`BackgroundCfg`

  Визначає файл налаштувань, який слід використовувати програмі `krootimage`. У цьому файлі має міститися розділ з назвою `[Desktop0]`, як і у `kdesktoprc`. Опису параметрів цього файла ви тут не знайдете, спробуйте здогадатися про їх значення або скористайтеся центром керування.

  Типовим значенням є ${`kde_confdir`}/kdm/backgroundrc.

`GrabServer`

  Щоб покращити параметри безпеки, вікно входу під час запуску перехоплює керування сервером X, а потім і керування клавіатурою. Цей параметр визначає, чи слід утримувати керування сервером X на час читання пари значень користувач+пароль. Якщо цей параметр буде вимкнено, керування сервером X буде припинено після перехоплення керування клавіатурою; у іншому випадку, керування сервером X триватиме до початку сеансу роботи.

  Вмикання цього параметра вимикає параметри `UseBackground` і `Setup`.

  Типовим є значення false.

`GrabTimeout`

  Цей параметр визначає максимальний час, який &kdm; чекатиме на успішне перехоплення керування. Спроба перехоплення може завершитися невдало, якщо сервером X вже керує якийсь клієнт X, або якщо перехоплено керування клавіатурою, або у мережі великі затримки проходження сигналу. Збільшувати час очікування слід обережно, оскільки користувача може бути ошукано схожим вікном на екрані. Якщо спроба перехоплення була невдалою, &kdm; завершує роботу і перезапускає сервер X (якщо це можливо) і сеанс.

  Типовим є значення 3.

`AuthComplain`

  Попереджувати, якщо дисплей немає розпізнавання X. Це може статися, якщо

  - неможливо створити файл розпізнавання для локального сервера X,

  - віддалений дисплей від &XDMCP; не надсилає запиту на будь-яке розпізнавання або

  - дисплей є foreign-дисплеєм, визначеним параметром `StaticServers`.

  Типовим є значення true.

`LoginMode`

  Цей параметр визначає, у якому режимі слід запускати вікно входу на локальних дисплеях: у режимі вибору вузлів (віддаленому) або у режимі входу до системи (локальному) і чи можна буде перемикатися на інший режим.

  `LocalOnly`

    можливий лише локальний вхід до системи

  `DefaultLocal`

    запустити у локальному режимі, але дозволити перехід у віддалений режим

  `DefaultRemote`

    ... і навпаки

  `RemoteOnly`

    можливий вибір лише віддалених вузлів

  Типовим значенням є LocalOnly.

`ChooserHosts`

  Список вузлів, які буде автоматично додано до меню віддаленого входу. Особлива назва `*` означає «всі виявлені». Не працюватиме, якщо параметр `LoginMode` має значення `LocalOnly`.

  Типовим значенням є *.

`ForgingSeed`

  Визначає число, яке буде використано для створення псевдовипадкової послідовності під час шифрування типів збережених сеансів тощо, для невідомих користувачів. Ці дії використовуються для утруднення отримання нападником інформації про існуючих користувачів методом виключення. Це значення має бути випадковим, але сталим у домені входу до системи.

`ShowLog`

  Вмикає вбудовану у &kdm; `xconsole`. Зауважте, що увімкнути її можна лише для одного дисплея одночасно. Цей параметр доступний, лише якщо під час компіляції &kdm; було використано параметр `--enable-kdm-xconsole`.

  Типовим є значення false.

`LogSource`

  Визначає джерело даних для вбудованої у &kdm; `xconsole`. Якщо значення порожнє, буде надіслано запит про переспрямування журналу консолі до `/dev/console`. Не працюватиме, якщо вимкнено параметр `ShowLog`.

  Типово, цей параметр є порожнім

`PluginsLogin`

  Визначає додатки діалогу для діалогового вікна входу до системи; першим обирається перший за списком. Кожен додаток можна визначити у вигляді базової назви (яку буде поширено до `$`kde_modulesdir`/kgreet_базова_назва`) або у вигляді повного шляху до файла.

  Додатки діалогу — це модулі вікна входу, які отримують дані розпізнавання від користувача. У поточній версії з &kde; постачається лише додаток `classic`; він показує добре відому форму для введення імені користувача і пароля.

  Типовим значенням є classic.

`PluginsShutdown`

  Те саме, що і `PluginsLogin`, але для діалогу завершення роботи.

  Типовим значенням є classic.

`PluginOptions`

  Визначає список параметрів у формі Ключ`=`Значення. Додатки діалогу можуть надсилати запити на ці параметри; цей параметр призначено для них, він визначає можливі значення ключів.

  Типово, цей параметр є порожнім

`AllowConsole`

  Показує пункт Вхід у консольному режимі у вікні входу (якщо налаштовано параметри `ServerTTY`/`ConsoleTTYs`).

  Типовим є значення true.

`AllowClose`

  Показувати пункт Перезапустити сервер X/Закрити з’єднання у вікні входу.

  Типовим є значення true.

`Preloader`

  Визначає програму, яку слід запустити доки видимим є вікно входу. Припускається, що це буде попереднє завантаження якомога більшої частини сеансу, який має буде запущено (найімовірніше використання).

  Типово, цей параметр є порожнім

`UseTheme`

  Чи слід використовувати теми у вікні входу.

  Типовим є значення false.

`Theme`

  Визначає назву теми, яку слід використовувати. Значення може вказувати на каталог або файл XML.

  Типово, цей параметр є порожнім

## Як визначити постійні сервери X

Кожен з записів у списку `StaticServers` визначає дисплей, яким слід постійно керувати, і який не використовуватиме &XDMCP;. Цей метод типово використовується лише для локальних серверів X, які було запущено &kdm;, але &kdm; може також керувати запущеними ззовні (foreign) серверами X, незалежно від того, чи було їх запущено на локальному комп’ютері або на віддаленому.

Формальний синтаксис виглядає так:

    назва дисплея [_клас дисплея]

для всіх серверів X. foreign-дисплеї відрізняються наявністю у них назви вузла, наприклад, `localhost`.

Назвою дисплея має бути щось, що можна передати у вигляді параметра `-display` програмі X. Цей рядок використовується для створення назв розділів, що стосуються певного дисплея, отже, ці назви мають збігатися. Назви дисплеїв &XDMCP; отримуються на основі адреси дисплея зворотним визначення назви вузла. З метою налаштування префікси `localhost` не вилучаються з назв локальних дисплеїв &XDMCP;, щоб зробити їх доступними з локального сервера X, запущеного &kdm;.

Частина клас дисплея також використовується у розділах, що стосуються певного дисплея. Ця частина корисна, якщо у вас є велика кількість подібних дисплеїв (такий собі табун X-терміналів), і ви бажаєте встановити параметри для групи з цих дисплеїв. Якщо використовується &XDMCP;, потрібен дисплей для визначення класу дисплеїв, отже, клас вашого пристрою має бути визначено у довіднику з певного X-термінала. Якщо цього визначення там немає, ви можете запустити &kdm; у режимі зневаджування і виконати команду `grep` над журналом у пошуках слова class.

Дисплеї, вказані за допомогою параметра `ReserveServers` не буде запущено під час запуску &kdm;, їх буде запущено лише прямою командою з гнізда команд. Якщо вказано резервні дисплеї, у меню &kde; внизу буде пункт Почати новий сеанс, який слід використовувати для активації резервного дисплея за допомогою започаткування нового сеансу входу до системи. Монітор перемкнеться на новий дисплей, і у вас буде хвилина на те, щоб увійти до системи. Якщо резервні дисплеї відсутні, пункт меню буде вимкнено.

Під час запуску сеансу &kdm; встановлює дані розпізнавання для сервера X. Для локальних серверів &kdm; передає параметр ``-auth` `назва_файла`` у рядок команди сервера X, щоб вказати серверові розташування даних розпізнавання. Для дисплеїв &XDMCP; &kdm; передає серверу X дані розпізнавання за допомогою повідомлення Accept &XDMCP;.

## Керування доступом до &XDMCP;

Файл, визначений за допомогою параметра `AccessFile`, містить інформацію, яку &kdm; використовує для керування доступом з дисплеїв, які потребують обслуговування за допомогою &XDMCP;. У цьому файлі є чотири типи записів: записи, які керують відповідями на запити Direct і Broadcast, записи, які керують відповідями на запити Indirect, визначення макросів, а також записи, які керують тим, на яких саме інтерфейсах мережі &kdm; очікуватиме на запити від &XDMCP;. Порожні рядки не обробляються, символ `#` позначає рядки коментарів, отже, рядки, що починаються з цього символу, також не буде оброблено, а символ `\` призводить до ігнорування розриву рядка, який за ним слідує — таким чином можна записувати список вузлів у декілька рядків.

Формат записів Direct є простим: це або назва вузла або шаблон, який буде порівняно з назвою вузла або пристрою дисплея. Крім того можна використовувати макроси, щоб запис поширювався на все, на що поширюється макрос. Шаблони відрізняються від звичайних записів назв вузлів використанням одного або декількох метасимволів; `*` відповідає послідовності з 0 або декількох символів, а `?` відповідає будь-якому одному символу. Якщо запис є назвою вузла, всі порівняння з ним будуть проводитися на основі адрес у мережі, отже, можна використовувати будь-яку назву, яка перетворюється на потрібну адресу у мережі. Зауважте, що буде використано лише першу з адрес у мережі, які повертаються у відповідь на запит назви вузла. У шаблонах під час порівняння використовуватимуться лише канонічні назви вузлів, отже, не використовуйте псевдонімів вузлів. Назви вузлів з запитів &XDMCP; завжди містять назву локального домену, навіть якщо зворотний пошук повертає коротку назву, отже, для локального домену можна використовувати шаблони. Використання символу `!` перед назвою вузла виключає записи вузлів, що відповідають цій назві, зі списку. Використання символу `=` перед назвою нічого не змінює, але цей символ слід використовувати під час визначення макроса, щоб відрізнити запис від визначення макроса. Щоб надавати відповіді лише на запити Direct для вузла або шаблона, до його назви можна дописати ключове слово `NOBROADCAST`. Цим можна скористатися, щоб сервер &kdm; не з’являвся у меню, отриманих на основі запитів Broadcast.

Запис Indirect також містить назву вузла, шаблон або макрос, але за ним слідує список назв вузлів, на які слід переспрямовувати запити. Записи Indirect також можна виключити, у цьому випадку слід надати хоч один (чинний) фіктивний вузол, щоб відрізнити запис від запису Direct. Якщо програму зібрано з підтримкою протоколу IPv6, у списки адрес для переспрямування запитів можна додавати групи адрес трансляції. Якщо список непрямих вузлів містить ключове слово `CHOOSER`, запити Indirect не буде переспрямовано одразу, замість цього у &kdm; буде відкрито діалогове вікно засобу вибору. Засіб вибору надішле Direct-запит до кожного з вузлів, що залишилися у списку, і покаже у меню всі вузли, від яких надійшла відповідь. Список вузлів може містити ключове слово `BROADCAST`, щоб наказати засобу вибору надіслати також запит Broadcast; зауважте, що на деяких операційних системах трансляція (broadcast) пакетів UDP неможлива, а отже, ця можливість не працюватиме.

Під час перевірки доступу до окремого вузла дисплея по черзі перевіряються всі записи і перший же відповідник визначає відповідь. Записи Direct і Broadcast буде проігноровано під час пошуку запису Indirect, і навпаки.

Макровизначення містить назву макроса і список назв вузлів та інших макросів, на які поширюється його дія. Щоб відрізнити макроси від назв вузлів, назви макросів починаються з символу `%`.

Останнім типом записів є директива `LISTEN`. Її формальний синтаксис такий:

     LISTEN [інтерфейс [список трансляції]]

Якщо вказано один або декілька рядків `LISTEN`, &kdm; очікуватиме на надходження &XDMCP;-запитів лише на вказаних інтерфейсах. Інтерфейсом може бути назва вузла або IP-адреса, що відповідає мережевому інтерфейсу комп’ютера, або шаблон заміни `*`, що відповідає всім доступним інтерфейсам мережі. Якщо у рядку `LISTEN` перелічено групи адрес трансляції, &kdm; приєднається до груп трансляції на заданому інтерфейсі. Для групових трансляцій IPv6 &XDMCP; як постійний діапазон адрес трансляції використовуватиметься IANA зі значенням ff0X:0:0:0:0:0:0:12b. X у префіксу можна замінити будь-яким чинним ідентифікатором контексту, таким, як 1 для Node-Local, 2 для Link-Local, 5 для Site-Local тощо (див. IETF RFC 2373 або його замінник, щоб дізнатися більше про визначення контекстів). Типовою поведінкою для &kdm; буде очікування на адресі ff02:0:0:0:0:0:0:12b контексту Link-Local, ще зроблено з метою найближчого відтворення поведінки трансляції у підмережі IPv4. If no Якщо рядків `LISTEN` немає, &kdm; очікуватиме на всіх інтерфейсах і приєднуватиметься до типової групової трансляції IPv6 &XDMCP; (якщо програму зібрано з підтримкою IPv6). Щоб взагалі вимкнути очікування запитів &XDMCP;, можна вказати рядок `LISTEN` без адреси, але слід надавати перевагу визначенню значення параметра `[Xdmcp]` `Enable`.

## Додаткові програми

На різних стадіях сеансу &kdm; запускає наступні програми. Типово, цими програмами є скрипти оболонки.

Програми Setup, Startup і Reset виконуються від імені користувача root, отже, при поводженні з ними слід зважати на параметри безпеки. Всім цим програмам передається параметр `auto`, якщо сеанс було запущено у результаті автоматичного входу до системи, у іншому випадку параметри цим програмам не передаються.

### Програма Setup

Програма `Xsetup` виконується після запуску або відновлення початкового стану сервера X, але перед запитом вікна входу. На цьому етапі можна змінити тло для користувача root (якщо вимкнено параметр `UseBackground`) або відкрити інші вікна, які мають з’явитися на екрані разом з вікном входу.

Крім будь-яких, визначених `ExportList`, змінних середовища, передаються і такі змінні:

DISPLAY

  асоційована назва дисплея

PATH

  значення параметра `SystemPath`

SHELL

  значення параметра `SystemShell`

XAUTHORITY

  може бути встановлено у значення файла уповноваження

DM_CONTROL

  значення параметра `FifoDir`

Зауважте, що оскільки &kdm; перехоплює керування клавіатурою, всі інші вікна не зможуть отримувати сигналів з клавіатури. Але вони можуть взаємодіяти з мишею і це може призвести до потенційних проблем з безпекою. Якщо увімкнено параметр `GrabServer`, `Xsetup` взагалі не зможе з’єднатися з дисплеєм. Ресурси для цієї програми можна розмістити у файлі з назвою `Resources`.

### Програма Startup

Програма `Xstartup` виконується від імені користувача root під час входу користувача до системи. На цьому етапі можна виконати команди, які додаватимуть записи у `utmp` (для цього може знадобитися програма `sessreg`), монтуватимуть домашні теки користувачів, або завершуватимуть сеанс, якщо не виконуються якісь вимоги (але зауважте, що у сучасних системах більшість цих функцій беруть на себе модулі PAM).

Крім будь-яких, визначених `ExportList`, змінних середовища, передаються і такі змінні:

DISPLAY

  асоційована назва дисплея

HOME

  початковий робочий каталог користувача

LOGNAME

  ім’я користувача

USER

  ім’я користувача

PATH

  значення параметра `SystemPath`

SHELL

  значення параметра `SystemShell`

XAUTHORITY

  може бути встановлено у значення файла уповноваження

DM_CONTROL

  значення параметра `FifoDir`

&kdm; чекає на завершення роботи цієї програми, перш ніж почати сеанс користувача. Якщо код завершення програми ненульовий, &kdm; припиняє сеанс і розпочинає новий цикл розпізнавання.

### Програма Session

Програма `Xsession` — це команда, яка запускається як сеанс користувача. Вона виконується з правами розпізнаного користувача. Як перший параметр цій програмі передається оболонкою одне з ключових слів `failsafe`, `default` або `custom` або рядок до `eval`.

Крім будь-яких, визначених `ExportList`, змінних середовища, передаються і такі змінні:

DISPLAY

  асоційована назва дисплея

HOME

  початковий робочий каталог користувача

LOGNAME

  ім’я користувача

USER

  ім’я користувача

PATH

  значення параметра `UserPath` (або `SystemPath` для сеансів користувача root)

SHELL

  типова оболонка користувача

XAUTHORITY

  можу бути встановлене у значення нестандартного файла уповноваження

KRBTKFILE

  може бути встановлено у значення назви кешу уповноваження Kerberos4

KRB5CCNAME

  може бути встановлено у значення назви кешу уповноваження Kerberos5

DM_CONTROL

  значення параметра `FifoDir`

XDM_MANAGED

  буде містити список параметрів, які можуть бути корисними у сеансі, розділений комами, подібний до того, який використовує додаток діалогу для входу у систему

DESKTOP_SESSION

  назва сеансу, який користувач обрав для запуску

### Програма Reset

Симетрична до `Xstartup`, програма `Xreset` виконується після завершення сеансу користувача. Ця програма виконується від імені користувача root, у ній містяться команди, які скасовують дії виконані командами програми `Xstartup`, вилучаються записи з `utmp` і розмонтовуються каталоги з файлових серверів.

Змінні середовища, які було передано до `Xstartup`, також передаються і `Xreset`.