CFA LogoCFA Logo Computer
Загрузка поиска
Новости Компьютеры Прайс-лист [Новое] Прайс-лист [Б/У] Для ноутбуков Конфигуратор ПК Заказ, Оплата, Доставка Сервис объявления Драйвера Статьи Как нас найти Контакты
Новости
RSS канал новостей
Согласно свежей информации в Сети, модифицированные версии графических ускорителей Radeon RX Vega ...
Компания PNY сообщает о выпуске графического ускорителя PNY GeForce GTX 1070 8GB XLR8. В данной ...
Сегмент корпусных вентиляторов в эти дни пополнился моделями в исполнении компании Raijintek. Речь ...
Компания GeIL накануне анонсировала оперативную память серии GeIL Super Luce RGB Lite DDR4. Данные ...
Специалисты компании iiyama предлагают своим клиентам новый крупноформатный монитор. Речь идет о ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Пингвин глядит в окошко

Сергей А.ЯРЕМЧУК grinder@ua.fm

После публикаций статей о различных оконных менеджерах (см. например «Дух просвещения», МК №34(205)) стали приходить письма о том, что указанные файлы для загрузки менеджера по умолчанию почему-то не работают. Да и обилие файлов, упомянутых мной при описании, изрядно запутало читателя. Сейчас я предлагаю разобраться, как найти правильный вариант, поскольку в различных дистрибутивах могут не использоваться те или иные конфигурационные файлы. Но давайте обо всем по порядку.

Как загрузить необходимый оконный менеджер? Если вы не установили параметр автоматической загрузки X-Window (для этого в файле /etc/inittab должен быть прописан по умолчанию уровень запуска 3, вот так: id:3:initdefault), то после того как вы прошли авторизацию в системе X-Window оконный менеджер можно запустить, набрав startx в командной строке. Запустится менеджер, установленный по умолчанию. Но создатели большинства современных дистрибутивов полагают (и вполне справедливо), что это должен быть обязательно KDE, ну на худой конец Gnome. Все, конечно, хорошо, если компьютер быстр, а что делать другим пользователям, которые по причине низкой производительности или в силу своих привычек используют другой менеджер? Существует множество способов запустить нужный оконный менеджер. Самый простой — это создать скрипт и в нем указать необходимую строку запуска. Но учтите: для того чтобы менеджер заработал, необходимо запустить X-Window, а потом уже сам менеджер, т.е. просто набрав в строке exec /usr/bin/startxfce, мы не добьемся нужного результата. Для запуска применяется специальная программа xinit. Приведенный ниже нехитрый скрипт запустит fluxbox (см. статью «Руки на стол!», МК №33(204)). Назовите его, например, mydesktop, не забыв сделать данный скрипт исполняемым (chmod +x):

Теперь достаточно набрать в командной строке mydesktop — загрузится fluxbox, и необходимость запоминать все параметры отпадет. Но так как при загрузке оконного менеджера нужно установить много различных параметров для удобства его использования, то прибегают к помощи скрипта startx, который в man назван даже фронтэндом к xinit. Синтаксис запуска:

Но в большинстве случаев пользователь выбирает графическую регистрацию в системе, т.е. X-Window запускается по умолчанию. А в диспетчере в списке для выбора доступного менеджера присутствуют все те же KDE и Gnome, по умолчанию загружается все тот же KDE. Что делать в этом случае? Давайте заглянем внутрь скриптов и поищем ответы. Скрипт startx в процессе загрузки просматривает значения необходимых переменных по очереди:

Далее в скрипте идет поиск необходимых для запуска значений; при неудаче выставляются значения по умолчанию. В этом же скрипте обнаруживается и старый знакомый:

