コマンド行でクライアントを指定していない場合、xinit はユーザ のホームディレクトリにある .xinitrc ファイルを参照し、このファイ ルをシェルスクリプトとして実行してクライアントプログラムを起動する。 このファイルも存在しない場合、xinit はデフォルトの動作として次の コマンドを実行する:
xterm -geometry +1+1 -n login -display :0
コマンド行でサーバプログラムを指定していない場合、xinit はユー ザのホームディレクトリにある .xserverrc ファイルを参照し、このファ イルをシェルスクリプトとして実行してサーバを起動する。 このファイルも存在しない場合、xinit はデフォルトの動作として次の コマンドを実行する:
X :0
この動作は現在のコマンド検索パスに X というプログラムがあること を仮定している点に注意すること。しかし、サーバの名前は通常 Xdisplaytype になっている(displaytype はこのサーバが動かす グラフィックスディスプレイのタイプ)。したがって、サイト管理者はこのマ シンにおける適切なタイプのサーバへのリンクを作るか、シェルスクリプトを 用意して、そこで適切なサーバ指定の下に xinit を実行するようにし なければならない。
.xserverrc を使う際には、実際に使う X サーバは必ず ``exec'' を使っ
て実行すること。
これを行わないと、X サーバの起動や終了が遅くなることがある。
``exec'' の使用例を以下に示す:
exec Xdisplaytype
気を付けなければならないのは、.xinitrc から起動するプログラムは (すぐに終了するものでない限りは)バックグラウンドで実行しなければならな いということである。さもなくば、他のプログラムを起動することができなく なってしまう。 しかし、長期間動作するプログラムのうち最後に記述するもの(普通はウィン ドウマネージャや端末エミュレータ)だけはフォアグラウンドで実行しなけれ ばならない。これはスクリプトが終了しないようにするためである(つまり、 このスクリプトが終了すると xinit も終了してしまう)。
コマンド行で別のクライアントやサーバを指定することもできる。実行さ せるクライアントプログラムとその引き数は、xinit の最初のコマンド ライン引き数として指定する。特定のサーバのコマンド行を指定するには、 xinit のコマンド行(クライアントとその引き数の後)にダッシュ2 個(--)を追加し、その後にサーバのコマンドを記述する。
クライアントとサーバのプログラム名は、スラッシュ(/)またはピリオド(.)で 始めなければならない。さもないと、デフォルトのクライアントやサーバの起 動コマンドへの追加的な引き数として扱われる。逆にこれを利用すれば、コマ ンドライン全体を入力することなく引き数(フォアグラウンドカラーやバック グラウンドカラー等)を追加することができる。
サーバ名が明示的に指定されておらず、ダッシュ2個(--)に続く最初の引 き数が「:数字」の形になっている場合、xinit はこの数字をゼロの代 わりにディスプレイ番号として使用する。残りの引き数は全てサーバのコマン ドラインに追加される。
以下に .xinitrc の例を示す。これは時計、端末エミュレータを起動 し、「最後の」アプリケーションとしてウィンドウマネージャを動作させたま まにする。ウィンドウマネージャの設定が正しければ、ウィンドウマネージャ のメニューで終了を選ぶと X を終了させることができる。
xrdb -load $HOME/.Xresources xsetroot -solid gray & xclock -g 50x50-0+0 -bw 0 & xload -g 50x50-50+0 -bw 0 & xterm -g 80x24+0+0 & xterm -g 80x24+0-0 & twm
X を起動するためのサイト共通の環境を用意する場合は、 デフォルトの .xinitrc を作って、それらがサイト共通の起動ファイル を参照するようにするだけで良い。これは以下のようなものである:
#!/bin/sh . /usr/local/lib/site.xinitrc
別の方法としては、適当なスクリプトを書いて、そこから xinit を適 切なシェルスクリプトと共に起動するようにすればよい。このようなスクリプ トには通常 x11, xstart, startx といった名前が付けら れ、初心者ユーザに簡単なインタフェースを提供するための便利な方法として 使われる。
#!/bin/sh xinit /usr/local/lib/site.xinitrc -- /usr/X11R6/bin/X bc