キーボード配列面

かえうちのキー配列設計の基本となる「配列面」について解説します。

配列面とは

日本語入力のON/OFFや、何かのキーと同時押しなど、同じキーでも状況に応じて別の機能を担うことができれば、キー配列設定は単なる「並べ替え」ではなく、高度な機能を割り当てることができるようになります。

それを可能にするのが配列面(あるいはレイヤー)です。普段はある配列面の機能を出力するものの、「変換キーと同時」「Ctrlキーを押しながら」「Spaceを押した直後」などでは別の配列面の機能を出力するようになります。

かえうち では、最大32個の配列面を利用することができます。各配列面は有効/無効を切り替えることができ、優先度は「0」が一番低く、「31」が一番高くなっています。起動時は「0」のみが有効で、他はすべて無効になっています。

なお配列面の重なり方の概念(優先順位、有効/無効、透過)は、PhotoshopやIllustratorなどの画像編集ソフトウェアにおける「レイヤー」とよく似ています。そちらに馴染みのある方は受け入れやすい仕組みかと思います。

配列面の例

サンプル集 の「NICOLA (Space・変換)」を例に、配列面の動作を見てみましょう。

起動時は最も優先順位が低い「配列面0」だけが有効になっています。

ここでひらがなキーを押すと、マクロA
かな
が実行され、配列面1が有効になります。

配列面1が有効になると、配列面1が配列面0に覆い被さる格好となります。

配列面1の定義

配列面1は多くのキーに透過(灰色)が設定されています。透過は下の配列面をそのまま利用することになります。

同時押しの出力

ここで同時キーの設置されたAキーと、同時押し
MOD 0
の設置されたSpaceキーを同時に押すとどうなるでしょうか?

同時押し
MOD 0
の配列面は 3 に設定されています。同時押し
MOD 0
と同時に押した同時キーは、配列面3の機能が出力されるということです。

同時押し
MOD
ユーザー
MOD 0
の配列面設定は有効無効ではなく、直接その配列面を参照します。今回は配列面3のAキーを参照して、かな文字「を」が出力されます。

修飾キー押下時

配列面0と1が有効になった状態で、左Ctrlを押しながらAを押したときを見てみましょう。

修飾キーが押されていなければ、配列面1のAキーに定義された同時キー
(単独2)
が出力される(実際は同時押し判定が入る)はずです。しかし、修飾キーが押されているときは、「修飾キーが押されている間 有効になる配列面」を参照します。

配列面1

配列面1の「修飾キーが押されている間 有効になる配列面」のうち、左Ctrlには「5」が指定されています。したがって、配列面5が有効になります。

Aキーには同時キー
(単独2)
の上にAが乗っかっていますね。結果として左Ctrl+Aを押すと、(左Ctrlが押されたまま)Aが出力されることになります。