Xウィンドウシステムでは、Xリソースはボタンで使用されるフォント名、メニューの背景色などのコンピュータプログラムのパラメータです。これらはコマンドラインパラメータや設定ファイルと組み合わせて、またはそれらの代わりに使用されます。[1] [2]
形式
X プロトコル レベルでは、リソースはサーバーに保存される文字列であり、特別な意味を持ちません。これらの文字列の構文と意味は、クライアント ライブラリとアプリケーションによって指定されます。
すべての X リソースは、プログラムまたはそのコンポーネントの 1 つに対するパラメータを指定します。完全に指定されたリソースの形式は次のとおりです。
application.component.subcomponent.subcomponent.attribute: value
このリソースは、プログラムのattributeという名前のコンポーネントのの値を指定します。リソースは、アプリケーションによって作成されたウィジェットのパラメータを指定するためによく使用されます。これらのウィジェットはツリーに配置されているため、コンポーネント/サブコンポーネント名のシーケンスは、ツリー内のパスを指定してウィジェットを識別するために使用されます。リソースの値は、背景色など、このウィジェットの属性の値です。
component.subcomponent.subcomponentapplication
X リソースは、同じ構文を使用して、ウィジェットに直接関連しないプログラムのパラメータを指定するためにも使用されます。
X リソースは、複数のプログラムまたはコンポーネントに同じパラメータを指定できるように設計されています。これは、リソース仕様でワイルドカード文字を許可することで実現されます。特に、?文字はアプリケーション名または単一のコンポーネントに一致させるために使用されます。*文字は、任意の数のコンポーネントに一致させるために使用されます。これらの 2 つの文字は、リソース名の末尾以外の任意の場所で使用できます。つまり、属性をワイルドカード文字で置き換えることはできません。
リソースはワイルドカード文字を使用して大まかに指定できますが、リソースの値のクエリではそのリソースを正確に指定する必要があります。たとえば、リソースでは、プログラムのすべてのコンポーネントの背景がxmail赤である必要があることを指定できます。
xmail*background: red
ただし、プログラム (たとえば、使用する背景色を確認する xmail プログラム自体) がXlib関数を介してリソース データベースにアクセスする場合、特定のリソースの値しか要求できません。ほとんどのデータベースとは異なり、格納されたデータは (ワイルドカード文字を使用して) 緩く指定できますが、照会はできません。たとえば、プログラムはxmail.main.backgroundまたは の値を照会できますxmail.toc.buttons.backgroundが、?またはを使用して*一度に複数のコンポーネントの背景色を確認することはできません。
リソースは、要素のクラスに対しても指定できます。たとえば、 は、アプリケーション名をそのクラス (の代わりに など) に、各ウィジェットをそのタイプ ( 、 など) に、属性をそのタイプにapplication.widget.widget.attribute: value置き換えることで一般化できます。
MailxmhPaneButton
場所と用途
Xディスプレイ サーバーの実行中、X リソースは、すべての画面に適用されるか、特定の画面に適用されるかに応じて、2 つの標準的な場所に保存されます。
RESOURCE_MANAGER画面0のルートウィンドウのプロパティSCREEN_RESOURCES任意の画面のルートウィンドウのプロパティ

X リソースは、他のコンピュータから起動されたプログラムが使用できるように、構成ファイルではなくサーバーに保存されます。実際、別のコンピュータから X ディスプレイ サーバーに接続するプログラムは、X プロトコルを介してリソースにアクセスできます。プログラム パラメータをファイルに保存する古いシステムを使用すると、.Xdefaultsプログラムを起動できる他のすべてのコンピュータにこのファイルをコピーする必要が生じます。
リソースはxrdbプログラムによって操作されます。特に、多くの X ディスプレイ サーバー構成では、起動時に xrdb が実行され、.Xresourcesユーザーのホーム ディレクトリのファイルからリソースを読み取るように指示されます。この時点から、他のすべてのプログラムは 2 つの標準的な場所でリソースを検索します。現在のリソースは、 でコンソールから表示できますxrdb -query。
クライアントライブラリ
Xlib には、サーバー上のリソースにアクセスし、ローカルで操作するための便利な関数が多数含まれています。これらの関数は、xrdb と、これらのリソースを必要とする他のすべてのプログラムの両方で使用されます。これらの関数のほとんどは、リソース仕様のセットを表すローカル データ構造であるリソース データベースを操作します。リソース管理用の Xlib 関数は次のとおりです。
- サーバー上のリソースをローカル文字列に読み込む関数(
XResourceManagerStringおよびXScreenResourceString) - ローカルリソース データベースを作成、操作、破棄するための関数(
XrmInitialize、、、、、、、、、、、、、、)XrmDestroyDatabaseXrmGetFileDatabaseXrmPutFileDatabaseXrmGetStringDatabaseXrmLocaleOfDatabaseXrmSetDatabaseXrmGetDatabaseXrmCombineFileDatabaseXrmCombineDatabaseXrmMergeDatabasesXrmParseCommand - リソースを検索し、新しいリソースを保存するための関数(
XrmGetResource、XrmQGetResource、XrmQGetSearchList、XrmQGetSearchResource、XrmPutResource、XrmQPutResource、XrmPutStringResource、、)XrmQPutStringResourceXrmPutLineResourceXrmEnumerateDatabase
特に、この関数はコマンドラインXrmParseCommand引数を解析し、ローカル リソース データベースに追加されるリソースを読み取ることができます。このようにして、リソースをサーバーから読み取り、コマンドライン引数によって上書きされるデフォルトとして使用することができます。
効率化のため、クォークと呼ばれる整数がローカル文字列を表すために定義されています。クォークはアトムに似ていますが、サーバーではなくローカルに保存されている文字列を表します。多くの Xlib 関数は、文字列とクォークの関連付けを作成します。上記の関数のいずれかを使用するときは、コンポーネント名の代わりにクォークを使用できます。したがって、リソース名はクォーク リストに対応します。
参照
参考文献
- ^ 「X リソースの設定: 概要 docstore.mik.ua/orelly/unix3/upt/ch06_05.htm」。
- ^ 「X リソース」。
外部リンク
- テクノオタクのための必須ではないXリソース
- Xlibクライアント ライブラリのリソース マネージャー関数