В этой команде нас интересует аргумент $clientargs, выставляющий значение оконного менеджера, который будет запущен. В скрипте обнаруживаются три возможности задать значение данной переменной. Первый, наиболее приемлемый вариант, так как позволяет определить менеджер индивидуально для каждого пользователя (ведь системой могут пользоваться несколько человек), — прописать необходимое значение в файле $HOME/.xinitrc, имеющем к тому же приоритет при считывании. Для этого необходимо закомментировать все, что есть в данном файле, и в одной строке указать полный путь к требуемому оконному менеджеру. Например, /usr/local/bin/afterstep. Второй вариант сводится к проделыванию аналогичных действий с общесистемным файлом, находящимся в каталоге /etc/X11/xinit/xinitrc. И последний вариант: просто установить значение необходимого менеджера напрямую, используя для этой цели переменную defaultclientargs="". Но этот вариант сработает при условии, что два первых файла либо пустые, либо их не существует, в противном случае необходимо просто переместить присвоение значения непосредственно перед командой xinit, иначе при считывании файлов конфигурации установится взятое из него значение. В принципе, этого достаточно. Но давайте заглянем внутрь этих файлов — может, найдем там что-нибудь интересное. В файле .xinitrc, который находится в домашнем каталоге пользователя, обнаруживается такая вот строка: exec /etc/X11/Xsession $*. Если теперь посмотреть в данный файл (кстати, в Red Hat он не обнаружился, пример взят с AltLinux), находим следующий код, позволяющий установить необходимый оконный менеджер:

Отсюда следует, что скорее всего переменная, описанная в файлах $HOME/.desktop и /etc/sysconfig/desktop, и будет определять, какой загрузится оконный менеджер. Но как ее правильно определить? Строка должна иметь примерно такой вид: DESKTOP=$1. Но что должно быть присваиваемым аргументом? Дальше обнаруживаем такой вот загадочный код:

Т.е. по умолчанию данный скрипт запускает команду /usr/sbin/chksession -x=$DESKTOP. Соответствующая man-page показала, что параметр -х предписывает программе осуществлять вывод на свой stdout (стандартный вывод программы). А с помощью параметра -l можно просмотреть список доступных значений:

Вот он, ответ на наш вопрос. Из полученной информации следует: для того чтобы загрузить необходимый оконный менеджер, нужно прописать в файле $HOME/.desktop или /etc/sysconfig/desktop примерно такую строку: DESKTOP=Enlightenment.

Дальше — больше. Смотрим теперь, какие сюрпризы преподнесет файл etc/X11/xinit/xinitrc:

О, у нас добавились еще два файла для запуска нужного менеджера. Итак, поначалу запускается оконный менеджер, прописанный в файле .Xclients, который находится в домашнем каталоге пользователя. Формат записи аналогичен .xinitrc, т.е. /usr/bin/wmaker — для запуска WindowMaker'a, например. Если такового нет, то разыскивается файл с аналогичным названием в каталоге /etc/X11/xinit/ (общий для всех, как следует понимать из расположения). А при неудаче, чтобы хоть что-то запустить, выполняется запуск по умолчанию: часы —xclock, терминал —xterm, браузер netscape (если установлен в системе), загружающий страницу /usr/share/doc/HTML, и оконный менеджер fvwm2, либо совсем на худой конец twm. Такой вариант действует как раз в моем Red Hat 7.3.

Кстати, это еще не все сюрпризы — в том же AltLinux обнаружилась и такая строка:

Как видите, возможен вариант и с файлом .xsession в домашнем каталоге пользователя. В этом же файле обнаружилась такая строка:

Любой исполняемый файл, помещенный в каталог /etc/X11/xinit/xinitrc.d, будет выполнен при загрузке графической оболочки. Это можно использовать для загрузки дополнительных программ или инициализации переменных — в общем, для своих нужд.

Еще один момент. Запуск X-Window при его автоматической загрузке надо отслеживать чуть раньше. Все дело в том, что когда вы набираете в командной строке xinit …, предполагается, что вы уже зарегистрировались в системе, а в задачу любого оконного менеджера входит что угодно, кроме регистрации пользователя. Поэтому перед загрузкой менеджера необходимо сначала зарегистрировать пользователя в системе. Давайте посмотрим в файл inittab — может, там найдем ответ на вопрос.

Ага! Вот такая строка:

