X Window System コアプロトコル
各ウィンドウには、事前定義された属性群とプロパティ群があり、サーバに全て格納され、クライアントからは適当な要求でアクセスできる。属性はウィンドウに関するデータであり、サイズ、位置、背景色などがある。プロパティはウィンドウにアタッチされた任意のデータである。属性とは対照的に、プロパティはXコアプロトコルのレベルでは何の意味もない。クライアントはウィンドウのプロパティとして任意のデータを格納できる。
プロパティには、名前、データ型、値がある。プロパティは命令型プログラミングにおける変数に似ていて、クライアントが名前とデータ型を指定して生成でき、任意の値を格納できる。プロパティはウィンドウに対応しているため、同じプロパティ名を複数のウィンドウそれぞれで使い、それぞれ異なる型の異なる値を格納できる。
プロパティの名前、データ型、値は全て文字列である。より正確に言えば、これらは全てアトムであり、サーバに格納されている文字列に対応していて、クライアントからはその識別子でアクセス可能である。クライアントはあるプロパティに対して、その名前を格納したアトムの識別子を使ってアクセスする。
↑ Robert W. Scheifler and James Gettys: X Window System: Core and extension protocols, X version 11, releases 6 and 6.1, Digital Press 1996, ISBN 1-55558-148-X
↑ RFC 1013
↑ Grant Edwards. An Introduction to X11 User Interfaces
↑ Jim Gettys. Open Source Desktop Technology Road Map
↑ comp.fonts FAQ: X11 Info
↑ X Logical Font Description Conventions
↑ Matthieu Herrb and Matthias Hopf. New Evolutions in the X Window System.
↑ Ghostview: Interface with ghostscript
↑ David Rosenthal. Inter-Client Communication Conventions Manual. MIT X Consortium Standard, 1989
1 2 Freedesktop window manager specification
例えば、第一修飾キー(シフト)の keycode 一覧で 0x37 が記載されている場合、その keycode 0x37 に対応したキーをXサーバがシフト修飾キーであると認識する
修飾キーと解釈されるキーのマッピングはXサーバが管理するが、任意のクライアントが変更できる。例えば、クライアントからF1キーをシフト修飾キーとして解釈されるキー一覧に追加することができる。このような修正を加えると、F1キーが第3のシフトキーとして機能するようになる。しかし、F1キーを押下した場合の keycode はそのままである。したがって、F1キーを従来通りに解釈することもできるし(例えば、F1キー押下でヘルプウィンドウを開くなど)、同時にシフトキーとしても機能する("a" キーを押下したときにF1キーが押下されていると "A" と解釈される)。
Xサーバは、マウスボタンについてもマッピングを管理し、使用する。ただし、ボタンはボタン同士での入れ替えだけが可能となっている。これは、左利きのユーザ向けに左端のボタンと右端のボタンを入れ替えるのに便利である。
xmodmap プログラムは、キー/修飾キー/マウスボタンのマッピングを表示・変更する。