]>

# Дисплейный менеджер (KDM)

Стеффен
Хансен

    stefh@dit.ou.dk

9 июля 1998
Версия 0.5-1

Этот документ описывает дисплейный менеджер KDE (KDM)

KDE
kdm
Russian
translation
Александр
Изьюров
русский
перевод
Alexander
Izyurov

## Введение

Дисплейный менеджер KDE это замена xdm, дисплейному менеджеру X. Kdm может использоваться вместе с небольшой программой kdmdesktop, которая генерирует красивый фон. Kdm превосходит xdm в нескольких отношениях:

- В Kdm выбор аргументов сессии происходит более дружественно (xdm не сообщает пользователю, какие аргументы он может генерировать).

- Окно Kdm может содержать кнопку ``Выключить'' (совсем как в диалоге входа в NT).

- В Kdm могут показываться изображения пользователей системы (идея украдена из диалога входа в IRIX).

- Kdm смотрится гораздо лучше, чем xdm ;-)

- Kdm можно настраивать в графической оболочке (в Центре управления KDE)

## Установка и настройка kdm

### Установка kdm

Посмотрите файл README! В нем сказано, как скомпилировать kdm. Но обычно вам не нужно компилировать kdm самому, так как он является частью пакета kdebase и компилируется вместе со всем остальным. Затем он устанавливается в ваш каталог $KDEDIR/bin.

ПРИМЕЧАНИЕ: `make install` уничтожит ваш старый `kdmrc`.

Во время инсталляции устанавливается новая версия файла `Xsetup&lowbar;0` . В частности, этот файл содержит строку

    kdmdesktop

для генерирования красивого фона (растровых изображений и цвета фона). Обычно этот файл находится в каталоге конфигурации xdm `/etc/X11/xdm/XSetup&lowbar;0` для Redhat и `/usr/X11R6/lib/X11/xdm/XSetup&lowbar;0` для S.u.S.E. Если ваш KDEDIR - не /opt/kde, вам, возможно придется изменить путь к kdmdesktop.

Если у вас установлена система PAM (что обычно для Red Hat 5 and 5.1), проверьте, чтобы в /etc/pam.conf были строки

    # xdm authorization
    xdm    auth       required     pam_unix_auth.so
    xdm    auth       required     pam_unix_acct.so

и добавьте их, если их нет.

Теперь пора тестировать kdm. Переведите вашу систему на runlevel (функциональный уровень), который не запускает xdm. Загляните в файл `/etc/inittab` и найдите строки:

    # default runlevel
    id:3:initdefault:

Значение после id: - номер функционального уровня по умолчанию, который сильно зависит от поставщика , и всегда хорошо объяснен в комментариях этого файла. Функциональный уровень c графическим входом (xdm) для наиболее распространенных комплектов следующий:

- 5 для Red Hat 3.x, 4.x и 5.x, LST

- 4 для Slackware

- 3 для S.u.S.E. 4.x and 5.x

Теперь попробуйте запустить kdm из командной строки вашей любимой оболочки:

    > kdm -nodaemon

Если вы увидите диалог входа kdm и сможете войти в систему, все замечательно. Основная причина возможного отказа - динамический загрузчик не находит динамических библиотек Qt или KDE. Когда все заработает, можно заменить xdm на kdm. Это опять же зависит от системы.

- в Redhat отредактируйте `/etc/inittab`, найдите xdm и замените на kdm (укажите полный путь).

- в S.u.S.E. отредактируйте файл `/sbin/init.d/xdm`, добавив первые строки

      . /etc/rc.config
      DISPLAYMANAGER=kdm
      export DISPLAYMANAGER

- для остальных вариантов системы все должно быть как в Redhat, но в этом я не очень уверен.

