Дисплейный менеджер (KDM) <author>Стеффен Хансен, <tt><htmlurl url="mailto:stefh@dit.ou.dk" name="stefh@dit.ou.dk"></tt> <date>Версия 0.5-1, 9 июля 1998 <abstract> Этот документ описывает дисплейный менеджер KDE (KDM) </abstract> <!-- Table of contents --> <toc> <!-- Begin the document --> <sect>Введение <p> Дисплейный менеджер KDE это замена xdm, дисплейному менеджеру X. Kdm может использоваться вместе с небольшой программой kdmdesktop, которая генерирует красивый фон. Kdm превосходит xdm в нескольких отношениях: <itemize> <item>В Kdm выбор аргументов сессии происходит более дружественно (xdm не сообщает пользователю, какие аргументы он может генерировать). <item>Окно Kdm может содержать кнопку ``Выключить'' (совсем как в диалоге входа в NT). <item>В Kdm могут показываться изображения пользователей системы (идея украдена из диалога входа в IRIX). <item>Kdm смотрится гораздо лучше, чем xdm ;-) <item>Kdm можно настраивать в графической оболочке (в Центре управления KDE) </itemize> <sect>Установка и настройка kdm <p> <sect1>Установка kdm <p> Посмотрите файл README! В нем сказано, как скомпилировать kdm. Но обычно вам не нужно компилировать kdm самому, так как он является частью пакета kdebase и компилируется вместе со всем остальным. Затем он устанавливается в ваш каталог $KDEDIR/bin. <p> <bf/ПРИМЕЧАНИЕ:/ <tt/make install/ уничтожит ваш старый <tt/kdmrc/. <p> Во время инсталляции устанавливается новая версия файла <TT/Xsetup_0/ . В частности, этот файл содержит строку <tscreen><verb>kdmdesktop</verb></tscreen> для генерирования красивого фона (растровых изображений и цвета фона). Обычно этот файл находится в каталоге конфигурации xdm <tt>/etc/X11/xdm/XSetup_0</tt> для Redhat и <tt>/usr/X11R6/lib/X11/xdm/XSetup_0</tt> для S.u.S.E. Если ваш KDEDIR - не /opt/kde, вам, возможно придется изменить путь к kdmdesktop. <p> Если у вас установлена система PAM (что обычно для Red Hat 5 and 5.1), проверьте, чтобы в /etc/pam.conf были строки <tscreen><verb> # xdm authorization xdm auth required pam_unix_auth.so xdm auth required pam_unix_acct.so </verb></tscreen> и добавьте их, если их нет. <p> Теперь пора тестировать kdm. Переведите вашу систему на runlevel (функциональный уровень), который не запускает xdm. Загляните в файл <tt>/etc/inittab</tt> и найдите строки: <tscreen><verb> # default runlevel id:3:initdefault: </verb></tscreen> Значение после id: - номер функционального уровня по умолчанию, который сильно зависит от поставщика , и всегда хорошо объяснен в комментариях этого файла. Функциональный уровень c графическим входом (xdm) для наиболее распространенных комплектов следующий: <itemize> <item>5 для Red Hat 3.x, 4.x и 5.x, LST <item>4 для Slackware <item>3 для S.u.S.E. 4.x and 5.x </itemize> Теперь попробуйте запустить kdm из командной строки вашей любимой оболочки: <tscreen><verb> > kdm -nodaemon </verb></tscreen> Если вы увидите диалог входа kdm и сможете войти в систему, все замечательно. Основная причина возможного отказа - динамический загрузчик не находит динамических библиотек Qt или KDE. Когда все заработает, можно заменить xdm на kdm. Это опять же зависит от системы. <itemize> <item>в Redhat отредактируйте <tt>/etc/inittab</tt>, найдите xdm и замените на kdm (укажите полный путь). <item>в S.u.S.E. отредактируйте файл <tt>/sbin/init.d/xdm</tt>, добавив первые строки <tscreen><verb> . /etc/rc.config DISPLAYMANAGER=kdm export DISPLAYMANAGER </verb></tscreen> <item>для остальных вариантов системы все должно быть как в Redhat, но в этом я не очень уверен. </itemize> Для всех вариантов системы, которые я знаю, нужно изменить функциональный уровень (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 из файла $KDEDIR/share/config/kdmrc. Kdmdesktop тоже читает kdmrc. <sect1>Разные менеджеры окон и kdm (выбор менеджеров окон) <p> Если вам нужно использовать разные менеджеры окон или вы просто хотите время от времени менять один на другой, вы можете воспользоваться программой выбора менеджера, встроенной в kdm. Она позволяет вам выбирать менеджер окон из списка. Для этого опять придется изменить некоторые файлы конфигурации. Сначала нужно изменить файл <tt/Xsession/ (он находится в <tt>/etc/X11/xdm/</tt> в Redhat и <tt>/usr/X11R6/lib/X11/xdm/</tt> в S.u.S.E.), чтобы передавать через него параметры. Для этого найдите строку <tt>'exec $startup'</tt> и замените ее на <tt>'exec $startup " $@"'</tt> (без') Теперь можно создать или изменить /etc/xinitrc или ~/.xinitrc так, чтобы он запускал нужный менеджер окон. Приведенный ниже скрипт может запускать три разных менеджера окон. Вы можете добавить еще, если хотите. Не забудьте скопировать ваш файл <tt/.xinitrc/ в <tt>/etc/skel</tt>, чтобы он автоматически создавался для каждого нового пользователя при его регистрации. <tscreen><verb> #!/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 </verb></tscreen> <sect>Настройка kdm <p> Имеется программа с графическим интерфейсом для настройки kdm. Вы найдете ее в меню K/Настройки/Приложения. С помощью этой программы вы можете настроить некоторые параметры kdm (хранящиеся в kdmrc), но учтите, что kdm, как и xdm, требует точной настойки, так что читайте дальше. <p> Настройки, специфичные для kdm, устанавливаются редактированием файла "$KDEDIR/share/config/kdmrc". В kdmrc есть три раздела: <sect1>KDM <p> Параметры в этом разделе: <tscreen><verb> StdFont FailFont GreetFont GreetString SessionTypes LogoPixmap ShutdownButton Shutdown Restart UserView Users NoUsers SortUsers GUIStyle </verb></tscreen> Краткое описание параметров: <descrip> <tag/*Font/ строка описания шрифта следующего формата: Courier,12,5,iso-8859-1,50,0. <tag/GreetString/ - заголовок окна входа в систему kdm. <tag/SessionTypes/ - разделенный ``;'' список аргументов сеанса. По умолчанию - <tt/SessionTypes=kde;failsafe/. Приведенный выше пример дополнительно использует менеджеры окон fvwm2 и fvwm95. <tag/LogoPixmap/ Измените этот параметр, если вам не нравится логотип. <tag/ShutdownButton, Shutdown and Restart/ ShutdownButton определяет, в каких случаях видна кнопка выключения и может принимать значения <tt/All/, <tt/None/, <tt/RootOnly/ and <tt/ConsoleOnly/. Shutdown и Restart - команды, которые следует выполнить для выключения/перезагрузки. По умолчанию - <tt>/sbin/halt</tt> и <tt>/sbin/reboot</tt>. All - кнопки выключения/перезагрузки доступны всем, None - никому, RootOnly - только привилегированному пользователю, если вы установите ConsoleOnly, будут невозможны выключение/перезагрузка с удаленного терминала. <tag/UserView/ Если этот параметр равен ``1'', окно kdm будет показывать изображение для каждого пользователя. <tag/Users/ - разделенный ``;'' список имен пользователей, для которых будут установлены изображения. Если <tt>UserView</tt> установлен равным 1, а параметра <tt>Users </tt>нет, kdm ищет пользователей в файле паролей. Выводятся изображения тех пользователей, у которых есть реальное имя, кроме входного имени, домашний каталог и оболочка - остальное в файле паролей игнорируется. Kdm ищет в $KDEDIR/share/apps/kdm/pics/users/ портрет каждого пользователя. Если существует картинка Ваня.xpm, kdm использует ее в качестве портрета пользователя Ваня, иначе kdm использует default.xpm. Так что, если у вас есть маленькое фото каждого из пользователей вашей системы, поместите их в $KDEDIR/share/apps/kdm/pics/users/ для развлечения при входе в систему через kdm ;-) <bf>NOTE:</bf> Kdm работает с картинками разного размера, но очень маленькие и очень большие картинки рядом могут выглядеть некрасиво. <tag/NoUsers/ - разделенный ``;'' список имен пользователей, которых не надо показывать. Используйте этот параметр, чтобы спрятать ``псевдопользователей'' вроде <tt>sync</tt> и <tt>shutdown</tt>. <tag/SortUsers/ - если этот параметр равен ``0'', список пользователей отображается в том порядке, в котором он был прочитан KDE. По умолчанию список пользователей отображается в алфавитном порядке. <tag/GUIStyle/ может быть либо <tt/Motif/ либо <tt/Windows/. </descrip> <sect1>KDMDESKTOP <p> Этот раздел управляет фоном. Параметры: <tscreen><verb> BackgroundPicture BackgroundColor BackgroundPictureTile BackgroundPictureCenter FancyBackground </verb></tscreen> Первый - имя файла изображения (полный путь), второй - название цвета, остальные - логические значения (<tt>0</tt> или <tt>1</tt>). Заметьте, что <tt>FancyBackground=1</tt> выглядит замечательно, но работает <bf>очень</bf> медленно. <p> <sect1>Locale <p> Этот раздел должен содержать только один параметр. <p> <descrip> <tag/Language/ - язык, который будет использовать kdm. Параметр можно изменить внутри KDE. Значения - обычные en/de/fr/da/ru и т.д. </descrip> <p> <sect>Юридические вопросы <p> Kdm разработан на основе xdm, и что теперь с авторским правом? Kdm 0.1 написан Матиасом Эттрихом, все следующие версии - Стеффеном Хансеном. <tt><htmlurl url="mailto:stefh@dit.ou.dk" name="stefh@dit.ou.dk"></tt> Kdm - свободное программное обеспечение. Я точно не знаю, каковы условия распространения, так как в нем много кода из xdm. В любом случае, заявляю: Для kdm необходима библиотека Qt, авторские права на которую принадлежат Troll Tech AS. Свободно распространяемые программы могут обычно использовать Qt бесплатно, подробности находятся в файле README.QT. Каждому разрешено изменять kdm и распространять то, что получится, при условии упоминания моего имени. И, кстати: Kdm предоставляется без каких-либо гарантий, включая гарантии внешнего вида, товарных свойств и пригодности для какой бы то ни было цели. Документация дополнена Грегором Цумштейном <tt><htmlurl url="mailto:zumstein@ssd.ethz.ch" name="zumstein@ssd.ethz.ch"></tt>. Последнее изменение 9 июля 1998 г. <p> Перевод на русский язык осуществил Александр Изъюров <tt><htmlurl url="mailto:izyurov@infopro.spb.su" name="izyurov@infopro.spb.su"</tt> </article>