X ウィンドウシステムは広範囲なコンピュータとグラフィックマシン上で稼働 するネットワーク透過なウィンドウシステムである。X コンソーシアムのソフ トウェア配布物は ANSI C と POSIX に準拠しているほとんどのシステムで比較的簡単 に構築できる。商用パッケージも広範囲のプラットフォームで利用可能である。
X コンソーシアムは、このソフトウェアに言及する時には次の名称を使用する ことを求めている:
X Window System は X Consortium, Inc. の登録商標である。
X は重なりあって階層構造を持つサブウィンドウおよびテキストや グラフィックスの操作を、白黒ディスプレイでもカラーディスプレイでも サポートしている。 利用可能な関数の正式な説明については Xlib - C 言語 X インタフェース マニュアル、 X ウィンドウシステムプロトコル 仕様書、 X ツールキットイントリンシクス - C 言語インタフェース マニュアルと ツールキットに関する様々な文書を参照すること。
X を使用するプログラムは大変多い。 X コンソーシアムがコアの配布物として提供しているプログラムは以下を以下 に示す: 端末エミュレータ、xterm; ウィンドウマネージャ、twm; ディスプレイマネージャ、xdm; コンソールリダイレクトプログラム、xconsole; メールインターフェース、xmh; ビットマップエディタ、bitmap; リソース列挙/操作ツール、appres, editres; アクセス制御プログラム、xauth, xhost, と iceauth; ユーザ環境設定プログラム、xrdb, xcmsdb, xset, xsetroot, xstdcmap, xmodmap; 時計、 xclock と oclock; フォント表示、(xfd; フォント、ウィンドウとディスプレイの情報表示ユーティリティ、 xlsfonts, xwininfo, xlsclients, xdpyinfo, xlsatoms, と xprop; スクリーン画像操作ユーティリティ、 xwd, xwud, と xmag; 性能測定ユーティリティ、 x11perf; フォントコンパイラ、 bdftopcf; fslsfonts, fstobdf; フォントサーバと関連ユーティリティ、 xfs, fsinfo, fslsfonts, fstobdf; X Image 拡張実行プログラム, xieperf; mkfontdir; ディスプレイサーバと関連ユーティリティ、Xserver, rgb, mkfontd ir; リモート実行ユーティリティ、 rstart と xon; クリップボードマネージャ、 xclipboard; xkbwatch; キーボード構成記述コンパイラと関連ユーティリティ、 xkbcomp, xkbprint, xkbbell, xkbevd, xkbvleds, と xkbwatch; クライアント停止ユーティリティ、 xkill; 最適化 X プロトコルプロキシ、 lbxproxy; ファイアウォールセキュリティプロキシ、 xfwp; プロキシを制御するプロキシマネージャ、 proxymngr; プロキシを発見するユーティリティ、 xfindproxy; Netscape Navigator のプラグイン, libxrx.so と libxrxnest.so; RX MIME 型用の補助プログラム、 xrx; スクリーンの全てもしくは一部を再描画するユーティリティ、 xrefresh 。
その他の多くのユーティリティ、ウィンドウマネージャ、ゲーム、ツールキット は、ユーザによる寄贈ソフトウェアとして X コンソーシアムの配布物 のに含まれているか、インターネット上の anonymous ftp で入手可能である。 詳細は自サイトの管理者に問い合わせること。
X サーバの入手とクライアントアプリケーションの初期設定をする方法は主に 2 つある。どちらを使うべきかは、稼働中のオペレーティングシステムや X の他にウィンドウシステムを使用したいかどうかによって変わる。
ユーザから見ると、すべての X サーバは
という形式で ディスプレイ名(display name) を保持している。 この情報は、アプリケーションのサーバへの接続方法とデフォルトで使う スクリーンを決める(複数のモニタに表示するとき)ために使われる。
POSIX システムでは、標準ディスプレイ名は DISPLAY 環境変数に格納される。 この変数は xterm 端末エミュレータによって自動的に設定される。 しかし、ネットワーク上の他のマシンにログインするときは、自分が使う ディスプレイを DISPLAY が指すように設定しなければならない。例えば
% setenv DISPLAY myws:0 $ DISPLAY=myws:0; export DISPLAY
のようにすること。 xon スクリプトを使用すると、リモートマシンで X プログラムを開始 させることができる。このスクリプトは正しい DISPLAY 環境変数を自動的に 設定する。
最後に、ほとんどの X プログラムは一時的に DISPLAY の内容を上書きする -display displayname というコマンド行オプションを受け付ける。 これは他人のスクリーンにウィンドウをポップアップさせるためや、 リモートの xterm をコマンド自分のディスプレイに出すために 「リモートシェル」コマンドの一部として使うことが一般的である。 例えば、
% xeyes -display joesws:0 -geometry 1000x1000+0+0 % rsh big xterm -display myws:0 -ls </dev/null &
のようにすること。 X サーバは様々な異なる通信チャネル (ネットワークバイトストリーム、共有メモリ 等) との接続を待つ。指定されたサーバへの接続方法は複数個あり得るので、 ディスプレイ名の hostname の部分は使用するチャネル (トランスポート層とも呼ばれる)の種類を決めるために使われる。 X サーバは一般的に次の接続の種類をサポートしている:
ホスト単位アクセス ホストに基づいた単純なアクセス制御 MIT-MAGIC-COOKIE-1 平文の「クッキー」を共有する XDM-AUTHORIZATION-1 安全な DES ベースの秘密鍵を使用 SUN-DES-1 Sun の Secure RPC 機構に基づく MIT-KERBEROS-5 Kerberos バージョン 5 のユーザ対ユーザ認証
xdm はサーバのアクセス制御を初期化し、ユーザがアクセスできるファイ ルに認証情報を格納する。通常、必ず接続が許されるホストのリストは空であ り、明示的に認証されたクライアントだけがディスプレイに接続できる。 ホストのリストに (xhost で) 項目を追加したときは、サーバはそれらの マシンからの接続についての認証は行わない。xhost は注意して実行すること。
Xlib が認証データを伸長して取り出すファイルは XAUTHORITY 環境変数で指定できる。デフォルト値はホームディレクトリの .Xauthority ファイルである。 xdm は $HOME/.Xauthority を使用して認証データを作成する。 あるいは、ユーザがログインする時に既に認証データがあればこれにマージする。
複数のマシンを使用していてネットワークファイルシステムによってすべての マシン共通のホームディレクトリを共有している場合、認証ファイルについて 心配する必要はなく、システムはデフォルトで正常に動作するはずである。 そうでない場合も認証ファイルはマシンに依存しないので、認証ファイルを 共有するには単にコピーすればよい。認証ファイルを管理するには xauth を使うこと。 このプログラムを使うと、レコードを伸長し他のファイルに挿入することがで きる。リモートマシンがローカルマシンとホームディレクトリを共有していな い場合、これを使用するとログイン時にリモートマシンへ認証を送信できる。 NFS, ftp, rcp 経由で「暗号化されずに」送信された認証情報は ネットワーク盗聴者が「盗む」ことができるので、認証されない アクセスを許してしまうかもしれない点に注意すること。 多くの環境ではこれほどのセキュリティ水準は必要ないが、必要ならば 特定の認証データの正確な意味を知っておき、実際に問題になるかどうかを知 る必要がある。アクセス制御の詳細については Xsecurity のオンラインマニュアルを参照すること。
ジオメトリ指定の WIDTH と HEIGHT 部分の単位はピクセル数か 文字数のどちらかであるが、これはアプリケーションによって異なる。 XOFF と YOFF の単位はピクセルであり、スクリーンの左端か右 端の上端か下端からの間隔をウィンドウにそれぞれ指定する。どちらのタイプ のオフセットも、スクリーンの指定された端からウィンドウの対応する端ま での距離を指定する。X 軸方向のオフセットは次の方法で指定する:
Y オフセットも同様な意味を持つ:
オフセットは数値の組として与えなければならない。つまり、XOFF と YOFF のどちらかを指定する場合には両方とも指定しなければならない。 ウィンドウを画面の四隅に配置するには以下のように指定する:
次の例は、端末エミュレータを大体画面の中央に配置し、ロードアベレージモ ニタとメールボックス、時計を右上隅に配置する。
xterm -fn 6x10 -geometry 80x24+30+200 & xclock -geometry 48x48-0+0 & xload -geometry 48x48-96+0 & xbiff -geometry 48x48-48+0 &
ウィンドウマネージャは(たとえ複雑でも)通常のクライアントプログラムなの で、色々なユーザインターフェースを構築できる。X コンソーシアムは ウィンドウの重ね表示、ポップアップメニュー、point-and-click または click-to-type 入力モデル、タイトルバー、かっこいいアイコン(アイコン のウィンドウがばらばらにできるのが嫌ならアイコンマネージャ) をサポート した twm という名前のウィンドウマネージャを配布している。
他の有名なウィンドウマネージャについては、X コンソーシアムの配布に含ま れるユーザ寄贈のソフトウェアを参照すること。
フォントには色々な大きさのものがある。X サーバはスケーラブル フォントをサポートしている。これは 1 つのソースから任意の大きさのフォント を作成できるフォントのことである。サーバはアウトラインフォント と ビットマップ フォントのスケーリングをサポートしている。 アウトラインフォントのスケーリングでは、普通はビットマップフォント のスケーリングよりもずっとよい結果が得られる。
X サーバはファイルシステム上のディレクトリに格納された個々のファイル、 1 つ以上のフォントサーバ、またはディレクトリとフォントサーバの両方から フォントを取得できる。 フォントを探すときに X サーバが調べる場所のリストは、フォントパス で制御する。普通に X をインストールした場合には、X サーバ は共通に使うフォントディレクトリをフォントパス内に持った状態で起動 するようになっているが、フォントパスはいつでも xset プログラムで変 更できる。しかしながら、ディレクトリ名はX サーバのマシンのもので あってアプリケーションのマシンのものではない点には注意すること。
ビットマップフォントファイルは普通、テキスト形式で記述されている フォントを bdftopcf でバイナリ形式へコンパイルして作成する。 フォントデータベースは、ソースまたはコンパイルされたフォントがある ディレクトリで mkfontdir プログラムを実行して作成する。 フォントを追加したときは、サーバが新しいフォントを見つけられるように、 必ず mkfontdir を再実行しなければならない。サーバにフォントデー タベースを再読み込みさせるには、xset プログラムでフォントパスを 設定し直すこと。 例えば、個人のディレクトリにフォントを追加した場合は次のコマンドを使用 する:
% cp newfont.pcf ~/myfonts % mkfontdir ~/myfonts % xset fp rehash
xfontsel と xlsfonts プログラムを使うと、あるサーバが使用 できるフォントを見ることができる。 フォント名は個々のフォントを一意に特定するのに必要な情報をすべて含むの で、かなり長くなってしまう傾向がある。しかし、X サーバはフォント名の ワイルドカード記述をサポートしているので、次のような完全なフォント名
-adobe-courier-medium-r-normal--10-100-75-75-m-60-iso8859-1
は
-*-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1
のように省略できる。
シェルにおいては * と ? は特別な意味を持っているので、 ワイルドカードを使ったフォント名は次のようにクォートしなければならない:
% xlsfonts -fn '-*-courier-medium-r-normal--*-100-*-*-*-*-*-*'
xlsfonts プログラムを使うと、指定されたパターンと一致するフォント を全て列挙できる。引き数がない場合は利用可能な全てのフォントを列挙する。 このプログラムは普通、同じフォントを色々なサイズで列挙する。基本となる スケーラブルフォントだけを見るには次のパターンを使うこと:
-*-*-*-*-*-*-0-0-0-0-*-0-*-* -*-*-*-*-*-*-0-0-75-75-*-0-*-* -*-*-*-*-*-*-0-0-100-100-*-0-*-*
得られた名前の 1 つを指定したサイズのフォントに変換するには、最初の 2 つ の 0 のどちらかを 0 ではない値に置き換える。 最初の 0 を含んでいる項目はピクセル単位での大きさである。特定のフォン トを指定するには、この 0 を指定する高さ(ピクセル単位)に置き換える。 また、二番目の 0 を含む項目はポイントサイズである。これをデシポイント 単位(722.7 デシポイントが 1 インチになる)のサイズに置き換える。 最後の 0 はピクセルの 1/10 倍が単位となる、平均的な幅を表すフィールド である。サーバによっては、この数値を指定するとスケーリングが歪んでしまう。
tcp/hostname:port tcp/hostname:port/cataloguelist
hostname はフォントサーバの稼働しているマシンの名前(あるいは 10 進数のアドレス) で指定する。port は接続用のフォントサーバが接続待ち をしている 10 進数の TCP のポート番号である。cataloguelist はカ タログ名のリストで '+' で区切って指定する。
指定例: tcp/x.org:7100, tcp/198.112.45.11:7100/all
DECnet 接続で使用するフォントサーバ名は次に示す形式のいずれかで 指定できる:
decnet/nodename::font$objname decnet/nodename::font$objname/cataloguelist
nodename はフォントサーバの稼働しているマシンの名前(または 10 進数のアドレス)を指定する。objname は大文字と小文字の区別がある DECnet の通常のオブジェクト名である。cataloguelist ははカタログ名のリス トで '+' で区切って指定する。
指定例: DECnet/SRVNOD::FONT$DEFAULT, decnet/44.70::font$special/symbols
X は "red", "blue" 等の抽象的色名称の利用に対応している。 この抽象的色名称に対応する値は 1 つまたは複数の色データベースを検索し て取得できる。 Xlib はまず 0 個以上のクライアント側のデータベースを検索する。 これらのデータベースの個数、場所、内容は実装依存である。 名称が見つからなかったら、色は X サーバのデータベースから検索される。 このテキスト形式のデータベースは一般に <XRoot>/lib/X11/rgb.txt ファイルに格納されている。ここで、<XRoot> は X11 をインストールしたディ レクトリのルートに置き換えること。
数値による色指定は、色空間の名称と次の書式の数値の組で構成される:
<color_space_name>:<value>/.../<value>
RGB デバイス指定はプレフィックス "rgb:" によって他と区別し、次の形式で 指定する:
rgb:<red>/<green>/<blue> <red>, <green>, <blue> := h | hh | hhh | hhhh h := 一桁の 16 進数h は 4 ビットの値、 hh は 8 ビットの値、 hhh は 12 ビットの値、 hhhh は 16 ビットの値をそれぞれ表す。 これらの数値は直接 X サーバに渡され、ガンマ補正に使用される。
8 つの基本色は次のように表す:
black rgb:0/0/0 red rgb:ffff/0/0 green rgb:0/ffff/0 blue rgb:0/0/ffff yellow rgb:ffff/ffff/0 magenta rgb:ffff/0/ffff cyan rgb:0/ffff/ffff white rgb:ffff/ffff/ffff
互換性のために RGB デバイス用の古い書式がサポートされているが、 これを使い続けることは勧められない。 書式は最初のシャープ記号(#)の後に数値指定が続くものであり、以下のいず れかのフォーマットになる。
#RGB (それぞれ 4 ビット) #RRGGBB (それぞれ 8 ビット) #RRRGGGBBB (それぞれ 12 ビット) #RRRRGGGGBBBB (それぞれ 16 ビット)
R, G と B は一桁の 16 進数を表す。 それぞれに 16 ビットより小さい値が指定されている場合、これは値の最上位 のビットを表す(数値がスケーリングされる "rgb:" 形式とは異なる)。 例えば、#3a7 は #3000a0007000 と同じである。
RGB による強度指定はプレフィックス "rgbi:" で識別され、次の書式で指定 される。:
rgbi:<red>/<green>/<blue>
red, green, blue は 0.0 から 1.0 の範囲の浮動小数点である。 1.0 が最大の強度で 0.5 が半分の強度のように線形の強度を表す。 この値は X サーバに送る前の Xlib によってガンマ補正が行われる。 これらの値の入力書式は、符号(省略可能)、数値を示す文字列(小数点を含む こともある)、べき乗フィールド(E 又は e の後ろに符号付き整数を続けたも の。省略可能)である。
標準のデバイス依存の文字列による指定は次の書式である:
CIEXYZ:<X>/<Y>/<Z> (none, 1, none) CIEuvY:<u>/<v>/<Y> (~.6, ~.6, 1) CIExyY:<x>/<y>/<Y> (~.75, ~.85, 1) CIELab:<L>/<a>/<b> (100, none, none) CIELuv:<L>/<u>/<v> (100, none, none) TekHVC:<H>/<V>/<C> (360, 100, 100)
全ての値 (C, H, V, X, Y, Z, a, b, u, v, y, x) は浮動少数点の値である。 この数値のいくつかには 0 から上限値の間の値を持つという制限がある。 上記のリストではこの上限値は括弧で括られている。 これらの数値の書式は、'+' か '-' の符号(省略可能)、小数点 を含むことがある数値を表す文字列、省略可能な指数フィールド(E または e の 後ろに符号(省略可能)と数値を表す文字列を続けたもの)である。
デバイス独立色の詳しい情報については Xlib のリファレンスマニュアル を参照すること。
X キーボードモデルは 2 つの層に分かれている。これは、(keycode と呼ばれている) 物理的なキーを表すサーバ独自のコードと、 (keysym と呼ばれている) キー上に書かれている文字や言葉を表す サーバに依存しないシンボルである。keycode から keysym へ変換する 2 つの テーブルはサーバ内に格納されている:
リストの最初の 4 つの要素は 2 つのキーシンボルのグループに分けられる。 グループ 1 は 1 番目と 2 番目のキーシンボルで、 グループ 2 は 3 番目と 4 番目のキーシンボルである。 それぞれのグループでは、 1 番目の要素がアルファベットで 2 番目の要素が特別なキーシンボル NoSymbol ならば、このグループは 1 番目の要素が小文字で、2 番目 の要素が大文字であるグループと同様に扱われる。
グループの切り替えは MODE SWITCH という名前のキーシンボルで制御する。 この切り替えは、このキーシンボルを何らかのキーに割り当て、そのキーを Mod1 から Mod5 のどれかのモディファイアに割り当てることによって行う。 このモディファイアは「グループモディファイア」と呼ばれる。グループ 1 はグループモディファイアが無いときに使用され、グループ 2 は グループモディファイアがあるときに使用される。
グループ内部では、モディファイアの状態によりどのキーシンボルが使用され ているのかがわかる。 1 番目のキーシンボルは Shift と Lock モディファイアがオンになってない 時に使用する。 2 番目のキーシンボルは Shift モディファイアがオンの時、Lock モディファイア がオンでかつ 2 番目のキーシンボルが大文字のアルファベットである時、ま たは Lock モディファイアキーがオンでかつ ShiftLock として解釈されてい る時に使われる。それ以外の場合は、Lock モディファイアキーがオンでかつ CapsLock として解釈されている時は、Shift モディファイアの状態は最初に キーシンボルを選択するために適用される。しかし、そのキーシンボルが 小文字のアルファベットならば、これに対応する大文字のキーシンボルが 代わりに使用される。
リソースの正確な文法を示す:
ResourceLine = Comment | IncludeFile | ResourceSpec | <empty line> Comment = "!" {<NULL 文字と改行以外の任意の文字>} IncludeFile = "#" WhiteSpace "include" WhiteSpace FileName WhiteSpace FileName = <OS で有効なファイル名> ResourceSpec = WhiteSpace ResourceName WhiteSpace ":" WhiteSpace Value ResourceName = [Binding] {Component Binding} ComponentName Binding = "." | "*" WhiteSpace = {<空白文字> | <水平タブ文字>} Component = "?" | ComponentName ComponentName = NameChar {NameChar} NameChar = "a"-"z" | "A"-"Z" | "0"-"9" | "_" | "-" Value = {<NULL 文字とエスケープされていない改行文字を以外の任意の文字>}
縦棒 (|) で区切られた要素は選択肢である。 中括弧 ({...}) は囲んだ要素の 0 回以上の繰り返しを表す。 大括弧 ([...]) は囲んだ要素が省略可能であることを表す。 引用符 ("...") は文字列を囲むために使われる。
IncludeFile 行は指定したファイルの内容で置き換えるように解釈される。 "include" という語は小文字でなければならない。 ファイル名はその行が現れたファイルがあるディレクトリから相対的に解釈さ れる(例えば、ファイル名がディレクトリも相対ディレクトリの指定も含まな い場合)。
ResourceName は 2 つかそれ以上の結合文字での連続したシーケンスを含む。 このシーケンスが"." 文字だけを含む場合には 1 つの "." 文字で置き換 えられ、そうでない場合には 1 つの "*" 文字で置き換えられる。
リソースデータベースは与えられた ResourceName に対して複数のエントリー を持つことはない。リソースファイルが同じ ResourceName に対して複数の行 を持つ場合は、ファイルに最後に現れた行が使用される。
ResourceSpec 内の名前やコロンの前後の空白文字は無視される。 Value を空白文字で始められるようにするため、2 文字のシーケンス ``\space'' (バックスラッシュに続く空白)が認識されて空白文字 に置き換えられ、2 文字のシーケンス ``\tab'' (バックスラッシュ に続く水平タブ)が認識されて水平タブに置き換えられる。 Value に改行文字を含められるようにするため、2 文字のシーケンス ``\n'' が認識されて改行文字に置き換えられる。 Value がテキストファイル内で複数行で分割して記述できるように、2 文字の シーケンス ``\newline''(バックスラッシュに続く newline)が認識 される。このシーケンス自体は値から削除される。 Value に任意の文字を含められるようにするため、4 文字のシーケンス ``\nnn''が認識され、シーケンスで指定された8進値を持つ1つのバ イト値に置き換えられる。 ここで、それぞれの n は ``0''-``7'' の範囲の値をとる。 最後に、2 文字のシーケンス ``\\'' が認識され、1 つのバックスラッシュ で置き換えられる。
アプリケーションがリソースの値を探すときには、クラス名とインスタンス名 の両方を使って階層構造の完全パスを指定する。 しかし、通常はリソース値には、パターンマッチング構造を用いて部分的にだ け指定された名前とクラスが与えられる。 アスタリスク(*)は緩い結合であり、間に任意の数の要素が入っていること を表す。任意の数には何も入っていないことも含まれる。 ピリオド (.) は強い結合であり、隣接する要素を区切るために使われる。 疑問符(?)は任意の 1 つの要素名またはクラスと一致する。 データベースの項目は緩い結合では終了できず、最後の要素("?" は許されな い)は指定しなければならない。 検索アルゴリズムは、問い合わせられた完全な名前とクラスに対して最も近く (最も指定に近く)マッチするエントリーをリソースデータベースから検索する。 複数のエントリーが完全な名前とクラスにマッチするときには、マッチするも のの中から 1 つだけを選ぶために優先順位の規則が使われる。
完全な名前とクラスは 1 回に1つのコンポーネントが左から右へ(最も高いな 階層から低いの階層へと)走査される。 それぞれのレベルでは、対応する要素かつ/またはマッチするそれぞれのエン トリーの結合が決定され、これらの一致した要素と一致したエントリーが優先 順位規則によって比較される。 ルールが 1 つの項目をほかの項目から選択するまで、次のレベルに移動する 前にそれぞれのルールがそれぞれのレベルで適応される。規則(優先順位)を以 下に示す:
X ツールキットイントリンシクスに基づくプログラムは、次のソースからリソー スを得る(他のプログラムは通常これらのソースの一部をサポートしている)。
プログラムのリソースはクラスと呼ばれるグループにまとめられている ので、グループの個々のリソース(それぞれを インスタンス と呼ぶ)を 一度にすべて設定できる。伝統的に、リソースのインスタンス名は小文字で始ま り、クラス名は大文字で始まる。 複数の語からなるリソースは、次の語句の 1 文字目を大文字にして語句を連 結させる。X ツールキットイントリンシクスを使って書かれたプログラムは最 低限、次のリソースを持つ:
X ツールキットイントリンシクスを使って書かれたプログラムは foreground リソース(Foreground クラス)も持つ。これは、 ウィンドウ内のテキストやグラフィックスで使用する色を指定する。
クラスとインタンスの指定を組み合わせることにより、アプリケーションの好み を手早く、簡単に設定できる。カラーディスプレイのユーザは、Background と Foreground クラスに特定のデフォルト値を設定しておくとよいだろう。 その後で、テキストカーソルのような特定の色のインスタンスを、すべての関 係するリソースを定義することなく上書きできる。以下に設定例を示す:
bitmap*Dashed: off XTerm*cursorColor: gold XTerm*multiScroll: on XTerm*jumpScroll: on XTerm*reverseWrap: on XTerm*curses: on XTerm*Font: 6x10 XTerm*scrollBar: on XTerm*scrollbar*thickness: 5 XTerm*multiClickTime: 500 XTerm*charClass: 33:48,37:48,45-47:48,64:48 XTerm*cutNewline: off XTerm*cutToBeginningOfLine: off XTerm*titeInhibit: on XTerm*ttyModes: intr ^c erase ^? kill ^u XLoad*Background: gold XLoad*Foreground: red XLoad*highlight: black XLoad*borderWidth: 0 emacs*Geometry: 80x65-0-0 emacs*Background: rgb:5b/76/86 emacs*Foreground: white emacs*Cursor: white emacs*BorderColor: white emacs*Font: 6x10 xmag*geometry: -0-0 xmag*borderColor: white
これらのリソースがホームディレクトリの .Xresources と呼ばれるファ イルに格納されている場合は、次のコマンドでサーバ内に存在するリソースに 追加できる:
% xrdb -merge $HOME/.Xresources
これは、取り扱いが簡単な X の起動スクリプトにおいて、ユーザの指定した デフォルト値をサイト全体で使っているデフォルト値とマージするためによく 使われている方法である。どのようなサイトでも、リソースをロードする便利な方法 を用意しておくとよい。詳細な情報については、Xlib のマニュアルの Resource Manager Functions のセクションを参照すること。
% xrdb $HOME/.Xresources % xmodmap -e "keysym BackSpace = Delete" % mkfontdir /usr/local/lib/X11/otherfonts % xset fp+ /usr/local/lib/X11/otherfonts % xmodmap $HOME/.keymap.km % xsetroot -solid 'rgbi:.8/.8/.8' % xset b 100 400 c 50 s 1800 r on % xset q % twm % xmag % xclock -geometry 48x48-0+0 -bg blue -fg white % xeyes -geometry 48x48-48+0 % xbiff -update 20 % xlsfonts '*helvetica*' % xwininfo -root % xdpyinfo -display joesworkstation:0 % xhost -joesworkstation % xrefresh % xwd | xwud % bitmap companylogo.bm 32x32 % xcalc -bg blue -fg magenta % xterm -geometry 80x66-0-0 -name myxterm $* % xon filesysmachine xload
X ツールキットイントリンシクスがリソースの文字列を適切な内部書式に変換 するときにエラーが起こると、通常はエラーメッセージは出力されない。様々 なディスプレイ(カラーとモノクロの場合、フォントが多い場合と少ない場合など)で 1 つのリソースの組み合わせを使いたいときには便利であるが、アプリケーション がうまく動作しない理由を調べるときには問題になるだろう。この挙動は StringConversionsWarning リソースを設定することにより上書きでき る。
X ツールキットイントリンシクスが常に文字列変換のエラーを出力するように 強制するには、xrdb プログラムを使って RESOURCE_MANAGER プロパティ の内容をロードするファイル(ユーザのホームディレクトリにある .Xresources か .Xres であることが多い)に次のリソースを加え ること:
*StringConversionWarnings: on
文字列変換のメッセージを特定のアプリケーションだけで出力させるには、 適切なインスタンス名をアスタリスクの前に付ける:
xterm*StringConversionWarnings: on
XConsortium(1), XStandards(1), Xsecurity(1), appres(1), bdftopcf(1), bitmap(1), editres(1), fsinfo(1), fslsfonts(1), fstobdf(1), iceauth(1), imake(1), lbxproxy(1), makedepend(1), mkfontdir(1), oclock(1), proxymngr(1), rgb(1), resize(1), rstart(1), smproxy(1), twm(1), x11perf(1), x11perfcomp(1), xauth(1), xclipboard(1), xclock(1), xcmsdb(1), xconsole(1), xdm(1), xdpyinfo(1), xfd(1), xfindproxy(1), xfs(1), xfwp(1), xhost(1), xieperf(1), xinit(1), xkbbell(1), xkbcomp(1), xbkevd(1), xkbprint(1), xkbvleds(1), xkbwatch(1), xkill(1), xlogo(1), xlsatoms(1), xlsclients(1), xlsfonts(1), xmag(1), xmh(1), xmodmap(1), xon(1), xprop(1), xrdb(1), xrefresh(1), xrx(1), xset(1), xsetroot(1), xsm(1), xstdcmap(1), xterm(1), xwd(1), xwininfo(1), xwud(1) Xserver(1), Xdec(1), XmacII(1), Xsun(1), Xnest(1), Xvfb(1), XF86_Acc(1), XF86_Mono(1), XF86_SVGA(1), XF86_VGA16(1), XFree86(1), kbd_mode(1), Xlib - C Language X Interface, and X Toolkit Intrinsics - C Language Interface
X Window System は X Consortium, Inc. の登録商標である。
非常にたくさんの著者がいる。リリース 6.3 の配布物は X Consortium, Inc. が配布している。ここに挙げるべき全ての人々の名前は 個々のドキュメントやソースファイルの中にある。このリリースに関わった X Consortium に在籍するスタッフは Donna Converse (名誉メンバ), Stephen Gildea (名誉メンバ), Kaleb Keithley, Matt Landau (名誉メンバ), Ralph Mor (名誉メンバ), Janet O'Halloran, Bob Scheifler, Ralph Swick, Dave Wiggins (名誉メンバ), Reed Augliere である。
X ウィンドウシステムの基本部分は、元々マサチューセッツ工科大学 (Massachusetts Institute of Technology)のコンピュータ科学研究所 (Laboratory for Computer Science)が開発し、その全ての権利は X コンソー シアムに 1994/01/01 付けで譲渡された。 X Consortium, Inc. は 1996/12/31 付けで解散した。X ウィンドウシステム に関する全ての権利は Open Software Foundation へ譲渡された。