То есть при пятом уровне запуска (под коим подразумевается X-Window) будет загружен скрипт prefdm, находящийся в каталоге /etc/X11. Параметр -nodaemon дает init указание запускать prefdm как процесс переднего плана, а не как фоновый. Вот в этом-то скрипте и выбирается диспетчер регистрации в системе.

Для Unix существуют три диспетчера регистрации в графической оболочке. Самый старый из них —xdm, оригинальный диспетчер, обеспечивающий аутентификацию пользователя и поддерживающий протокол XDMCP (X Display Manager Control Protocol) — протокол удаленных серверов Х, используемых для регистрации на локальном компьютере и обеспечивающих возможность выбора узла. Два других диспетчера от создателей Gnome —gdm и kdm от разработчиков KDE, представляющие собой улучшенную реализацию xdm с дополнительными возможностями. Они отличаются более высоким уровнем безопасности, возможностью выбирать пользователя по фотографии (рисунку) вместо ввода имени.

Давайте посмотрим, что там внутри.

Из этого скрипта явствует, что если в файле /etc/sysconfig/desktop параметр DESKTOP равен GNOME, то вас будет встречать диспетчер gdm, а если KDE, то kdm, при установке же его равным AnotherLevel — старина xdm. Кстати, это скрипт для AltLinux, в других дистрибутивах совсем другие параметры. Например, в Mandrake в /etc/sysconfig/desktop возможно использование дополнительной специальной переменной DISPLAYMANAGER, которой присваивается значение необходимого диспетчера, —DISPLAYMANAGER=xdm. Но это не единственный способ поменять диспетчер регистрации. Самый простой заключается в удалении файла prefdm, вместо него создается символическая ссылка с таким же именем на нужный файл. Например, # ln -s /usr/X11R6/bin/xdm /etc/X11/prefdm для установки xdm.

Настроить поведение и внешний вид диспетчеров можно с помощью конфигурационных файлов. Для kdm они находятся в каталоге /etc/kde/kdm, а директории с конфигурационными файлами для gdm и xdm находятся в /etc/X11. Их название аналогично названию диспетчера.

Но создатели KDE и Gnome позаботились о неискушенном пользователе и предоставили графические утилиты для конфигурирования своих диспетчеров. Первая доступна через K > Центр управления (или просто kcontrol) > Системные > Менеджер входа в систему (Рис. 1). Для настройки gdm войдите через Ступня (а как это еще назвать?) > Программы > Система > GDM конфигуратор или просто наберите gdmconfig (Рис. 2), кому как привычней. Но создатели gdm пошли немного дальше. Дело в том, что, как вы понимаете, все описанные выше настройки должен производить только человек, обладающий правами администратора. Т.е. если вы отсканировали свою фотографию и хотите, чтобы она присутствовала в выборе пользователей, вы должны для этого бежать к сисадмину (это хорошо, конечно, если вы сам себе сисадмин :-)). А что делать, если она вам не понравилась, и вы хотите ее поменять, например, на фотографию Гозиллы? Опять, что ли, к нему бежать? Так пива не напасешься. Чтобы немного сэкономить на этом самом пиве, придумали утилиту gdmphotosetup, доступную также через Программы > Настройки > Setup my GDM Face и предназначенную как раз для установки необходимого файла изображения, который будет отождествляться с пользователем.

Рис. 1   Рис. 2

Пора подвести некоторый итог. Самый простой способ сменить менеджер — это прописать путь к нему в файле $HOME/.xinitrc и больше не ломать себе голову. Но все-таки наиболее продвинутым вариантом, я думаю, будет проследить по скриптам, в каком еще файле можно назначить замену. Это позволит дополнительно использовать другие конфигурационные файлы — для установки пользовательской раскладки, например. Диспетчер, который встречает вас первым, — вещь непостоянная, поддающаяся как смене, так и настройке. Таким образом, из нашего исследования явствует один из недостатков Linux, не присущий, например, FreeBSD, — при смене дистрибутива пользователю необходимо некоторое время на его освоение. Надеюсь, теперь все ясно.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © www.sector.biz.ua 2006-2015 design by Vadim Popov