| 原作者 | X.Org財団 |
|---|---|
| 安定リリース | 1.0 / 1996 |
| Webサイト | 詳しくはこちら |
ヒューマン・コンピュータ・インターフェースにおいて、X キーボード拡張またはXKBは、 X ウィンドウ システムの一部であり、 X ウィンドウ システムのコア プロトコルによって提供されるキーボードを制御する機能を拡張し、複数のキーボード レイアウトを使用できるようにします。
主な機能は次のとおりです。
- 修飾子(Alt、など)のサポートが強化されました。⇧ Shift
- キーグループ(通常はキーボードレイアウト)のより適切な処理。
- キーボードインジケーター( LED)とベルの拡張制御。
- さまざまな新しいキーボード パラメーター (コントロール)。
- アクション(特定の種類)をキーに関連付けます。
XKB は、サーバー拡張機能とクライアント ライブラリの 2 つの部分で構成されています。Xlib の最新バージョンには、デフォルトでアクティブになっている XKB が含まれています。この拡張機能を使用しないクライアント プログラムは、サーバーに接続する前にこれを非アクティブにするか、拡張機能がデフォルトでコア プロトコルをシミュレートするように通常どおり動作することができます。
XKB はWayland コンポジターやkmsconでも使用されます。
ラッチおよびロックされた修飾子
XKB では、修飾子を通常の状態以外にロックまたはラッチすることができます。通常、修飾子は、 Shift キーのように、押されたときにアクティブになります。ただし、 Caps Lock修飾子のように、修飾子がロックされる場合もあります。修飾子がロックされると、明示的に非アクティブにされるまでアクティブなままになります。通常の状態とロックの中間の状態はラッチ状態です。修飾子がラッチされると、次の非修飾キーが押されるまでアクティブなままになります。
XKB を使用すると、クライアント アプリケーションは修飾子を明示的にラッチまたはロックできます。さらに、アプリケーションはキーの押下または解放を修飾子の状態変更にバインドできます。このようにして、キーが押されたり解放されたりするたびに、修飾子が自動的にラッチまたはロックされることがあります。
主要グループ
XKB を使用すると、キーボードを 4 つの異なる文字グループ間で切り替えることができます。これは通常、キーボードを別の言語のキーボードのように動作させるために行われます。このコンテキストでは、キーボードによって生成される文字のセットはグループと呼ばれ、キーボードはいつでも別のグループに切り替えることができます。
XKB はいくつかのグループ セレクタ(仕様では単にグループと呼ばれます) を定義します。修飾子と同様に、グループ セレクタはキーに関連付けることができますが、ラッチまたはロックすることもできます。
コントロール
キーボードの動作は、クライアントが変更できるいくつかのパラメータに依存します。これらのパラメータはコントロールと呼ばれます。たとえば、SlowKeyコントロールを使用すると、短いキー押下を無視できます。別のコントロールはMouseKeysで、これはいくつかのキー押下によってマウスの動きをシミュレートします。このコントロールは、このシミュレーションがアクティブかどうかを示すだけです。どのキーが動きを生成するかはコントロールの一部とは見なされず、これらのキーにアクションをアタッチすることで指定されます。
上記の 2 つのコントロールはブール型です。つまり、アクティブか非アクティブかのどちらかです。PerKeyRepeatはブール型ではないコントロールです。つまり、どのキーがオートリピート モードになっているかを示すマスクです。仕様によると、非ブール型コントロールは「常にアクティブ」です。つまり、常に一連のパラメータ (この場合はマスク) に依存しますが、コントロールの効果を完全に非アクティブ化するために使用できる単一のビットは存在しません。
コントロールは、ブール型か非ブール型かというだけでなく、サーバーの動作に影響を与えるものと、クライアント ライブラリの動作に影響を与えるものに分類されます。上記の 2 つはサーバー コントロールです。クライアント ライブラリ コントロールは、キーコードまたはキーコードのシーケンスを文字列 ( XLookupString ) に変換することと、イベントの配信に影響を与えます。
アクション
XKB を使用すると、アクションをキーの押下と関連付けることができるため、入力イベント処理の負担の一部がクライアント アプリケーションから X サーバーに移されます。ただし、キーに関連付けることができるアクションは、次のものに限定されます。
- 修飾子の状態をアクティブ、非アクティブ、ラッチ、またはロックに変更します。
- グループセレクターの状態を変更する(修飾子と同じ)
- マウスイベント(移動またはボタンアクティビティ)をシミュレートする
- アクティブ画面を変更する(この種のアクションはオプションであり、必ずしもサーバーでサポートされているわけではありません)
- ブールコントロールの状態を変更する
- メッセージイベント(つまり、クライアントに送信されるパケット)を生成する
- 別のキーコードを生成する
さらに、サーバーが X 入力拡張機能をサポートしている場合に利用できる、デバイスに関連するアクションがいくつかあります。
互換性の問題
X キーボード拡張はコアキーボード処理と互換性がないため、いくつかの修飾キーが機能しないか、VNC やXephyrなどのエミュレートされた環境内で回避策が必要になります。
他の
XKB を使用すると、キーボード インジケーター (LED) をより適切に処理できます。特に、XKB はインジケーターのシンボル名を提供するため、インジケーターをキーボード アクティビティにバインドし、実際にキーボード上に存在するインジケーターをチェックできます。
XKB は、コア プロトコルのベル処理も改善します。コア プロトコルは 1 つのベルのみをサポートし、クライアントが実行できる唯一のアクションはベルを鳴らすことです。XKB は複数の名前付きベルをサポートし、クライアントがそれらのいくつかを非アクティブ化し、ベルが鳴ったときに通知を受けることができます。
XKB を使用すると、クライアントは、個々のキーの形状を含むキーボードの物理的な形状を照会できます。特に、キーはセクションに配置され、回転される場合もあります (たとえば、テンキーは通常セクションと見なされます)。セクション内では、キーは行に配置されます。キーとセクションには、キーのおおよそのアウトライン、境界ボックス、および正確な形状で構成されるジオメトリがあります。キー以外に、ジオメトリには、キー以外のキーボード上の要素であるdoodadsも含まれます。キーボードの全体的な形状は doodad です。doodads について提供される情報には、その色と、そこに印刷されているテキスト (使用されているフォントを含む) が含まれます。
参考文献
- X Consortium Inc. X キーボード拡張: ライブラリ仕様(1996)。HTML、PDF。
- X Consortium Inc. X キーボード拡張: プロトコル仕様(1996)。HTML、PDF。
- X Consortium Inc. XKB 構成ガイド(2010) HTML、PDF。
- X Consortium Inc. XKB 構成をさらに強化する方法(2002)。HTML、PDF。
外部リンク
- XKBについて
- アーチウィキ。 X キーボード拡張機能
- Damiano Venturin. Linux 用 XKB のシンプルで控えめながらも包括的なガイド (2016)
- Michal Kosmulski. XKB を使用して X11 用のカスタム キーボード レイアウトを作成する (2011)
- Ivan Pascal。X キーボード拡張 — さまざまな XKB 構成ファイルに関する詳細情報。
- ダグ・パーマー。XKB 構成の信頼性の低いガイド (2004)