Для всех вариантов системы, которые я знаю, нужно изменить функциональный уровень (runlevel) в файле /etc/inittab (на 5 в Redhat, 3 в S.u.S.E. как указано выше, или в комментариях в самом файле inittab). Если у вас имеются только бинарные файлы библиотек KDE, убедитесь, что kdm установлен там, где это предполагают библиотеки. Это обычно /opt/kde/bin. Если вам не хочется изменять inittab, вы можете переименовать xdm в xdm.bak и сделать символическую ссылку xdm на kdm. Kdm читает общие установки дисплейного менеджера из конфигурационных файлов xdm и специфичные для kdm из файла &dollar;KDEDIR/share/config/kdmrc. Kdmdesktop тоже читает kdmrc.

### Разные менеджеры окон и kdm (выбор менеджеров окон)

Если вам нужно использовать разные менеджеры окон или вы просто хотите время от времени менять один на другой, вы можете воспользоваться программой выбора менеджера, встроенной в kdm. Она позволяет вам выбирать менеджер окон из списка. Для этого опять придется изменить некоторые файлы конфигурации. Сначала нужно изменить файл `Xsession` (он находится в `/etc/X11/xdm/` в Redhat и `/usr/X11R6/lib/X11/xdm/` в S.u.S.E.), чтобы передавать через него параметры. Для этого найдите строку `'exec $startup'` и замените ее на `'exec &dollar;startup " &dollar;@"'` (без') Теперь можно создать или изменить /etc/xinitrc или /.xinitrc так, чтобы он запускал нужный менеджер окон. Приведенный ниже скрипт может запускать три разных менеджера окон. Вы можете добавить еще, если хотите. Не забудьте скопировать ваш файл `.xinitrc` в `/etc/skel`, чтобы он автоматически создавался для каждого нового пользователя при его регистрации.

    #!/bin/bash
    #
    # .xsession/.xinitrc
    #
    # выбор менеджера окон
    #

    defaultwm=kde
    #Установить менеджер окон равным $1, если он был задан
    windowmgr=${1:-$defaultwm}

    #запустить нужный менеджер окон
    case ${windowmgr} in
      kde|kwm|kdestart)
    	WINDOWMANAGER=startkde
    	;;
      fvwm|fvwm2)
    	WINDOWMANAGER=fvwm2
    	;;

      fvwm95)
    	WINDOWMANAGER=fvwm95
    	;;

      *)    WINDOWMANAGER=windowmgr   # default for unknown wm's

    esac

    #
    # загрузка ресурсов
    #

    if [ -f /usr/X11R6/lib/X11/Xmodmap ]; then
        xmodmap /usr/X11R6/lib/X11/Xmodmap
    fi

    if [ -f ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap
    fi

    if [ -f ~/.Xdefaults ]; then
        xrdb -merge ~/.Xdefaults
    fi

    if [ -f ~/.Xresources ]; then
        xrdb -merge ~/.Xresources
    fi
    #
    # запуск менеджера окон
    #
    exec $WINDOWMANAGER

## Настройка kdm

Имеется программа с графическим интерфейсом для настройки kdm. Вы найдете ее в меню K/Настройки/Приложения. С помощью этой программы вы можете настроить некоторые параметры kdm (хранящиеся в kdmrc), но учтите, что kdm, как и xdm, требует точной настойки, так что читайте дальше.

Настройки, специфичные для kdm, устанавливаются редактированием файла "&dollar;KDEDIR/share/config/kdmrc". В kdmrc есть три раздела:

### KDM

Параметры в этом разделе:

    StdFont
    FailFont
    GreetFont
    GreetString
    SessionTypes
    LogoPixmap
    ShutdownButton
    Shutdown
    Restart
    UserView
    Users
    NoUsers
    SortUsers
    GUIStyle

Краткое описание параметров:

*Font

  строка описания шрифта следующего формата: Courier,12,5,iso-8859-1,50,0.

GreetString

  - заголовок окна входа в систему kdm.

SessionTypes

  - разделенный ``;'' список аргументов сеанса. По умолчанию - `SessionTypes=kde;failsafe`. Приведенный выше пример дополнительно использует менеджеры окон fvwm2 и fvwm95.

LogoPixmap

  Измените этот параметр, если вам не нравится логотип.

ShutdownButton, Shutdown and Restart

  ShutdownButton определяет, в каких случаях видна кнопка выключения и может принимать значения `All`, `None`, `RootOnly` and `ConsoleOnly`. Shutdown и Restart - команды, которые следует выполнить для выключения/перезагрузки. По умолчанию - `/sbin/halt` и `/sbin/reboot`. All - кнопки выключения/перезагрузки доступны всем, None - никому, RootOnly - только привилегированному пользователю, если вы установите ConsoleOnly, будут невозможны выключение/перезагрузка с удаленного терминала.

UserView

  Если этот параметр равен ``1'', окно kdm будет показывать изображение для каждого пользователя.

Users

  - разделенный ``;'' список имен пользователей, для которых будут установлены изображения. Если `UserView` установлен равным 1, а параметра `Users` нет, kdm ищет пользователей в файле паролей. Выводятся изображения тех пользователей, у которых есть реальное имя, кроме входного имени, домашний каталог и оболочка - остальное в файле паролей игнорируется. Kdm ищет в &dollar;KDEDIR/share/apps/kdm/pics/users/ портрет каждого пользователя. Если существует картинка Ваня.xpm, kdm использует ее в качестве портрета пользователя Ваня, иначе kdm использует default.xpm. Так что, если у вас есть маленькое фото каждого из пользователей вашей системы, поместите их в &dollar;KDEDIR/share/apps/kdm/pics/users/ для развлечения при входе в систему через kdm ;-) NOTE: Kdm работает с картинками разного размера, но очень маленькие и очень большие картинки рядом могут выглядеть некрасиво.

