XRefreshKeyboardMapping(event_map)
XMappingEvent *event_map;
int XLookupString(event_struct, buffer_return,
bytes_buffer, keysym_return, status_in_out)
XKeyEvent *event_struct;
char *buffer_return;
int bytes_buffer;
KeySym *keysym_return;
XComposeStatus *status_in_out;
XRebindKeysym(display, keysym, list, mod_count, string, num_bytes)
Display *display;
KeySym keysym;
KeySym list[];
int mod_count;
unsigned char *string;
int num_bytes;
関数 XRefreshKeyboardMapping は、格納されているモディファイアとキーマップの情報を更新する。 通常この関数が呼び出されるのは MappingNotify イベントが発生して、その request メンバが MappingKeyboard か MappingModifier だったときである。 関数を呼び出した結果、Xlib のキーボードの情報が更新される。
XLookupString はキーイベントを KeySym と文字列にトランスレートする。 KeySym は X プロトコル仕様で定義されている Shift, Lock, グループ、numlock モディファイアの標準の解釈を使って取得する。 KeySym が再バインドされていた場合( XRebindKeysym を参照)、バインドされている文字列がバッファに格納される。 そうでない場合、可能であれば KeySym は ISO Latin-1 文字か (Control モ ディファイアが有効であれば) ACSII 制御文字にマップされ、その文字がバッ ファに格納される。 XLookupString はバッファに格納した文字数を返す。
もし XComposeStatus 構造体が存在していれば(NULLでなければ)、 この構造体には組み立て処理を行うするための XLookupString の呼び出しの間で保存が必要な状態が記録される。 この状態は Xlib のプライベートなものである。 XComposeStatus の生成は実装依存である。 移植性を必要とするプログラムでは、この引き数に NULL を渡すべきである。
関数 XRebindKeysym を使うとクライアントにとっての KeySym の意味を再バインドできる。 この関数は X サーバのキーを再定義するのではなく、単に長い文字列をキー に割り当てる簡単な方法を提供するものである。 XLookupString は適切な組合せのモディファイアキーが押された時と、KeySym がトランスレーション に対して用いられた時にこの文字列を返す。 テキスト変換は行われない。 適切にエンコードした文字列を与える責任はクライアントが負う。 存在しない KeySym にも再バインドができる点に注意すること。