Linux для пользователя
Шрифт:
Если конкретное имя сервера не указано и следом за двойным тире идет двоеточие с последующей цифрой, xinit будет воспринимать это число как номер дисплея вместо предполагаемого по умолчанию нуля. Вообще все следующие за двойным тире аргументы добавляются к командной строке вызова сервера.
Вот несколько примеров командной строки вызова программы xinit.
Этой командой будет запущен сервер, на который указывает ссылка (линк) X, и выполнен пользовательский скрипт.xinitrc, если таковой существует, а
Таким образом, можно запустить какой-то конкретный сервер на альтернативном дисплее.
По этой команде будет запущен сервер, на который указывает ссылка X, и запускаемой по умолчанию команде xterm будут переданы аргументы, перечисленные в командной строке. Скрипт .xinitrc будет проигнорирован.
В этом случае для запуска сервера используется команда.Xsun -l -c, а запускаемому по умолчанию программе-клиенту xterm будет переданы аргументы -e widgets.
Поскольку пользователю-новичку обычно не хватает квалификации для создания собственного варианта скрипта.xinitrc, администраторы сайтов могут помочь им в вызове графического интерфейса, создав общедоступный скрипт, выполняющий эту функцию. Такие скрипты обычно называются x11, xstart, или startx и являются удобным способом создания простого интерфейса для пользователей-новичков. Вот пример простейшего скрипта такого вида:
При инсталляции стандартной версии Red Hat Linux создается более сложный вариант скрипта startx, который расположен в каталоге /usr/X11/bin (вы можете его просмотреть). Для него существует и man-страница, в которой говорится, что этот скрипт создается просто как образец для администраторов сайтов, и предназначен для создания собственных вариантов такого скрипта.
Если просмотреть стандартный вариант скрипта startx, мы увидим, что практически он сводится к выполнению всего-навсего трех команд:
То есть, в конечном итоге, startx вызывает уже рассмотренную нами команду xinit, только предварительно формирует нужные значения аргументов командной строки для нее. Первый аргумент - имя файла xinitrc, причем если в домашнем каталоге пользователя есть файл.xinitrc, то берется он (с указанием пути), а если в домашнем каталоге нет такого файла, то берется общесистемный файл /etc/X11/xinit/xinitrc, т. е. "clientargs" = "/etc/X11/xinit/xinitrc".
Аналогично формируется значение переменной serverargs: если существует файл.xserverrc в домашнем каталоге пользователя, то переменная serverargs будет указывать на него. Если такого файла нет, то serverargs укажет на /etc/X11/xinit/xserverrc. Переменной display присваивается значение: 0. Далее в скрипте startx производится анализ аргументов, которые были заданы в командной строке при его вызове (эту часть мы пока не будем детально разбирать, поскольку для начала будем вызывать скрипт без параметров) и, наконец, в конец строки вызова xinit добавляется -auth $HOME/.Xauthority. Таким образом, сразу после установки системы (пока пользователь не создал файлов .xinitrc и .xserverrc в своем домашнем каталоге) будет вызываться в следующем виде:
Команды xauth и опция -auth $HOME/.Xauthority, передаваемая X-серверу, служат для авторизации пользователя, запускающего графический режим. Механизмы авторизации нас пока не интересуют, так что рассматривать эту часть не будем (если интересно, см. интерактивное руководство man с параметром Xsecurity).
7.5. Выбор и настройка менеджера окон
Если вам удалось добиться того, что X Window работает, у вас имеется масса возможностей для дальнейшей настройки. Конкретный набор этих возможностей зависит от того, какой менеджер окон вы используете. Менеджеров окон существует много, и можно организовать выбор менеджера окон на этапе загрузки графического режима. Вот пример, показывающий как можно сделать это с помощью файла.xinitrc:
Хотя это и не обязательно, можно сделать этот файл исполняемым с помощью команды
Этот вариант .xinitrc позволяет вам выбрать менеджер окон, попробуйте, например:
Если администратор хочет создать одинаковое начальное окружение для всех пользователей, можно сделать так, чтобы по умолчанию для пользователя создавался скрипт.xinitrc, который ссылается на общий стартовый скрипт: