こんにちは、isukoです。
自作キーボードはキー数が少ないものが多く、キーの配置をカスタマイズすることが重要です。
ZMKファームウェアに対応したキーボードはKeymap Editorでカスタマイズするのが一般的です。
扱いやすくなるようにデザインされてはいますが、英語ですし、多機能すぎてよくわからないという方は多いと思います。
そこで今回は、Keymap Editorの使い方を徹底解説します。
この記事を参考にして、あなただけの理想のキーボードを実現してください。
- Custom Behaviors
- Reconfigurations
LAYERS

レイヤーとは「層」という意味で、キーの一覧を層として管理したものです。
例えばふつうのキーボードでも、Shiftキーを押しながら数字ボタンを押すと記号が入力されたりします。
これはShiftキーを押すことで、レイヤーが切り替わっていると考えることができます。
特に自作キーボードはキーの数がふつうのキーボードより少ないことがあるため、レイヤーを使いこなすことが重要です。
レイヤーは0がデフォルトで、特別な設定をしない限り、デバイスに接続したときに標準で有効になるレイヤーです。
よく入力するキーはデフォルトレイヤーに設定しておくのがおすすめです。
そのほかのレイヤーには、レイヤーに移動するキーを入力することで移動できます。
後ほどくわしく説明しますが、キーを1回押すと特定のレイヤーに移動したままになったり、キーを押しているときだけレイヤーを移動したりと、さまざまなレイヤー移動の方法があります。
設定できるレイヤー数はキーボードによって異なります。
「LAYERS」の画面では、レイヤーごとのキー動作を割り当てられます。

キーの四角形をクリックすると、「Behavior」と、「Behavior」によってはパラメーターを選択します。
この「Behavior」についてくわしく説明します。
&bl(Backlight)

「&bl(Backlight)」はキーボードのバックライトの動作を制御するためのbehaviorです。
これを使うことで、キーボードの光り方をキー操作でカスタマイズできます。
パラメーターは「Backlight Action」で、バックライト全体のオン/オフ切り替えのトグル、明るさを一段階上げる/下げる、あるいは特定の明るさレベルに直接設定するといった具体的な操作を割り当てられます。
&bt(Bluetooth)

「&bt(Bluetooth)」はキーボードのBluetooth接続に関連する動作を制御するためのbehaviorです。
これを利用することで、キー操作を通じて複数のBluetoothデバイスとの接続状態を管理することが可能になります。
パラメーターは「Bluetooth Action」で、特定のペアリング済みデバイスへの接続切り替えや、登録されているペアリング情報の削除といった操作を割り当てられます。
多くのキーボードでは複数のデバイスとペアリングできるため、このbehaviorを使えば、パソコンやタブレット、スマートフォンといった複数のデバイス間でのキーボード利用を、キー一つでスムーズに切り替えられるようになります。
&caps_word(Caps word behavior)

「&caps_word(Caps word behavior)」は、「Caps Lock」キーのように動作します。
「Caps Lock」キーは、1回押すと、もう一度押すまでシフトキーが押されたままのような動作をします。
一方「Caps Word」キーは、デフォルトでは英数字、アンダースコア(_)、バックスペース、デリートキー以外のキーを押すと自動的に無効になります。
「Caps Word」を有効にし続けるためのキーや、押し続けるキーの種類は、後ほど紹介する「BEHAVIORS」によってカスタマイズできます。
&ext_power(External Power)

「&ext_power(External Power)」は、外部電源の制御をするbehaviorです。
パラメーターは「External Power Mode」で、外部電源の使用・不使用を指定したり、キーを押すごとに使用・不使用を入れ替えたりできます。
&gresc(Mod Morph Behavior)

