KeyPress and KeyRelease
キーが押されたときと離されたときのX11イベント。渡されるのはキー番号だけで、それが何を意味するかはクライアントが考える。
KeyPressにはキーコード、修飾キーの状態(Shift、Control、Mod1など)、タイムスタンプ、ポインタ座標、関係するウィンドウが載っている。送り先はキーボードフォーカスを持つウィンドウで、ポインタの下のサブウィンドウがフォーカスウィンドウ内にあればそちらになる。ただしそのウィンドウが KeyPressMask を選択している場合に限る。サーバーは何も翻訳しない。キーコードと状態からキーシンボルやテキストを得る作業はクライアントが行い、通常は XLookupString、入力メソッドなら XmbLookupString を使う。
オートリピートでは通常、同一タイムスタンプのKeyReleaseとKeyPressの組が送られる。キーの押しっぱなしと連打を区別したいプログラムは時刻を比較するしかなかった。XKBが検出可能なオートリピートを加えるまではそうだった。解釈をすべてクライアント側で行うことは、他が皆レイアウトを切り替えた後も、あるプログラムだけ古い配列で入力し続ける理由でもある。