これら2つのファイルは同じ機能を持っているようです。 2つの違いがある場合、その違いは何ですか?
~/.Xdefaults
は、Xリソースを保存する古い方法です。このファイルは、Xlibプログラムが開始されるたびに再読み取りされます。 X11をネットワーク経由で使用する場合、ファイルはプログラムと同じファイルシステムに存在する必要があります。
~/.Xresources
の方が新しいです。 xrdb
とともにX11ルートウィンドウのRESOURCE_MANAGER
プロパティに読み込まれます。プログラムがリソースを検索するときは常に、RESOURCE_MANAGER
から直接読み取られます。
このプロパティが存在しない場合、Xlibはプログラムの起動ごとに.Xdefaults
を読み取る古い方法にフォールバックします。ほとんどのディストリビューションは~/.Xresources
が存在する場合は自動的にロードするため、xrdb
を手動で実行したことがなくても.Xdefaults
が無視されることに注意してください。
新しいメソッドの利点は、xrdb
を1回呼び出すだけで十分であり、ローカルまたはリモートにかかわらず、このディスプレイで実行されているすべてのプログラムがリソースを利用できることです。 (名前~/.Xresources
は慣例にすぎません。xrdb
を使用して、.Xdefaults
も含めて任意のファイルをロードできます。)
XlibプログラミングマニュアルP.441:
X11R2より前のバージョンでは、Xリソースの設定はユーザーのホームディレクトリの.Xdefaultsファイルから読み込まれ、オプションでXクライアントが実行されているマシンで読み込まれたため、複数のファイルを維持することは困難でした。
その後、xrdbプログラムは、ユーザーのリソース設定を.Xresourcesから現在のXサーバーのルートウィンドウのXA_RESOURCE_MANAGERプロパティに格納するように作成されたため、同じサーバーに接続されているすべてのクライアントがそれらにアクセスできます。ユーザーがxrdbを呼び出してプロパティを設定していない場合、.Xdefaultsが読み取られます。
ウィキペディア :
[...] Xリソースは、すべての画面に適用されるか、特定の画面に適用されるかに応じて、2つの標準的な場所に格納されます。
- 画面0のルートウィンドウのRESOURCE_MANAGERプロパティ
- 任意の画面のルートウィンドウのSCREEN_RESOURCESプロパティ
それだけでは終わりません。
$XENVIRONMENT
変数もあり、設定されていない場合、デフォルトで~/.Xdefaults-hostname
になります。これは.Xdefaults
と同じように使用されますが、RESOURCE_MANAGER
が存在するかどうかに関係なく常に読み取られます。 .Xdefaults-hostname
ファイルを使用すると、xrdb
をグローバル設定に使用しながら、一部の設定をマシン固有に保つことができます。以下にリストされている項目#4と#5の両方は、GTK 3や他のツールキットではなく、純粋なXlibプログラムでのみ使用されるようです。
4番目の場所は、$XAPPLRESDIR
環境変数が指すディレクトリです。 (奇妙なことに、変数が設定されていない場合、$HOME
がデフォルトとして使用されます。)プログラムが開始されると、次のファイルのいずれかが存在するかどうかが調べられます(ファイル名はプログラムのクラス名と同じです)。 :
$XAPPLRESDIR/$LC_CTYPE/XTerm
$XAPPLRESDIR/language/XTerm
$XAPPLRESDIR/XTerm
(language
は$LC_CTYPE
から、最初のコンポーネントを除くすべてを除去することにより得られます。たとえば、en_US.utf-8
→en
です。)
5番目の場所は、システム全体の「app-defaults」ディレクトリです。この場合も、app-defaultsディレクトリは、プログラムの名前が付けられたファイルがある場合、プログラムの起動時にチェックされます。たとえば、(Arch Linux上の)XTermは以下を使用します。
/etc/X11/$LC_CTYPE/app-defaults/XTerm
/etc/X11/language/app-defaults/XTerm
/etc/X11/app-defaults/XTerm
/usr/share/X11/$LC_CTYPE/app-defaults/XTerm
/usr/share/X11/language/app-defaults/XTerm
/usr/share/X11/app-defaults/XTerm
App-defaultsファイルは通常、プログラム自体とともに/usr/share
にインストールされます。管理者による上書きは/etc
に移動します。
上記のすべては、X.orgツールキットのドキュメント–記事X Toolkit Intrinsics-C Language Interface、セクションリソースデータベースのロードに詳細に記載されています。
残念ながら、Xリソースについて説明している最近のユーザーガイドは見つかりませんでした。主に、それらは2012年には無関係であるためです。しかし、履歴情報(読む:ひどく時代遅れ)については、X Window SystemユーザーのX Window SystemのX11 R3およびR4のガイドセクション9:リソースの設定(181ページ以降)。