6.3. xinitrc

xinit(1) - это программа, запускающая X'ы. К ней есть некое подобие интерфейса под названием startx(1), который инициализирует один сеанс системы X Window. Вы могли и не слышать об xinit (возможно, вам это и не понадобится). Однако её конфигурационный файл определяет, какие программы (в том числе и какой оконный менеджер) будут запускаться при запуске X'ов. Сначала xinit проверяет ваш домашний каталог на предмет наличия в нём файла .xinitrc. Если файл найден, он будет запущен, в противном случае будет использован файл /var/X11R6/lib/xinit/xinitrc (используемый по умолчанию для всей системы). Вот пример файла xinitrc:

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# объединение значений по умолчанию и раскладок клавиатуры

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# запуск некоторых полезных программ

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Все блоки “if” предназначены для объединения различных конфигурационных параметров из других файлов. Наиболее интересная часть находится в конце файла, в которой описан запуск различных программ. Описанный сеанс начнётся с запуска оконного менеджера twm(1), часов и трёх терминалов. Обратите внимание на команду exec перед последним xterm. Она заменяет запущенный в данный момент командный процессор (тот, что выполняет этот скрипт xinitrc) на шелл xterm(1). Когда пользователь закроет этот xterm, сеанс X будет завершён.

Чтобы настроить свой сценарий запуска X'ов, скопируйте стандартный файл /var/X11R6/lib/xinit/xinitrc в ~/.xinitrc и отредактируйте его, заменив эти строки с программами на то, что пожелаете. У меня окончание этого файла довольно простое:

# Запуск оконного менеджера:
exec startkde

Обратите внимание, что в /var/X11R6/lib/xinit есть несколько различных файлов xinitrc.*, которые соответствуют различным оконным менеджерам и графическим интерфейсам пользователя. Вы можете использовать любой из них, который вам понравится.