.xinitrc - Xの初期状態の設定


.xinitrc は X Window System の初期状態を設定するファイルです。 xinit 等で X を立ち上げたときに実行されます。 ホームディレクトリ直下にあるはずです。ls -a で確認してください。 結局はただのシェルスクリプトですので、X 起動時に一緒に起動して欲しいアプリケーションのコマンドを記述しておくだけです。 なので、.xinitrc に記述しておくといい一般的なものだけを紹介していきます。

.xinitrc をを編集するときに、よくどういう状態になるのか調べるために、 .xinitrc に書き込んでは、exit して、 また xinit の繰り返しをする人がいますが、これは効率が悪すぎます。 kterm など端末エミュレータで実行してみて、「このツールはこの位置が良い。」 と決めてから .xinitrc に書き込んで、 そして最後に確認として、exit して xinit したほうがいいです。 あとこのファイルはシェルスクリプトですので、# でその行をコメントアウトできます。

Table of Contents

ウィンドウマネージャ Edit

.xinitrc 中でウィンドウマネージャが起動してあげましょう。 ウィンドウマネージャというのは、 ウィンドウを配置、移動、サイズ変更などを行うための機能を追加するプログラムです。 これのおかげでウィンドウのフレームが表示されて移動したりすることができます。 つまり、ウィンドウマネージャを起動しないと使い物になりません。

会津大学の場合デフォルトでは

mwm &

のような記述があると思います。 ここで、mwm というウィンドウマネージャを起動しています。 ここを

fvwm &

qvwm &

などに変えてみると楽しいかもしれません。 詳しくは ウィンドウマネージャのページへ。

xset - Xの各種設定 Edit

xset コマンドで X の各種設定ができます。 これも .xinitrc に記述しておくとよいと思います。 例えば、ビープ音を消すときには、

xset b off &

のように記述します。 キーボードのオートリピートを調整するには、

xset r rate [delay] [rate]

のようにします。詳しくは xset のページへ。

GUI ツールの起動 Edit

xinit を実行したときに最初から起動しておいてほしいGUI ツールを書いておくとよいと思います。 ウィンドウマネージャコマンドの次の行あたりに書いておくとよいと思います。 ポイントは & をつけてバックグラウンドで動かすことと、 -geometry オプションを使用することです。 geometry オプションは大抵の GUI ツールで指定できるはずです。 ツールの大きさや位置を指定することができます。 例えば、

xclock -geometry 55x55-0+0 &
kterm -geometry 188x194-151+0 &

のように指定します。

横幅x縦幅+横位置+縦位置

です。 横位置は、+ にすると左端が基準(数値0)になりますが、- にすると右端が基準になります。 縦位置では、+ にすると上端が基準になり、- にすると下端が基準になります。 つまり、左上が "+"で、右下が "-" です。

漢字クライアント Edit

日本人なので日本語が入力できるように漢字クライアント(kinput2など)を記述しておくとよいと思います。

kinput2 &

kterm などの端末エミュレータnetscape などのブラウザで Shift + スペース で日本語入力を行えるようになるはずです。

ルートウィンドウに画像を表示(壁紙設定) Edit

xv -quit -root -max 画像ファイル

または

display -window root 画像ファイル

のように画像ヴューワソフトを起動して壁紙を設定できます。 画像ファイルは絶対パスで指定したほうが安心でしょう。 xinit を実行するときにデフォルトディレクトリから移動している場合もあるので。

ほんとにちょっとしたことですが、画像ファイルのサイズは、 このときに調整するのではなく、あらかじめ調整しておいたほうがいいです。 そのほうが少しは起動が早くなるはずです。

xv -quitdisplay -window root のように実行すると、 実行後すぐに終了するようになっているので、この場合は & はいりません。

おまけ Edit

xinit のオプション Edit

% xinit -- -ar1 230 -ar2 25 

のようにするとキーボード押しっぱなしにおける、 キーリピート開始時間(-ar1)とリピート間隔(-ar2)を指定できます。 単位はミリ秒です。

% xset r rate [delay] [rate]

でもできるはずなので、どうでもいいかもしれません。

ちなみにどうでもいいですが、xinit コマンドでの -- は、これより前は X client のオプション、 以降は X server のオプションと解釈するための区切り文字に設定してあるようです。

会津大学ローカル Edit

会津大学標準設定ファイルの解説 Edit

会津大学標準設定ファイルは /home/student/stdskel/.xinitc にあります。~stdskel/.xinitrc でアクセス するといいでしょう。編集した結果不具合が生じるようであれば、一旦戻してください。 ちなみに 2003年現在、file.xinitrc のようになっています。 以下、内容を解説していきます。

sysresources=${SYSDIR}/.Xresources
sysmodmap=${SYSDIR}/.Xmodmap

userresources=${HOME}/.Xresources
usermodmap=${HOME}/.Xmodmap

# merge in defaults and keymaps

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

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

