X リソース

提供: ArchWiki
2024年7月2日 (火) 19:19時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (序文を修正)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

X リソースファイル はユーザーレベルの設定ドットファイルで、通常は ~/.Xresources に存在します。X クライアントアプリケーションの設定パラメータである X resources を設定するのに使われます。

特に次の目的で使用できます:

インストール

xorg-xrdb パッケージをインストールしてください。

設定

X(7) § RESOURCES および XrmGetDatabase(3) § FILE SYNTAX には、X リソースのメカニズムとファイル構文に関する詳細情報が記載されています。

~/.Xresources は一般的なファイル名であり、xrdb はこれを独自に扱っているわけではありません。他のファイル名(例えば ~/.config/X11/Xresources~/.config/X11/Xresources.d/application-name)を使用することもできます(#サンプルおよび#インクルードファイルも参照)。

基本構文

X リソースファイルの構文は以下のような リソース行 のシーケンスです:

application_name.Class.resourceName: value
      application_name.resourceName: value
                 Class.resourceName: value
      application_name*resourceName: value
                      *resourceName: value

application_nameClass のサブストリングにはドット(.)は含まれませんが、resourceName のサブストリングにはドットが含まれる場合があります。例えば、Dialog.bodyFontXScreenSaver の内部リソースであり、本文フォントおよびフォールバックフォントを設定するために指定されます:

xscreensaver-auth.default.Dialog.bodyFont: times new roman 12, dejavu serif 12
application_name
アプリケーションの名前、例えば urxvt, xpdf, xterm など。 インスタンス名 とも呼ばれます。
Class
リソースをまとめるために使用される分類。クラス名は通常大文字です。
resourceName
値を設定するリソースの名前。リソースは通常、連結された大文字と小文字で表されます。
value
リソースの実際の値。これには次の3種類があります:
  • 整数(整数値)
  • ブール値(true/false、yes/no、on/off)
  • 文字列(文字の列)— 例えば単語(white)、色(#ffffff)、またはパス(/usr/bin/firefox
区切り文字
  • ドット(.)は tight binding であり、直近のコンポーネントを分離するために使用されます(つまり、階層の各ステップを示す)。上記の例では、アプリケーション名から始まり、クラスに降り、最後にリソース自体に降ります。
  • アスタリスク(*)は loose binding であり、何らかのコンポーネントを表すために使用されます(含まれない場合もあります)。
  • コロン(:)はリソース名と値を分離するために使用されます。
ノート:
  • リソースファイル構文の観点から見ると、コロン(:)の前にあるものはすべてリソース名です。ユーザーの視点からは、リソース は最も右側のコンポーネントのみを指すことがよくあります。言い換えると、リソース名アプリケーション名Class、および リソース名 のサブストリングから成る文字列です。これが混乱の原因になるかもしれません。
  • リソースの命名スキーマは完全にアプリケーションに依存します。あるアプリケーションが application_name.Class.resourceName を使用する場合、別のアプリケーションは application_name.resourceName および Class.resourceName のみを理解するかもしれません。

ワイルドカードマッチング

クエスチョンマーク(?)とアスタリスク(*)はワイルドカードとして使用でき、多くの異なるアプリケーションや要素に適用できる単一のルールを書くのが簡単になります。? は任意の単一のコンポーネント名に一致し、* は任意の数の中間コンポーネントを含むものに一致します。

前述の例を使用して、クラス名に Dialog を含むすべてのプログラムに同じフォントを適用したい場合(XScreenSaver に限らず)、次のように書くことができます:

?.Dialog.headingFont:     -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

クラスに関係なく、headingFont リソースを含むすべてのプログラムに同じルールを適用したい場合は、次のように書くことができます:

*headingFont:    -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
ノート:
  • クエスチョンマーク(?)はコンポーネント名のようなものであるため、その隣には バインディング文字(ドット(.)またはアスタリスク(*))が必要です。
  • アスタリスク(*)は バインディング文字 そのものであり、その隣にドットを置く必要はありません。また、ファイル処理中にドットとアスタリスクの連続が単一のアスタリスクに置き換えられます。

詳細については XrmGetResource(3) § MATCHING RULES を参照してください。

コメント

感嘆符(!)で始まる行は無視されます。例えば:

! 次のルールはコメントアウトされているため無視されます
!Xft.antialias: true
ノート:
  • 感嘆符は行の最初の文字でなければなりません。
  • GNU CPPgcc)のような C プリプロセッサがインストールされている場合、C-スタイル(// および /* … */)のコメントを使用できます(#サンプル も参照)。

インクルードファイル

リソース設定を複数のファイルに分けるため(例:各アプリケーションに独自のファイルを使用するため)、C preprocessor#include ディレクティブ を使用します:

~/.config/X11/Xresources
#include "Xresources.d/fonts"
#include "Xresources.d/rxvt-unicode"
#include "Xresources.d/xscreensaver"
#include "Xresources.d/xterm"

#include で参照されるファイルが適用される設定ファイルのディレクトリから到達できない場合は、検索するディレクトリを渡す必要があります:

$ xrdb -load -I${HOME}/.config/X11 ~/.Xresources

デフォルト設定

インストールされている X11 アプリケーションのデフォルト設定を確認するには、/usr/share/X11/app-defaults/ を参照してください。

プログラム固有のリソースに関する詳細情報は通常、プログラムの man ページに記載されています。xterm(1) § RESOURCES はその良い例であり、X リソースとそのデフォルト値のリストが含まれています。

現在ロードされているリソースを確認するには:

$ xrdb -query -all

サンプル

使用法

リソースファイルの読み込み

リソースは X サーバーに保存されるため、一度だけ読み込めばよいです。また、リモート の X11 クライアント(例えば SSH 経由で転送 されるもの)からもアクセスできます。

リソースファイル(一般的な .Xresources など)を読み込み、現在の設定を置き換えます:

$ xrdb ~/.Xresources

リソースファイルを読み込み、現在の設定にマージします:

$ xrdb -merge ~/.Xresources
ノート:
  • ほとんどの ディスプレイマネージャはログイン時に ~/.Xresources ファイルを読み込みます。
  • 古い ~/.Xdefaults ファイルは X11 プログラムが開始されるときに読み込まれますが、現在のセッションで xrdb が使用されていない場合に限ります。 [1]

xinitrc

デフォルトの xinitrc のコピーを .xinitrc として使用している場合、それはすでに ~/.Xresources をマージしています。

カスタムのものを使用している場合は、次を追加します:

.xinitrc
[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
ノート: ~/.xinitrc 内で xrdb コマンドをバックグラウンドにしないでください。そうしないと、xrdb の後に起動したプログラムがリソースを読み込む前にリソースを探すことがあります。

リソース値の取得

リソースの値を取得したい場合(例えば、bash スクリプトで使用したい場合)、xgetresAUR を使用できます:

$ xgetres xscreensaver.Dialog.headingFont
-*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

トラブルシューティング

解析エラー

GDM などのディスプレイマネージャxrdb--nocpp 引数を使用することがあります。

xrdb -query からの出力が無い

xrdb -query が何も出力しないことも珍しくありません。上記の リソースファイルのロードxinitrc に従ってみてください。 また、そこに記載されているファイルの一部が空である可能性があることに注意してください。

参照

翻訳ステータス: このページは en:X resources の翻訳バージョンです。最後の翻訳日は 2024-07-02 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。