.xinitrcの設定


Last Update: 2009/06/12
14932 th Visitor

startxとxinit

Xを起動させる時に「startx」とするのと「xinit」とするのでは、結果が違います。
これは.xinitrcというファイルに起因しています。
.xinitrcはXの基本設定ファイルで、ここにX起動時に起動するアプリケーション、設定などが記述されます。

例えば「startx」でXを起動させる時にxtermが3つ、xclockが1つ起動するのは、このファイルに起動するように記述されているからです。

Xが起動する時「startx」コマンドの時は全ユーザー共通の.xinitrcを読んでから、ユーザーのホームディレクトリにある.xinitrcを読みとり、Xを起動します。。
これに対して「xinit」で起動した時は、ユーザーのホームディレクトリにある.xinitrcのみを参照しXを起動します。

そのためXをインストールした直後は.xinitrcがホームディレクトリに存在しないので「xinit」で起動した時はxtermが1つのみの画面になるのです。

.xinitrc

.xinitrcは、全ユーザー共通の.xinitrcをホームディレクトリに持ってきて、これを改造してやるのが良いでしょう。

> cp /usr/X11R6/lib/X11/xinit/xiintrc ~/.xinitrc
> chmod 644 ~/.xinitrc  ←編集できるようにパーミッションを変更
> vi ~/.xinitrc

この.xinitrcは以下のようになっています。

#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

userresources=$HOME/.Xresources  (ユーザーの.Xresourcesのパス)
usermodmap=$HOME/.Xmodmap  (ユーザーの.Xmodmapのパス)
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources  (共通の.Xresourcesのパス)
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap  (共通の.Xmodmapのパス)

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources  (共通の.Xresourcesを読み込み)
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap  (共通の.Xmodpapを読み込み)
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources  (ユーザーの.Xresourcesを読み込み)
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap  (ユーザーの.Xmodpapを読み込み)
fi
fi

# start some nice programs

twm &  (Window Manager twmを起動)
xclock -geometry 50x50-1+1 &  (xclockを起動)
xterm -geometry 80x50+494+51 &  (xtermを起動)
xterm -geometry 80x20+494-0 &  (xtermを起動)
exec xterm -geometry 80x66+0+0 -name login  (xtermを起動)

.XresourceというのはXのアプリケーションの設定を記述するファイルです。
X起動時に標準で読み込まれる.Xdefaultsと標準では読み込まれない.Xresourcesに分かれています。
上の.xinitrcでは.Xresourcesが存在すれば読み込むようになっていますので、実質.Xdefaultと.Xresourcesは同じ働きをすることになります。
.Xmodmapはキーボードのキーの設定ファイルです。
X上でキーマップをカスタマイズしたい場合に用います。

この.xinircは.Xresources、.Xmodmapを読み込み、その後アプリケーションを起動しています。
アプリケーションを起動するように記述されている部分は
# start some nice programs
と書いてある下の部分です。
ここに起動するアプリケーションが起動する順番に書いてあります。

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

まず、twmというのはWindowManagerです。
startxを実行してXを起動すると緑色のウィンドウの枠が現れると思います。
これがtwmです。
WindowManagerはその名の通りウィンドウを制御するためのアプリケーションでGUI操作には欠かせないものです。
FreeBSDでは様々なWindowManagerがあり、自分の好きなものに変更することができます。

twmの下にあるxclockというのは時計のアプリです。
Xを起動すると右上に時計が表示されると思いますが、これのことです。

その下に3つあるxtermというのはターミナルアプリケーションで、ここにコマンドを打ってFreeBSDを操作します。
コンソールと全く同じ動きをしますが、上のように複数起動することが可能ですのでコンソールよりも使い勝手が良いかと思います。

なおコマンドの最後に&が付いているものは、バックグラウンドで動作させているということです。
つまり、&が付いていない物がフォアグラウンドで動いていることになるんですが、簡単に言うと&が付いていないアプリケーションを終了するとXが終了する、と言うことです。
上の設定では一番下のxtermを終了させるとXが終了します。

-geometryというのは場所とウィンドウの大きさを指定するオプションです。
-geometry 80x66+0+0
だと、幅60、高さ66で画面の左上を基準にして0,0の座標に、という意味になります。
-1+1のように座標にマイナスが付いている場合は-1,1、つまり画面の右上の位置で右と上に1pxづつ空けて配置するという意味になります。

残りのオプションは各アプリケーションによって異なりますので、manを使ってマニュアルを参照してください。

このアプリケーションの起動部分の記述を変えれば、Xのデスクトップを自分好みに自由に変更することができます。


Xの設定


もどるにゅ

トップにもどるにゅ