ここで、.Xresources, .Xmodmap を読み込んでいます。 .Xresources というのは X アプリケーションの標準値の設定ファイルです。 .Xmodmap というのはキーボードのキー割り当ての設定ファイルです。 詳しくは省略。

# set the fonts path
 
FONTLIST=" \
    ${XDIR}/lib/X11/fonts/ETL \
    ${XDIR}/lib/X11/fonts/Indian \
    ${XDIR}/lib/X11/fonts/Chinese \
    ${XDIR}/lib/X11/fonts/Japanese \
    ${XDIR}/lib/X11/fonts/Korean \
"
for fontdir in `echo $FONTLIST`
do
    if [ -f $fontdir/fonts.dir ]; then
        xset fp+ $fontdir
    fi
done

ここでフォントの設定をしています。 フォントを追加したい場合はこの FONTLIST の部分を編集します。 詳しくはXのフォントへ。

mwm &

sleep 1
xclock -geometry 55x55-0+0 -bg lightyellow &
xyoubin -geometry 72x48-2+90 &

xsetroot -solid gray40

このあたりでウィンドウマネージャやらいろいろソフトが起動しています。

mwm &

ウィンドウマネージャ mwm の起動です。ここを他のウィンドウマネージャコマンドに書き換えることになると思います。

sleep 1

で1秒待たせています。 あとはもろもろのソフトです。 デフォルト起動のソフトを追加したい場合はこのあたりに書き込むといいと思います。

xsetroot

は背景色を変更させたりするソフトです。ここを壁紙を設定するコマンドに書き換えることになると思います。

kterm -geometry 80x24-0-110 \
   -T 'kterm' -name 'kterm'  -bg lightblue \
   -km euc -sb \
   -xrm ".kterm.iconPixmap:${XDIR}/include/X11/bitmaps/terminal" \
   -fr r24 \
   -fn 12x24 -fk kanji24 &

ここで kterm が起動されています。

  • -geometry オプションは上でも説明したとおり、配置を決めます。
  • -T オプションでウィンドウのタイトルを指定します。-name で識別子を与えます
  • -bgバックグラウンドカラー(背景色)を設定できます。
  • -fg を使えばフォアグラウンドカラー(文字色)を設定できます。 色は xcolors で調べるとよいでしょう。 無論 '#rrggbb' のように rgb 16進表記の形式でもできます。
  • -km で文字コードを指定します。-km sjis のようにすると Shift_JIS を表示できる 端末になります。
  • -sb を指定するとスクロールバーが表示されます。
  • -xrm でアイコン画像をしています。
  • -fr でroman仮名フォント、-fn でnormal フォント -fk でkanjiフォントを指定します。

文字が大きくてお困りの人は

-fn 12x24 -fk kanji24

と書いてあるところを

-fn 8x16 -fk kanji16

にしちゃったりしましょう。 むしろ kterm のところをすべて消して、ただ単に、kterm & とするのも一興かもしれません。 (-sb はあったほうがいいと思いますが。)

exec kterm -geometry 50x4-0-0 \
   -T "Login@`hostname`" -name 'Login' -bg lightpink -km euc -sb \
   -xrm ".Login.iconPixmap:${XDIR}/include/X11/bitmaps/xlogo32" \
   -C

この kterm は -C オプションがあるのでコンソールとなります。 exec はとりあえずは気にしなくてもいいです。

Xinit と xinit の違い Edit

会津大学では xinit ではなく、Xinit コマンドを用いて X を起動するようにいわれます。 この Xinit は perl スクリプトで、 そこから /usr/openwin/bin/xinit を起動するようになっています。 ちなみに、会津大学の他の xinit (/usr/local/bin/xinit など)は Xinit へのシンボリックリンクに変更されているようです。 この perl スクリプトは xauth コマンドを実行してくれたりしているので便利です。 このスクリプトが自動的に xauth の設定をしてくれるので、rlogin 時に楽に GUI ツールの表示ができるのです。

X 終了時にコマンドを実行 Edit

X 終了時に

% ps auxww | grep `whoami`

を自動的に実行したいと思ったことはありませんか?自分はあります。 .xinitrc を編集すればなんとかなるかなと最初は思ったのですが、それだとやはり X 終了直前に実行されてしまいます。 それならもういっそのこと、と例の perl スクリプトである Xinit 自体を編集しました。

% cp `which Xinit` ~/bin/
% vi ~/bin/Xinit

で、最下行の exit 0; の直前に

system "ps auxww | grep `whoami`";

と追加します。あとは Xinit の変わりに ~/bin/Xinit と X を起動すれば X 終了時にこのコマンドを実行してくれます(もちろん ~/bin に優先的にパスを通していれば Xinit だけでも可能)。 すべてのプロセスを kill するスクリプトを作って実行するようにするのもいいでしょう。 ちなみにあまりお薦めしません。わかる人だけやってください。


xrea