NoUsers

  - разделенный ``;'' список имен пользователей, которых не надо показывать. Используйте этот параметр, чтобы спрятать ``псевдопользователей'' вроде `sync` и `shutdown`.

SortUsers

  - если этот параметр равен ``0'', список пользователей отображается в том порядке, в котором он был прочитан KDE. По умолчанию список пользователей отображается в алфавитном порядке.

GUIStyle

  может быть либо `Motif` либо `Windows`.

### KDMDESKTOP

Этот раздел управляет фоном. Параметры:

    BackgroundPicture
    BackgroundColor
    BackgroundPictureTile
    BackgroundPictureCenter
    FancyBackground

Первый - имя файла изображения (полный путь), второй - название цвета, остальные - логические значения (`0` или `1`). Заметьте, что `FancyBackground=1` выглядит замечательно, но работает очень медленно.

### Locale

Этот раздел должен содержать только один параметр.

Language

  - язык, который будет использовать kdm. Параметр можно изменить внутри KDE. Значения - обычные en/de/fr/da/ru и т.д.

## Юридические вопросы

Kdm разработан на основе xdm, и что теперь с авторским правом? Kdm 0.1 написан Матиасом Эттрихом, все следующие версии - Стеффеном Хансеном. `stefh@dit.ou.dk`

Kdm - свободное программное обеспечение. Я точно не знаю, каковы условия распространения, так как в нем много кода из xdm. В любом случае, заявляю:

Для kdm необходима библиотека Qt, авторские права на которую принадлежат Troll Tech AS. Свободно распространяемые программы могут обычно использовать Qt бесплатно, подробности находятся в файле README.QT. Каждому разрешено изменять kdm и распространять то, что получится, при условии упоминания моего имени.

И, кстати: Kdm предоставляется без каких-либо гарантий, включая гарантии внешнего вида, товарных свойств и пригодности для какой бы то ни было цели.

Документация дополнена Грегором Цумштейном `zumstein@ssd.ethz.ch`. Последнее изменение 9 июля 1998 г.

Перевод на русский язык осуществил Александр Изъюров `izyurov@infopro.spb.su`