X resources

提供: ArchWiki
移動先: 案内検索

関連記事

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

Xresources は様々な設定をすることができます、例えば:

ノート: ~/.Xdefaults の使用は非推奨となっているので、この記事では xrdb でロードされる resources のみを扱います。

インストール

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

使用方法

リソースファイルのロード

リソースは X サーバーに保存されるため、一度だけ読み込む必要があります。また、リモートの X11 クライアントからもアクセスできます (SSH 経由でフォワーディングされる場合など)。

リソースファイルをロードして現在の設定を置き換えるには:

$ 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 の後に起動したプログラムがリソースを検索してしまう可能性があります。

デフォルト設定

インストールした X11 アプリのデフォルト設定を確認したいときは、/usr/share/X11/app-defaults/ の中を見て下さい。

プログラムの resources に関する詳細はプログラムの man ページに大抵記述されています。xterm の man ページなどが良い例で、X resources とデフォルト値のリストが載っています。

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

$ xrdb -query -all

Xresources の構文

基本構文

Xresources ファイルの構文は以下の通りです:

name.Class.resource: value

実際の例:

xscreensaver.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
name
アプリケーションの名前。xterm や xpdf など。
class
リソースをグループ化するのに使われるクラス。クラスの名前は一文字目を大文字にします。
resource
値を変更するリソースの名前。リソースは小文字+大文字で表現します。
value
リソースの値。3つのタイプが存在します:
  • Integer (数字)
  • Boolean (true/false, yes/no, on/off)
  • String (文字列) (例: 単語 (white), 色 (#ffffff), パス (/usr/bin/firefox))
区切り文字
ドット (.) は階層を一つ下ることを示します。上記の例では、名前、クラス、リソースの順番で降りて行っています。コロン (:) はリソースの宣言と値を分けるのに使われます。
ノート: Xresources ファイルの構文についてさらに詳しくは XrmGetDatabase(3) を見てください。

ワイルドカードマッチ

クエスチョンマークとアスタリスクはワイルドカードとして使うことができ、一つのルールを多数のアプリケーションやエレメントに適用することができます。? はどれかひとつのコンポーネントの名前にマッチし、* は任意の数のコンポーネントを表します。

前記の例であれば、XScreenSaver だけでなく、クラス名 Dialog にリソース名 headingFont を含む全てのプログラムに同じフォントを適用したい場合、以下のように記述できます:

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

クラスは関係なくリソース headingFont を含む全てのプログラムに同一のルールを適用したい場合、以下のように記述します:

*headingFont:    -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1

ワイルドカードのマッチングルールについて詳しくは XrmGetResource(3) を参照してください。

コメント

Xresources ファイルにコメントを付けたいときは、コメントの前にエクスクラメーションマークを付けて下さい (!)、例:

! This is a comment placed above some Xft settings
Xft.dpi:       96      ! this is an inline comment
! The following rule will be ignored because it has been commented out
!Xft.antialias:        true

ファイルのインクルード

ノート: この機能を使うには GNU CPP などの C プリプロセッサが必要です。

アプリケーションごとに別々のファイルを使いたい場合、メインファイルで #include を使ってください。例:

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

ファイルのロードが失敗する場合、xrdb-I パラメータを付けてディレクトリを指定してください。例:

~/.xinitrc
xrdb -I$HOME ~/.Xresources

リソースの値を取得

(bash スクリプトなどで使いたい場合) xgetresAUR を使うことでリソースの値を取得できます:

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

使用例

以下の例を見ることで Xresources ファイルを使用してどうやってアプリケーションの設定を変更するのか理解できるはずです。[2] にはもっとサンプルがあります。わからないときはアプリケーションの man ページも参照してください。

ターミナルカラー

コンソールのカラー出力#ターミナルエミュレータを見てください。

Xcursor

カーソルテーマ#X resources を見てください。

Xft

フォント設定#fontconfig をサポートしていないアプリケーションを見てください。

Xterm

Xterm#リソースファイルの設定を見てください。

rxvt-unicode

Rxvt-unicode#設定を見てください。

Xpdf

xpdf(1)Options を見てください。

トラブルシューティング

解析エラー

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

参照