「X resources」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:X resourcesへの転送ページ)
 
 
(4人の利用者による、間の9版が非表示)
1行目: 1行目:
  +
[[Category:設定ファイル]]
#redirect[[en:X resources]]
 
  +
[[Category:X サーバー]]
  +
[[de:Xdefaults]]
  +
[[en:X resources]]
  +
[[ru:X resources]]
  +
{{Related articles start}}
  +
{{Related|X Logical Font Description}}
  +
{{Related|ドットファイル}}
  +
{{Related articles end}}
  +
'''Xresources''' はユーザーレベルの設定''ドットファイル''で、通常は {{ic|~/.Xresources}} に存在します。X クライアントアプリケーションの設定パラメータである [[Wikipedia:X resources|X resources]] を設定するのに使われます。
  +
  +
Xresources は様々な設定をすることができます、例えば:
  +
  +
* ターミナルの色の定義
  +
* ターミナルの設定
  +
* DPI やアンチエイリアス、ヒンティングなど X [[フォント]]の設定
  +
* X [[カーソルテーマ]]の変更
  +
* [[xscreensaver]] のテーマ設定
  +
* 低水準 X アプリケーションの設定 ({{Pkg|xorg-xclock}}, {{Pkg|xpdf}}, [[rxvt-unicode]] など)
  +
  +
== インストール ==
  +
{{pkg|xorg-xrdb}} パッケージを[[インストール]]してください。
  +
  +
== 使用方法 ==
  +
  +
=== リソースファイルのロード ===
  +
  +