「&gresc(Mod Morph Behavior)」は、ShiftキーやGUIキー(WindowsキーやCommandキー)が押されている場合はグレイヴ・アクセント(`)、それ以外の場合はEscapeキーを入力するbehaviorです。
&kp(Key Press)

「&kp(Key Press)」は、標準的なキーを入力するbehaviorです。
パラメーターは「Key Code」です。
Shiftキーなどの修飾キーを押しながらの入力も割り当てられます。
&key_repeat(Key repeat behavior)

「&key_repeat(Key repeat behavior)」は、最後に押されたキーを再度入力するbehaviorです。
いくつものキーを同時に入力する動作や、1回の入力で複数の動作を実行できるマクロなどを繰り返し実行したいときに役に立ちます。
&kt(Key Toggle)

「&kt(Key Toggle)」は、一度押すと設定したキーが押され続け、もう一度押すと解除されるbehaviorです。
パラメーターは「Key Code」で、設定したキーコードが押され続けます。CapsLockキーなどを割り当てるのが良さそうです。
<(Layer/Tap)
「<(Layer/Tap)」は、キーがホールド(長押し)されている間はレイヤーを移動し、キーがタップ(短押し)された場合はキーを入力するbehaviorです。
自作キーボードはキーの数が少ないことが多いので、1つのキーに複数の機能を割り当てるのは重要です。
Layer

キーをホールドしているときに移動するレイヤーを指定します。
キーを離すともとのレイヤーに戻ります。
Key Code

キーをタップしたときに入力するキーコードを指定します。
&mt(Mod/Tap)
「&mt(Mod/Tap)」は、キーがホールド(長押し)されているときと、タップ(短押し)されたときとで異なる入力をするbehaviorです。
「Layer/Tap」はキーをホールドしているときにレイヤーを移動するのに対し、「Mod/Tap」はどちらにもキー入力を割り当てられます。
Key Code(HOLD)

キーがホールドされているときに入力するキーコードを指定します。
Key Code(TAP)

キーがタップされているときに入力するキーコードを指定します。
&mo(Momentary Layer)

「&mo(Momentary Layer)」は、キーが押されている間だけレイヤーを移動するbehaviorです。
パラメーターは「Layer」で、指定したレイヤーに移動します。
&mkp(Mouse Key Press)

「&mkp(Mouse Key Press)」は、マウスボタンのクリックをするbehaviorです。
パラメーターは「Mouse Key」で、左右、中央、そして戻る、進むボタンのクリックを割り当てられます。
&mmv(Mouse movement)

「&mmv(Mouse movement)」はマウスカーソルの移動をするbehaviorです。
上下左右の動きを割り当てられます。
パラメーターは「Mouse Movement」で、どの向きにマウスカーソルを移動するかを指定します。

「Mouse horizontal movement」や「Mouse vertical movement」では数値を設定でき、移動距離をカスタマイズできます。
&msc(Mouse scroll)

「&msc(Mouse scroll)」は垂直および水平のスクロールをするbehaviorです。
パラメーターは「Mouse Scroll」で、どの向きにスクロールするかを指定します。

「Mouse horizontal scroll」や「Mouse vertical scroll」ではさらに数値を設定でき、移動距離をカスタマイズできます。
&none(None Binding Behavior)

「&none(None Binding Behavior)」は入力を無視するbehaviorです。
意図しない動作を防ぐために設定するのが良いと思います。
&out(Output)

「&out(Output)」は優先される出力をBluetooth接続にするか、USB接続にするかを切り替えるbehaviorです。
パラメーターは「Keyboard Output Mode」で、BluetoothかUSBを指定して切り替えるか、押すごとにBluetoothとUSBが切り替わる動作を割り当てられます。
&sys_reset(Keyboard Reset Behavior)

「&sys_reset(Keyboard Reset Behavior)」はキーボードをリセットし、現在書き込まれているファームウェアを再実行するbehaviorです。
マイコンのリセットボタンを1回押したときと同じ挙動です。
&bootloader(Keyboard Reset Behavior)

「&bootloader(Keyboard Reset Behavior)」はキーボードをリセットし、ブートローダーモードにするbehaviorです。
ブートローダーモード時は、新しいファームウェアをキーボードに書き込めるようになります。
マイコンのリセットボタンを2回押ししたときと同じ挙動です。
&rgb_ug(RGB Underglow)

「&rgb_ug(RGB Underglow)」はキーボードの下からのRGBライトの挙動を制御するbehaviorです。
パラメーターは「RGB Underglow Action」で、色や明るさなどを変更する操作を割り当てられます。
&soft_off(Soft-Off Behavior)

「&soft_off(Soft-Off Behavior)」はキーボードを強制的にオフ状態にするbehaviorです。
キーボードに物理的な電源スイッチがない場合、電源をオフにするにはこの操作を割り当てる必要があります。
&sk(Sticky Key)

「&sk(Sticky Key)」は別のキーが押されるまで押された状態を維持するbehaviorです。
複数のキーを同時に押す必要がある操作を片手でおこないたいときに活用できます。
パラメーターは「Key Code」で、押された状態を維持したいキーコードを指定します。
&sl(Sticky Layer)

「&sl(Sticky Layer)」は別のキーが押されるまでレイヤーを移動するbehaviorです。
「&sk(Sticky Key)」とは異なり、クイックリリース(別のキーが押されるとすぐにレイヤー移動が解除される)ように設定されているため、一時的にレイヤーを移動したい場合に役立ちます。
パラメーターは「Layer」で、一時的に移動したいレイヤーを指定します。
&studio_unlock(Studio Unlock Behavior)

「&studio_unlock(Studio Unlock Behavior)」はZMKファームウェアでZMK Studioがデバイスに変更を加えるためのアクセス許可をするbehaviorです。
ZMKファームウェアではキー配置をカスタマイズする場合でも、基本的にはファームウェアを書き換える必要があります。
しかしZMK Studioを利用することで、ファームウェアを書き換えることなく、キー配置をカスタマイズできます。
ただし、ZMK Studioは現状割り当てられない動作があるようです。
&to(To Layer)

「&to(To Layer)」は特定のレイヤーを有効にし、デフォルトレイヤー以外の他のすべてのレイヤーを無効にするbehaviorです。
基本的には指定したレイヤーに移動する操作を割り当てられると考えて良いと思います。
パラメーターは「Layer」で、移動するレイヤーを指定します。
&tog(Toggle Layer)

「&tog(Toggle Layer)」は特定のレイヤーを有効にしたり、無効にしたりするbehaviorです。
先ほどの「&to(To Layer)」と異なるのは、複数のレイヤーを同時に有効にできることです。
デフォルトレイヤーの上に有効にしたレイヤーを重ねていくようなイメージです。
一番上のレイヤーの操作が入力できます。
パラメーターは「Layer」で、有効・無効を切り替えたいレイヤーを指定します。
&trans(Transparent Binding Behavior)

「&trans(Transparent Binding Behavior)」はその位置のキー操作を下の有効なレイヤーの操作にするbehaviorです。
つまり、レイヤーに穴が空いている状態です。
先ほど複数のレイヤーを同時に有効にできると説明しましたが、このbehaviorにより1つ下の有効になっているレイヤーのキー操作が適用されます。
&reset(Removed in Zephyr 3.2, use &sys_reset)

「&reset(Removed in Zephyr 3.2, use &sys_reset)」は以前のバージョンのZMKファームウェアで使用されていたリセット動作のようです。
現在は「&sys_reset(Keyboard Reset Behavior)」を使う必要があります。
CONDITIONAL LAYERS

「CONDITIONAL LAYERS(条件付きレイヤー)」とは、指定した複数のレイヤー(if-layers)がすべて有効な場合に、特定のレイヤー(then-layer)を有効にする機能です。
先ほどの「&tog(Toggle Layer)」の説明でも紹介しましたが、ZMKでは複数のレイヤーを同時に有効にできます。
この仕様を利用して、さらにレイヤーを移動できます。
「Add conditional layer」をクリックすることで、条件付きレイヤーを作成できます。

条件の名前をつけ、どのレイヤーが同時に有効になったとき(if-layers)、どのレイヤーを有効にするか(then-layer)を選択します。
then-layerは通常、関連するif-layersよりも大きい番号にする必要があります。
これは番号が大きいレイヤーが上に重なっていくためです。
then-layerとして指定したレイヤーは一時的に有効になっているので、条件が満たされていないとすぐに無効になります。
「Okay」をクリックすることで、条件付きレイヤーの設定ができます。
COMBOS

「COMBOS」は、複数のキー入力を組み合わせて別のキー入力にする機能です。
「Add New Combo」をクリックすることで、コンボを作成できます。

コンボの名前をつけ、どのキーを同時に入力したとき、何のbehaviorにするかを選択します。
「Create」をクリックすることで、コンボの設定ができます。
MACROS

「MACROS」は、1つのキー入力で複数のbehaviorを実行できる機能です。
「Add New Macro」をクリックすることで、マクロを作成できます。

まずマクロの名前をつけ、「create」をクリックします。

マクロは「LAYERS」で選択できる「Behavior」になります。
次にマクロを設定していきます。
Control Binding

「Control Binding」とは、次のコントロールバインディングまでのbehavior(バインディングリスト)に含まれるbehaviorの実行方法を制御するために使用されます。

以下でそれぞれのコントロールバインディングを紹介します。
¯o_tap
「¯o_tap」はバインディングリスト内の各behaviorを押し下げてから離します。
この後紹介する「¯o_press」「¯o_release」を設定しない場合、「¯o_tap」がデフォルトで使用されるようです。
そのため、「¯o_tap」がなくてもマクロは動作します。
¯o_press
「¯o_press」はバインディングリスト内の各behaviorを押し下げるだけです。
たとえば大文字入力をし続けたい場合などは、シフトキーを押したまま入力する必要があるので、このコントロールバインディングを使用します。
¯o_release
「¯o_release」はバインディングリスト内の各behaviorを離すだけです。
「¯o_press」で押し下げたキーを離すために使用します。
¯o_tap_time
「¯o_tap_time」はタップ(短押し)されたbehaviorの押し下げてから離すまでの待ち時間(ms単位)を設定します。
¯o_wait_time
「¯o_wait_time」は次のbehaviorが実行されるまでの待ち時間(ms単位)を設定します。
¯o_pause_for_release
「¯o_pause_for_release」はマクロキー自体を離すまでマクロを一時停止させます。
「¯o_pause_for_release」の手前まではマクロキーを押し下げた時点で実行され、一時停止します。
その後、マクロキーを離すことで続きが実行されます。
¯o_param_1to1
「¯o_param_1to1」はマクロが受信した最初のパラメーターを、直後のbehaviorの最初のパラメーターに転送します。

例えば、「&kp(Key Press)」を2つ続けて設置しても、最初の「&kp(Key Press)」にしか適用されません。
このコントロールバインディングは、外部からマクロに渡された情報を、マクロ内部のbehaviorに伝えるために使います。

外部からマクロに渡された情報というのは、作成したマクロを「LAYERS」で選択すると、パラメーターが設定できます。
このパラメーターのことです。
¯o_param_1to2
「¯o_param_1to2」はマクロが受信した最初のパラメーターを、直後のbehaviorの2番目のパラメーターに転送します。
例えば「&bl(Backlight)」では、バックライトを特定の明るさにするというbehaviorがあります。

このbehaviorの場合、最初のパラメーターは「Set a specific brightness」で、2番目のパラメータで明るさの値を指定します。
「¯o_param_1to2」を配置することで、この2番目のパラメーターに値を転送できます。
¯o_param_2to1
「¯o_param_2to1」はマクロが受信した2番目のパラメーターを、直後のbehaviorの最初のパラメーターに転送します。
¯o_param_2to2
「¯o_param_2to2」はマクロが受信した2番目のパラメーターを、直後のbehaviorの2番目のパラメーターに転送します。
Key Binding

「Key Binding」では、「LAYERS」でのキーの割り当てと同じく、キーのbehaviorを指定します。
String Sequence
「String Sequence」では、「Add String Sequence」をクリックすると、文章の入力画面が表示されます。

文章を入力すると、下にキー入力のリストが作成されます。

「Add to macro」をクリックすることで、マクロにキーの入力が追加されます。
BEHAVIORS

「BEHAVIORS」では独自のbehaviorを作成したり、既存のbehaviorの設定を変更したりできます。
Custom Behaviors
「Custom Behaviors」は、独自のbehaviorを作成できます。

独自に作成したbehaviorは「LAYERS」で選択できる「Behavior」になります。
以下で、作成できるbehaviorを紹介します。
Caps word behavior

「Caps word behavior」は、「LAYERS」の説明で紹介した&caps_word(Caps word behavior)をカスタマイズします。
特定のキーを押すとCaps wordが無効になると説明しましたが、この特定のキーを変更したり、押したままにするキーを設定できます。
continue-list
「continue-list」は、Caps wordを有効なままにするキーの配列を設定します。デフォルトではアンダースコア(_)、バックスペース、デリートキーです。
ちなみに英数字はつねにcontinue-listに含まれるものとして扱われるようです。
mods
「mods」は、Caps wordが有効なときに押されたままにするキーを設定します。デフォルトでは左シフトキー(MOD_LSFT)です。
Hold or Tap behavior

「Hold or Tap behavior」は、キーをタップ(短押し)したときと長押し(ホールド)したときとでキーの動作を切り替えられる<(Layer/Tap)や&mt(Mod/Tap)を、より細かくカスタマイズできます。
ホールドと判断するまでの時間や、判定の仕方などを設定できます。
bindings
「bindings」は、ホールドとタップのそれぞれのbehaviorを指定します。
tapping-term-ms
「tapping-term-ms」は、ホールドと判定するまでの時間(ms単位)を指定します。
quick-tap-ms
「quick-tap-ms」は、この時間内に再度タップすると、常にタップbehaviorになる時間(ms単位)を設定します。
負の値を設定すると無効になります。
require-prior-idle-ms
「require-prior-idle-ms」は、この時間内に、Shiftキーなどの修飾キー以外のキーが押された場合にホールドbehaviorを無効にする時間(ms単位)を設定します。
負の値を設定すると無効になります。
flavor

「flavor」は、タップとホールドの判定に関する挙動を調整します。
「hold-preferred」は、設定した時間が経過するか、別のキーが押されるとホールドbehaviorになります。
「balanced」は、設定した時間が経過するか、別のキーが押されて離されるとホールドbehaviorになります。
「tap-preferred」は、設定した時間が経過するとホールドbehaviorになります。
別のキーが押されても判定に影響しません。
「tap-unless-interrupted」は、設定した時間が経過する前に別のキーが押されるとホールドbehaviorになり、それ以外の場合はタップbehaviorになります。
hold-while-undecided
「hold-while-undecided」を有効にすると、押下時にホールドbehaviorがすぐに開始されます。タップされたと判断された場合、ホールドbehaviorはタップbehaviorが実行される前に解除されます。
無効な場合、キーが押されてもすぐには開始されず、どちらのbehaviorになるかが決定されるまで何も起こりません。
hold-while-undecided-linger
「hold-while-undecided-linger」は、タップbehaviorがホールドbehaviorと同じ修飾キーを使用する場合に、ホールドbehaviorがタップbehavior完了後まで継続されるようにします。
これにより、ホールドからタップへの移行時に修飾キーが二度押しされるのを防ぎます。
retro-tap
「retro-tap」を有効にすると、他のキーが押されなかった場合、キーを離したときにタップbehaviorが実行されます。
hold-trigger-key-positions
「hold-trigger-key-positions」は、特定のキーが押された場合のみホールドbehaviorを実行するように設定できます。
hold-trigger-on-release
「hold-trigger-on-release」は、「hold-trigger-key-positions」の評価をキーが離された時点まで遅らせます。
Key repeat behavior

「Key repeat behavior」は、最後に押されたキーを再度入力するbehaviorである、「&key_repeat(Key repeat behavior)」をカスタマイズします。
デフォルトでは通常のキーボードのキーのみを追跡しますが、「usage-pages」を設定することで、追跡対象を追加できます。
例えば、「HID_USAGE_CONSUMER」を追加すると、音量調整やメディアコントロールなどのキーも繰り返し対象に含めることができます。
Key toggle behavior

「Key toggle behavior」は、一度押すと設定したキーが押され続け、もう一度押すと解除されるbehaviorである、「&kt(Key Toggle)」をカスタマイズします。

「toggle-mode」で動作をカスタマイズできます。
「on」は、実行されるとキーは押された状態になり、再度実行しても押されたままになります。
「off」は、実行されるとキーは離された状態になり、再度実行しても離されたままになります。
「flip」は、実行されるたびに押されている状態と離されている状態が交互に切り替わります。
これがデフォルトです。
Mod Morph Behavior

「Mod Morph Behavior」は、「&gresc(Mod Morph Behavior)」のように、特定の修飾キーが押されているかどうかによって、異なる動作をする機能を独自に作成できます。
bindings
「bindings」で、キーを単独で押したときのbehavior(NORMAL)と、Shiftキーなどの修飾キーと一緒に押したときのbehavior(MODIFIED)を指定します。
mods
「mods」で、どの修飾キーが押されているときに動作を変えるかを指定します。
keep-mods
「keep-mods」を設定すると、変化後のbehaviorと一緒に修飾キーも送信するかどうかを制御できます。
デフォルトでは送信されません。
Two axis input behavior

「Two axis input behavior」は、マウスなどのポインティングデバイスからのX軸/Y軸およびスクロール入力を生成するために使用されます。
これは、「&mmv(Mouse movement)」や「&msc(Mouse scroll)」 のもとになるbehaviorです。
x-input-code
「x-input-code」は、X軸の入力イベントを生成するための相対イベントコードを指定します。
y-input-code
「y-input-code」は、Y軸の入力イベントを生成するための相対イベントコードを指定します。
trigger-period-ms
「trigger-period-ms」は、現在の速度/方向に基づいて入力イベントを生成する間隔をms単位で指定します。
デフォルトは16msです。
delay-ms
「delay-ms」は、最初の押下時にイベント生成を遅延させる時間をms単位で指定します。
デフォルトは0msです。
time-to-max-speed-ms
「time-to-max-speed-ms」は、最大速度に達するまでの時間をms単位で指定します。
デフォルトは0msです。
acceleration-exponent
「acceleration-exponent」は加速度の指数を設定します。
「0」で均一速度、「1」で均一加速度(デフォルト)、「2」で線形加速度になります。
Mouse key press/release behavior

「Mouse key press/release behavior」は、「&mkp(Mouse Key Press)」のように、最大5つのマウスボタンの押下/解放をエミュレートします。
通常は事前に定義された「&mkp(Mouse Key Press)」を使用するため、Keymap Editor上で個別の設定項目は表示されないことが多いです。
Sensor rotate behavior

「Sensor rotate behavior」は、エンコーダーなどのセンサーが回転した方向(時計回りまたは反時計回り)に応じて異なるbehaviorをトリガーします。
bindings
「bindings」で、時計回りと反時計回りそれぞれに対応する2つのbehaviorを定義します。
tap-ms
「tap-ms」は、定義したbindingsのbehaviorのタップ時間(キーが押されてから離されるまでの時間)(ms単位)を設定します。
デフォルトは5msです。
Sensor rotate behavior(with parameters)

「Sensor rotate behavior(with parameters)」は、各behaviorがパラメーターを必要とする場合に利用します。
「bindings」でパラメーターを受け取る2つのbehaviorを定義し、「LAYERS」でこのbehaviorを使用する際にパラメーターを渡して動作させます。
Soft-off behavior

「Soft-off behavior」は、キーボードを強制的にオフ状態にするbehaviorである、「&soft_off(Soft-Off behavior)」をカスタマイズします。
hold-time-ms
「hold-time-ms」を設定することで、キーを特定の時間(ms単位)押し続けないとオフにならないようにできます。
デフォルトは0msで、タップでもオフになります。
split-peripheral-off-on-press
分割型キーボードの場合、信頼性のために、接続されている側は「hold-time-ms」に関係なく即座にオフになるのがデフォルトです。
この仕様を変更したい場合は、「split-peripheral-off-on-press」フラグを削除しますが、信頼性の問題が発生する可能性があります。
Sticky key behavior

「Sticky key behavior」は、別のキーが押されるまで押された状態を維持するbehaviorである、「&sk(Sticky Key)」をカスタマイズします。
bindings
「bindings」で、どのbehaviorを押されたままにするかを指定します。
release-after-ms
「release-after-ms」は、他のキーが押されない場合に押されたままの状態を維持する時間(ms単位)です。
デフォルトは1000msです。
quick-release
「quick-release」を有効にすると、次のキーが押された瞬間に解除されます。
無効の場合は、次のキーが離されたときに解除されます。
lazy
「lazy」を有効にすると、他のキーが押される直前にキーが押されたままになります。
デフォルトでは押された瞬間にキーが押されたままになります。
ignore-modifiers
「ignore-modifiers」はデフォルトで有効で、押したままにするキーに設定した修飾キーが、押したままにするキーが解放される前に押された場合、修飾キーが結合されます
Tap Dance Behavior

「Tap Dance Behavior」は、キーが連続して押された回数に応じて異なるbehaviorを呼び出す機能です。
使用するには、キーマップの「behaviors」セクションで、タップダンスごとに新しいbehaviorを定義する必要があります。
「LAYERS」では設定できません。

これは、何回タップでも設定できるため、自由度が非常に高いためだと思います。
他のキーが押されるか、設定した時間が経過すると、そこまでのタップ回数に応じたbehaviorが実行されます。
bindings
「bindings」には、タップ回数ごとに実行したいbehaviorを配列で指定します。

behaviorには「<(Layer/Tap)」や「&mt(Mod/Tap)」なども割り当てられます。
そのため、例えば1回タップと2回タップ、さらに2回目のタップ時にホールドしたときにそれぞれ別のbehaviorを割り当てることもできます。
tapping-term-ms
「tapping-term-ms」は、最後のタップから動作が確定するまでの最大時間(ms単位)です。
デフォルトは200msです。
Toggle Layer

「Toggle Layer」は、「&tog(Toggle Layer)」をカスタマイズします。

「toggle-mode」でbehaviorをカスタマイズできます。
「on」は、実行されるとレイヤーが常に有効になります。
「off」は、実行されるとレイヤーが常に無効になります。
「flip」は、実行されるたびにレイヤーの有効/無効が切り替わります。これがデフォルトの動作です。
Reconfigurations

「Reconfigurations」は、事前に定義されたbehaviorのデフォルトのパラメーターを上書きする機能です。
例えば、すべての「&mt(Mod/Tap)」のデフォルトの「tapping-term-ms」を変更したい場合などに使用します。

パラメーターは「Custom Behavior」で紹介したものを変更できます。
まとめ
今回は、Keymap Editorの使い方を徹底解説しました。
Keymap Editorはかなり多機能で、さまざまなカスタマイズができることがわかったのではないかと思います。
一方、機能が多すぎて、使いこなせないと感じてしまった方も多いかと思います。
とはいえ、すべての機能を使う必要はありません。
まずは「LAYERS」タブで自分の使いやすいbehaviorを割り当て、使ってみるのが良いと思います。
もしそれで満足できなければ、その他のカスタマイズを使ってみるのが良いのではないでしょうか。
何度もこの記事を参考にしていただけるとうれしいです。
読者の皆様が実践しているカスタマイズなどがあれば、YouTube動画やXでコメントしてくださると非常に参考になります。