X resources

提供: ArchWiki
2016年11月12日 (土) 21:46時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

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

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

  • ターミナルの色の定義
  • ターミナルの設定
  • DPI やアンチエイリアス、ヒンティングなど X フォントの設定
  • X カーソルテーマの変更
  • xscreensaver のテーマ設定
  • ローレベルな X アプリケーションの設定 (xorg-xclock, xpdf, rxvt-unicode など)
ノート: ~/.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))
区切り文字
ドット (.) は階層を一つ下ることを示します。上記の例では、名前、クラス、リソースの順番で降りて行っています。コロン (:) はリソースの宣言と値を分けるのに使われます。

ワイルドカードマッチ

アスタリスクをワイルドカードとして使うことができ、一つのルールを多数のアプリケーションやエレメントに適用することができます。

Using the previous example, if you want to apply the same font to all programs (not just XScreenSaver) that contain the class name Dialog which contains the resource name headingFont, you would write:

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

If you want to apply this same rule to all programs that contain the resource headingFont, regardless of its class, you would write:

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

コメント

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

ファイルのインクルード

アプリケーションごとに別々のファイルを使いたい場合、メインファイルで #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

使用例

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

ターミナルカラー

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

Xcursor

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

Xft

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

Xterm

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

rxvt-unicode

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

Xpdf

man xpdfOptions を見てください。

トラブルシューティング

解析エラー

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

参照