リソースは X サーバーに保存されるため、一度だけ読み込む必要があります。また、リモートの X11 クライアントからもアクセスできます (SSH 経由で[[Secure Shell#X11 フォワーディング|フォワーディング]]される場合など)。
  +
  +
リソースファイルをロードして現在の設定を置き換えるには:
  +
  +
$ xrdb ''~/.Xresources''
  +
  +
リソースファイルをロードして現在の設定とマージするには:
  +
  +
$ xrdb -merge ''~/.Xresources''
  +
  +
{{Note|
  +
* 大抵の[[ディスプレイマネージャ]]はログイン時に {{ic|~/.Xresources}} ファイルをロードします。
  +
* 古い {{ic|~/.Xdefaults}} ファイルは X11 プログラムが起動したときに読み込まれます。ただし現在のセッションで ''xrdb'' が使われていない場合に限ります [https://groups.google.com/forum/#!msg/comp.windows.x/hQBEdql8l-Q/hF3DETcIHGwJ]。
  +
}}
  +
  +
=== xinitrc ===
  +
  +
デフォルトの [[xinitrc]] のコピーを {{ic|.xinitrc}} として使っている場合、既に {{ic|~/.Xresources}} はマージされています。
  +
  +
カスタムした {{ic|.xinitrc}} を使っている場合、以下の行を追加してください:
  +
  +
<nowiki>[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources</nowiki>
  +
  +
{{Note|{{ic|~/.xinitrc}} の中で xrdb コマンドをバックグラウンドで実行してはいけません。リソースがロードされる前に xrdb の後に起動したプログラムがリソースを検索してしまう可能性があります。}}
  +
  +
===デフォルト設定===
  +
インストールした X11 アプリのデフォルト設定を確認したいときは、{{ic|/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 (文字列) (例: 単語 ({{ic|white}}), 色 ({{ic|#ffffff}}), パス ({{ic|/usr/bin/firefox}}))
  +
  +
;区切り文字
  +
:ドット ({{ic|'''.'''}}) は階層を一つ下ることを示します。上記の例では、名前、クラス、リソースの順番で降りて行っています。コロン ({{ic|''':'''}}) はリソースの宣言と値を分けるのに使われます。
  +
  +
{{Note|Xresources ファイルの構文についてさらに詳しくは {{man|3|XrmGetDatabase|FILE_SYNTAX}} を見てください。}}
  +
  +
====ワイルドカードマッチ====
  +
  +
クエスチョンマークとアスタリスクはワイルドカードとして使うことができ、一つのルールを多数のアプリケーションやエレメントに適用することができます。{{ic|?}} はどれかひとつのコンポーネントの名前にマッチし、{{ic|*}} は任意の数のコンポーネントを表します。
  +
  +
前記の例であれば、XScreenSaver だけでなく、クラス名 {{ic|Dialog}} にリソース名 {{ic|headingFont}} を含む全てのプログラムに同じフォントを適用したい場合、以下のように記述できます:
  +
  +
'''?'''.Dialog.headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
  +
  +
クラスは関係なくリソース {{ic|headingFont}} を含む全てのプログラムに同一のルールを適用したい場合、以下のように記述します:
  +
  +
'''*'''headingFont: -*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
  +
  +
ワイルドカードのマッチングルールについて詳しくは {{man|3|XrmGetResource|MATCHING_RULES}} を参照してください。
  +
  +
==== コメント ====
  +
Xresources ファイルにコメントを付けたいときは、コメントの前にエクスクラメーションマークを付けて下さい ({{ic|!}})、例:
  +
  +
! The following rule will be ignored because it has been commented out
  +
!Xft.antialias: true
  +
  +
エクスクラメーションマークは行の最初の文字でなければならないことに注意してください。
  +
  +
==== ファイルのインクルード ====
  +
  +
{{Note|この機能を使うには {{ic|GNU CPP}} などの C プリプロセッサが必要です。}}
  +
  +
アプリケーションごとに別々のファイルを使いたい場合、メインファイルで {{ic|#include}} を使ってください。例:
  +
  +
{{hc|~/.Xresources|
  +
#include ".Xresources.d/xterm"
  +
#include ".Xresources.d/rxvt-unicode"
  +
#include ".Xresources.d/fonts"
  +
#include ".Xresources.d/xscreensaver"
  +
}}
  +
  +
ファイルのロードが失敗する場合、''xrdb'' に {{ic|-I}} パラメータを付けてディレクトリを指定してください。例:
  +
  +
{{hc|~/.xinitrc|
  +
xrdb -I''$HOME'' ~/.Xresources
  +
}}
  +
  +
=== リソースの値を取得 ===
  +
  +
(bash スクリプトなどで使いたい場合) {{AUR|xgetres}} を使うことでリソースの値を取得できます:
  +
  +
$ xgetres xscreensaver.Dialog.headingFont
  +
-*-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-1
  +
  +
==使用例==
  +
以下の例を見ることで Xresources ファイルを使用してどうやってアプリケーションの設定を変更するのか理解できるはずです。[https://gist.github.com/anonymous/fa98de9fd70b51611303] にはもっとサンプルがあります。わからないときはアプリケーションの man ページも参照してください。
  +
  +
* [[コンソールのカラー出力#ターミナルエミュレータ]]
  +
* [[カーソルテーマ#X resources]]
  +
* [[フォント設定#fontconfig をサポートしていないアプリケーション]]
  +
* [[Xterm#リソースファイルの設定]]
  +
* [[Rxvt-unicode#設定]]
  +
* {{man|1|xpdf|OPTIONS}}
  +
  +
== トラブルシューティング ==
  +
  +
=== 解析エラー ===
  +
  +
[[GDM]] などの[[ディスプレイマネージャ]]は ''xrdb'' で {{ic|--nocpp}} 引数を使用することがあります。
  +
  +
=== xrdb -query からの出力が無い ===
  +
  +
{{ic|xrdb -query}} が何も出力しないことも珍しくありません。上記の [[X resources#リソースファイルのロード|リソースファイルのロード]] と [[X resources#xinitrc|xinitrc]] に従ってみてください。 また、そこに記載されているファイルの一部が空である可能性があることに注意してください。
  +
  +
==参照==
  +
  +
* [https://engineering.purdue.edu/ECN/Support/KB/Docs/UsingTheXdefaultsFil Using the Xdefaults File] - X が Xdefaults ファイルをどのように解釈するのか説明した記事

2023年1月9日 (月) 22:16時点における最新版

関連記事

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

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

インストール

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) § FILE_SYNTAX を見てください。

ワイルドカードマッチ

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

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

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

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

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

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

コメント

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

! 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 ページも参照してください。

トラブルシューティング

解析エラー

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

xrdb -query からの出力が無い

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

参照