FreeBSD QandA 1032

FreeBSD QandA

Q. ~/.Xresourcesと~/.Xdefaultsって、どう違うんですか?

A. ~/.Xdefaults は、xrdb でディスプレイに対してリソースを
   登録して「無い」場合に、XToolkitアプリケーションが起動時に
   サーバリソースデータベースとして読み込むファイルです。

   つまり、xrdb -query として、登録済リソースが表示されるような
   状況では、~/.Xdefaultsは参照されません。


   ですから、Xのリソース設定に関しては

     (1). ~/.Xresourcesに記述して、~/.xinitrc(~/.xsession)に
            xrdb -merge $HOME/.Xresources
          と書く。
     (2). ~/.Xdefaultsに記述して、各Xアプリケーション(が使っている
          ツールキットのライブラリ)に読み込ませる。

   のどちらでもいいです。

   ただ、(2)の場合、~/.Xdefaultsを編集した後にXアプリケーションを
   起動すると、(xrdb を実行しなくても) 最新の情報が反映される、
   という特徴があります。

   しかし、Xクライアントを他のマシン上で実行している場合は
   ローカルではなく、リモートの ~/.Xdefaults を読んでしまいます。
   一方(1)は、Xクライアントをローカルで実行しようとリモートで
   実行しようと、同じリソース設定が参照されます。つまり、
   ディスプレイにプロパティとしてリソースを登録するのが xrdb なのです。

   ですから、一応(1)が推奨される方法でしょう。


   本来は ~/.Xresources というファイル名でなくてもいいのですが、
   ~/.xinitrcや~/.xsessionがない場合に実行される
     /usr/X11R6/lib/X11/xinit/xinitrc
     /usr/X11R6/lib/X11/xdm/Xsession
   の中で ~/.Xresources というファイルを参照するようになっているので、
   この慣例にならって ~/.Xresources というファイル名にしておくのが
   無難でしょう。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。