ErgoDoxEZ起動魔法

一般的なキーボードであれば、何の気に無しに普通に使うことだろう。
まるで、目の前に和食が出されれば、普通に食事するかのごとく・・・。
しかし、ErgoDoxEZは、見た目からして奇っ怪だ。
なにせ、左右分離しているのだから見た目だけでも目を引く存在かと思う。
普通というのが何か分からなくなることだろう。
そして、今宵、見た目だけでなく魔法を掛けてご覧に入れましょう。
さぁお立ち会い。
これを見ているあなたに魔法が掛かればお慰め。

# [Bootmagic](https://github.com/qmk/qmk_firmware/blob/ba05f9667b9e33c49249fd456f11e652cbde574b/docs/feature_bootmagic.md)
何が魔法なのかよく分からないため、少し調べてみた。
Bootとは、パソコンが起動することを表すようだ。
Magicとは、魔法とか何とか・・・。

で、QMKで言う**Bootmagic**とは、キーボードのキー役割をキー押下のみで変更してしまうことらしい。
要は、いままでのキー内容の変更には、〜.hexファイルを読み込み直す必要があった。それをせずに変更してしまう。

ただ、キー押下で変化するわけではなく、きっかけが必要になる(キー押下でも出来る)。
それがBootmagicに特化したキーともう一つのキーの組合せで動くようだ。

##接頭辞
先日投稿の`Mod`は、キーコードの接頭辞として`mod_`が付いたキーコードだった。
通常は、`KC_A`や`KC_BSPACE`などだが、MODは`MOD_LCTL`や`MOD_RGUI`など。
今回もご多聞に漏れず専用の接頭辞が存在する。

それが、`MAGIC_`だ。

そのまんまという・・・何のひねりもないため、分かりやすくていい。

`rules.mk`では、まだ必要の無い情報かな。
下記の[キー押下によるキー入れ替え](#キー押下によるキー入れ替え)のときに、接頭辞を意識する必要が出てくる。

##下準備
通常は有効らしいが、キーボードによっては無効になっているそうだ。
我らがErgoDoxEZは、どうやらそれらしい記述が見当たらないため、勇者によって魔法が封印されているようだ。
勇者のくせに生意気だ。
私が復活の呪文を唱えてくれるわ。

```ErgoDoxEZ:クローンディレクトリ¥github_repository¥qmk_firmware¥keyboards¥ergodox_ez¥keymaps¥chesscommands¥rules.mk
BOOTMAGIC_ENABLE = full
```

過去の投稿でも同じように`rules.mk`を変更するのだが、有効になったように感じない。
もしかしたら私の中二病が原因で、今回の病症は発病してくれないのかも知れない。
この病を治すのが先か、解決するのが先か・・・。

ちなみに、引数に渡すのは`yes`ではなく、`full`なのでお間違えのないように。
分かりましたか？
Yes?
 or
No?
答えは、`full`.
yheeeee.



###驚きというか・・・驚き
大した作業ではないのだが、コンパイルし直しただけなのに、容量に変化があった。

![bigHex.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/52d607ab-ad39-49a0-05b3-687bc8aace8e.jpeg)

今回の追加をしたときの再コンパイルにて、`Your file is too big!`のメッセージが出てきたときは驚いた。
rules.mkファイルの有無で容量が変化するため、何かしらの役割を担っていると思われる。
まさか、こんなところでオカモト スーパービックボーイが出現するとは・・・。
LEDの点灯箇所をコメントアウトして対処した。

##実際の使用例
何もしなければ、SpaceキーがBootmagicキーに設定されており、この"Spaceキー＋きっかけとなるHotKey"の組合せで魔法が発動する。
※変更方法は、下記の[rules.mk依存のHotKeys変更](#rulesmk依存のhotkeys変更 "デフォルトのホットキー変更")で対応可能

例）`Space + 右Alt`　←右GUIに切り替わった。
など。

そして、やり方は、以下の通り.

1. ケーブルを抜く(ErgoDoxEZキーボードが何もコンピュータなどに接続されていない状態にする。)
1. 任意のキー(Space + 右Alt)を押し続ける。
1. ケーブルを接続する。
1. Bootmagic(今回はSpace)キーを離す。
1. 今回の例で言う`右Alt`キーを離す。
1. キーが変わっていることを確認する(今回の例で言えば、右Altが右GUIに変わる)。

~~注意すべき事は、旨く認識せず、入れ替わらないことがあること。~~
~~しかし、何度か挑戦すれば入れ替わる。~~
キーを離す順番を気をつけなければならない。

~~しかし、私の環境では、当然のように出来なかったが、一応~~ 以下HotKeyをまとめる。

###きっかけのキー(HotKeys)
デフォルトのBootmagicキー(Space)との組合せで発動するホットキー一覧

| 番号 | Hotkey | Description | [原本](https://github.com/qmk/qmk_firmware/blob/ce3ccd3f4a5e8ff8ac391887f3357dd8e985a452/docs/feature_bootmagic.md#hotkeys "githubにあるqmkのホットキー一覧")  | 備考  |
|:-:|:-:|--:|--:|--:|
| 一  | Escape  | EEPROMのBootmagic設定を無視する  | Ignore Bootmagic configuration in EEPROM  | 入れ替えることが出来なくなる？  |
| 二  | B  | ブートローダに入る(どういう意味？)  | Enter the bootloader  | 有効にする？  |
| 三  | D  | デバッグモードに入る(シリアル用)  | Toggle debugging over serial  | 試していない.  |
| 四  | X  | デバッグモードに入る(キーマトリクス用)  | Toggle key matrix debugging  | 試していない.  |
| 五  | K  | デバッグモードに入る(キーボード用)  | Toggle keyboard debugging  | 試していない.  |
| 六  | M  | デバッグモードに入る(マウス用)  | Toggle mouse debugging  | 試していない.  |
| 七  | Backspace  | EEPROMのクリア  | Clear the EEPROM  | Bootmagicが使えるようになる？  |
| 八  | Caps Lock  | Caps Lockと左コントロールキーの入れ替え  | Toggle treating Caps Lock as Left Control  |   |
| 九  | Left Control  | 左コントロールキーとCaps Lockの入れ替え  | Toggle swapping Caps Lock and Left Control  |   |
| 十  | Left Alt  | 左Altと左GUIの入れ替え  | Toggle swapping Left Alt and Left GUI  |   |
| 十一 | Right Alt  | 右Altと右GUIの入れ替え  | Toggle swapping Right Alt and Right GUI  |   |
| 十二 | Left GUI  | GUIキーの有効切り替え  | Toggle the GUI keys (useful when gaming)  |   |
| 十三 | `  | `とEscキーの入れ替え  | Toggle swapping ` and Escape  |   |
| 十四 | \  | \とBackSpaceキーの入れ替え  | Toggle swapping \ and Backspace  |   |
| 十五 | N  | Nキーロールオーバー（NKRO）を切り替える  | Toggle N-Key Rollover (NKRO)  | 変わっていないように思うのだが・・・。  |
| 十六 | 0  | レイヤー0をデフォルトにする  | Make layer 0 the default layer  |   |
| 十七 | 1  | レイヤー1をデフォルトにする  | Make layer 1 the default layer  |   |
| 十八 | 2  | レイヤー2をデフォルトにする  | Make layer 2 the default layer  |   |
| 十九 | 3  | レイヤー3をデフォルトにする  | Make layer 3 the default layer  |   |
| 二十 | 4  | レイヤー4をデフォルトにする  | Make layer 4 the default layer  |   |
| 二十一 | 5  | レイヤー5をデフォルトにする  | Make layer 5 the default layer  |   |
| 二十二 | 6  | レイヤー6をデフォルトにする  | Make layer 6 the default layer  |   |
| 二十三 | 7  | レイヤー7をデフォルトにする  | Make layer 7 the default layer  |   |

####発動のコツ
上記4で、任意のキーを離すときに、Bootmagic(Space)キーを先に離してからホットキーを離すこと(逆の場合は入れ替わらない)。

####注意点　その1
キー単体に、ホットキーそのものが割り当てられていること。
どういうことかと言えば、`LT(6, KC_RALT)`の場合は、押し続けても右Altキーではないため、発動しない。

####注意点　その2
一度入れ替えてしまえば、hexファイルを読み込み直しても戻らない。
そして、一度入れ替えてしまえば、ケーブルの抜き差しでは戻らない。再度同じ方法で入れ替える必要がある。

####注意点　その3
EscapeキーでEEPROMのBootmagic設定を無視した場合、入れ替えを戻せなくなる。
そのため、Backspaceキーにて、EEPROMのクリアさせる必要がある。
さらに、Bキー(Enter the bootloader)で、ブートマジックを有効にする。
その上で、再度入れ替える必要がある。

####注意点　その4
注意点その3とかぶるのだが、EEPROMをクリアしたからと言って、設定が戻るわけではない(設定は消えない)ようだ。
注意されたし。

####その他　その1
きっとレイヤーのデフォルトを変更した場合、ケーブルの抜き差しでは戻らないと思う。
しかし、私の環境では、ケーブルの抜き差しで、レイヤー0になる設定を仕込んでいるため、確認できなかった。
~~そして、その設定を変えてまで試そうとは思っていない。~~

```ErgoDoxEZ:keymap.c
void matrix_init_user(void) {
　　　・
　　　・
　　　・
	// レイヤーを0に戻す.
	eeconfig_update_default_layer(0);
	default_layer_set(0);
};
```

~~レイヤー変更で背面のLEDが光るのだが、今回のレイヤー変更で、当然のように光った。~~
~~しかし、ケーブルの抜き差しでデフォルトレイヤーを0にしているため、光っているのにも関わらず、レイヤーは0になっているという、かなり混乱する現象に遭遇した。~~
~~背面LEDがなければ、気づかなかったぞ。~~

設定を変えずに、試したら変更出来た。
やはり、Spaceキーを離してからホットキーを離す必要があるようだ。

上記の設定が生きているため、ケーブルの抜き差しでレイヤーが0に戻る。
そして、背面のLEDは赤で光ったまま変わらず・・・どうやって戻せば良い!?
数日前のLED設定がEEPROMに残っていたが、今回EEPROM内容を削除したことで、何かが復活したのかも知れない。

#### その他　その2
上記に出てきた[Nキーロールオーバー](http://d.hatena.ne.jp/minekoa/20121222/1356158971 "みねこあ")って何？
同時押しの話じゃないの!?
最初から出来ると思うのだが・・・。

追加設定をしなければ使えるようにならないようだ。
私の環境では、**rules.mk**に、`NKRO_ENABLE = yes`を記載しておかなければ、設定が反映されなかった(ホットキーやトグルキー込み)。
QMKの設定では、このあたりの説明はなかったのだが・・・。

何より、私のこの記事に、[shela](https://qiita.com/shela)さんがコメントを付けてくれているため、他の項目も検証し直す必要が出てきた。
より、正確な情報を提供できることになる。やったね。

##### [Nキーロールオーバーの弊害](https://qiita.com/chesscommands/items/b3edcf59956921eb6c62#%E5%8E%9F%E5%9B%A0)
基本的に、複数のキーを同時押下で、すべてのキーを認識する設定はあって損はないと思っていた。
普通の文書入力をするときには不要な(使わない)設定だと思われるが、無効に切り替える必要がないと思っていた。

私の見識不足なのだろう。
この機能を有効にしていた場合、まともな動作をしない環境にさらされた。
無線接続するときに有効な場合、挙動がおかしくなる。
そのため、そのときは設定を切らなければならないどころか、無効化(`NKRO_ENABLE = no`)しなければならなかった。
ぬぅ。

Planckでは、この設定が`yes`でない場合、有効化させることができなかった。

#### その他　その3
Nキーロールオーバーの話を立て続けにして恐縮だが、まだ言いたいことがある。

私のように、一つのやり方でだめな人がいるだろう。
その場合は、他のやり方を試す必要がある。

[NKRO Doesn't work](https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work)


###下準備の続きから外れる。
今までは、ケーブルの抜き差しで対応していた。
そして、`rules.mk`ファイルの作成のみで対応出来ていた。
しかし、ケーブルの抜き差しをするのは煩わしい。
直ぐに反映して欲しいのに、ケーブルをいじるのは面倒で仕方ない。

ということで、今まで通りキー押下で対応することにする。

##キー押下によるキー入れ替え
今まで通り、普通にキー押下で、コントロールキーやキャップスロックキーが入れ替われば、ゲームをするときに便利なのではないだろうか。
もしくは、Windowsキーを無効に切り替えたり・・・。

###キーコード
キーボードのキーに設定するだけで使えるようになる。
rules.mkファイルは不要だ(本当か？)。

| No | Keycode | Aliases | Description | [原文](https://github.com/qmk/qmk_firmware/blob/ce3ccd3f4a5e8ff8ac391887f3357dd8e985a452/docs/feature_bootmagic.md#keycodes "github上のQMK") | 備考 |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  1 | MAGIC_CAPSLOCK_TO_CONTROL  |   | キャップスロックキーをコントロールに入れ替え  | Treat Caps Lock as Left Control  |   |
|  2 | MAGIC_UNCAPSLOCK_TO_CONTROL  |   | キャップスロックキーに戻す  | Stop treating Caps Lock as Left Control  | No1と対  |
|  3 | MAGIC_HOST_NKRO  |   | Nキーロールオーバー発動  | Force N-Key Rollover (NKRO) on  |   |
|  4 | MAGIC_UNHOST_NKRO  |   | Nキーロールオーバー幕切れ  | Force NKRO off  | No3と対 |
|  5 | [MAGIC_TOGGLE_NKRO](#macosからwindowsosに乗り換え時の挙動変化)  |   | Nキーロールオーバートグル  | Turn NKRO on or off  |   |
|  6 | MAGIC_NO_GUI  |   | GUIキー無効？  | Disable the GUI keys (useful when gaming)  | 再現できず  |
|  7 | MAGIC_UNNO_GUI  |   | GUIキー有効  | Enable the GUI keys  |   |
|  8 | MAGIC_SWAP_ALT_GUI  | AG_SWAP  | AltキーをGUIキーを入れ替え  | Swap Alt and GUI on both sides (for macOS)  | WinOSで動いた  |
|  9 | MAGIC_UNSWAP_ALT_GUI  | AG_NORM  | 入れ替えを戻す  | Unswap Left Alt and Left GUI  | No8と対  |
| 10 | MAGIC_SWAP_BACKSLASH_BACKSPACE  |   | \とバックスペースキーを入れ替える  | Swap \ and Backspace  |   |
| 11 | MAGIC_UNSWAP_BACKSLASH_BACKSPACE  |   | 入れ替えを戻す  | Unswap \ and Backspace  | No10と対  |
| 12 | MAGIC_SWAP_CONTROL_CAPSLOCK  |   | コントロールとキャップスキーを入れ替える  | Swap Left Control and Caps Lock  | 置き換えではない  |
| 13 | MAGIC_UNSWAP_CONTROL_CAPSLOCK  |   | 入れ替えを戻す  | Unswap Left Control and Caps Lock  | No12と対  |
| 14 | MAGIC_SWAP_GRAVE_ESC  |   | `とEscapeを入れ替える  | Swap ` and Escape  |   |
| 15 | MAGIC_UNSWAP_GRAVE_ESC  |   | 入れ替えを戻す  | Unswap ` and Escape  | No14と対  |
| 16 | MAGIC_SWAP_LALT_LGUI  |   | AltとGUIを入れ替える  | Swap Left Alt and Left GUI  | 左側のみ  |
| 17 | MAGIC_UNSWAP_LALT_LGUI  |   | 入れ替えを戻す  | Unswap Left Alt and Left GUI  | No16と対  |
| 18 | MAGIC_SWAP_RALT_RGUI  |   | AltとGUIを入れ替える  | Swap Right Alt and Right GUI  | 右側のみ  |
| 19 | MAGIC_UNSWAP_RALT_RGUI  |   | 入れ替えを戻す  | Unswap Right Alt and Right GUI  | No18と対  |

・近日公開キーコード
`MAGIC_SWAP_LCTL_LGUI`


####注意(置き換え・入れ替え)
Caps LockキーをControlキーに置き換えるだけで、入れ替えるわけではない。
英語表記通り**To**となっているのがそうなのだろう。

その一方で、
ALTキーとGUIキーは入れ替えることが出来る。
これは英語表記として**SWAP**とあるからだろう。

他のも同じ.


#### MacOSからWindowsOSに乗り換え時の挙動変化
WindowsOSでは、DelキーやFunctionキーの挙動がMacOSと異なる。
同じ挙動にするには、`MAGIC_TOGGLE_NKRO`を使い、[NKROを無効化](https://www.reddit.com/r/olkb/comments/bjar6d/bios_access_keys/)する必要がある。



####その他
上記でNキーロールオーバの設定に意味があるとは思えない発言をしてしまったが、検証方法に問題があったようで、今回はそれを実感できた。

6キーのみ同時押しができたが、設定したことで、私の確認では10キー同時押しが出来るようになった。


##rules.mk依存のHotKeys変更
いつものように、`config.h`ヘッダで書き換えることが出来る。

例)スペースキーをQキーに変更

```c:クローンディレクトリ\github_repository20180604\qmk_firmware\keyboards\ergodox_ez\config.h
#define BOOTMAGIC_KEY_SALT KC_Q
```

本来であれば、スペースキーがBootmagicキーなのだが、今回はQキーに変更してみた。
上記通り、ケーブルを抜いた状態でQキーを押した状態で、他のホットキーを押しながらケーブルを挿すことで、Bootmagicが発動するようになる。

[下記の表](https://github.com/qmk/qmk_firmware/blob/ce3ccd3f4a5e8ff8ac391887f3357dd8e985a452/docs/feature_bootmagic.md#configuration "ギットハブのコンフィグレーション")は、[きっかけのキー(HotKeys)表](#きっかけのキーhotkeys "https://github.com/qmk/qmk_firmware/blob/ce3ccd3f4a5e8ff8ac391887f3357dd8e985a452/docs/feature_bootmagic.md#hotkeys")と同じため、説明は省略する。

| Define | Default | Description | 備考 |
|:-:|:-:|:-:|:-:|
| BOOTMAGIC_KEY_SALT  | KC_SPACE  | The Bootmagic key  | 上記の例で示したとおり  |
| BOOTMAGIC_KEY_SKIP  | KC_ESC  |   | 同上表の一  |
| BOOTMAGIC_KEY_BOOTLOADER  | KC_B  |   | 同上表の二  |
| BOOTMAGIC_KEY_DEBUG_ENABLE  | KC_D  |   | 同上表の三  |
| BOOTMAGIC_KEY_DEBUG_MATRIX  | KC_X  |   | 同上表の四  |
| BOOTMAGIC_KEY_DEBUG_KEYBOARD  | KC_K  |   | 同上表の五  |
| BOOTMAGIC_KEY_DEBUG_MOUSE  | KC_M  |   | 同上表の六  |
| BOOTMAGIC_KEY_EEPROM_CLEAR  | KC_BSPACE  |   | 同上表の七  |
| BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL  | KC_CAPSLOCK  |   | 同上表の八  |
| BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK  | KC_LCTRL  |   | 同上表の九  |
| BOOTMAGIC_KEY_SWAP_LALT_LGUI  | KC_LALT  |   | 同上表の十﻿﻿  |
| BOOTMAGIC_KEY_SWAP_RALT_RGUI  | KC_RALT  |   | 同上表の十一  |
| BOOTMAGIC_KEY_NO_GUI  | KC_LGUI  |   | 同上表の十二  |
| BOOTMAGIC_KEY_SWAP_GRAVE_ESC  | KC_GRAVE  |   | 同上表の十三  |
| BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE  | KC_BSLASH  |   | 同上表の十四  |
| BOOTMAGIC_HOST_NKRO  | KC_N  |   | 同上表の十五  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_0  | KC_0  |   | 同上表の十六  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_1  | KC_1  |   | 同上表の十七  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_2  | KC_2  |   | 同上表の十八  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_3  | KC_3  |   | 同上表の十九  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_4  | KC_4  |   | 同上表の二十  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_5  | KC_5  |   | 同上表の二十一  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_6  | KC_6  |   | 同上表の二十二  |
| BOOTMAGIC_KEY_DEFAULT_LAYER_7  | KC_7  |   | 同上表の二十三  |

#魔法改めCommandの能力
現在は、[Command機能](https://beta.docs.qmk.fm/features/feature_command "ベータ版のqmkコマンド説明")が存在するが、その名前になるまでは、Magicと呼ばれていたそうだ。
しかし、Bootmagicと重複があり、何より今回のCommandよりBootmagicを優先して使った方が良いとのこと。

##利用方法
いつも通りrules.mkファイルに記述する。

```c:rules.mk
COMMAND_ENABLE = yes
```

キーボード操作では、左右のシフトキーを押しながらきっかけとなるキーを押す必要がある。

具体的には、
`KC_LSHIFT + KC_RSHIFT + Vキー`
になる。
左右のシフトキーがコマンドキーということかな(上記で言うブートマジックキーのこと)。

もちろん左右のシフトキーを任意のキーに変更可能なはず・・・。
はず・・・。
Bootmagic(Space)キーを変更出来たように、、、ね...

### 無知の知
知らないと言うことは愚かな言動をとるようだ。

左右のShiftキーを押したことで、キーボードの挙動が変わったことにより、混乱し、戸惑い、解決方法を見つけられず、周りに助けを求める。
インターネットがある現代は便利になったと言うべきか、勉学を怠るようになったと思うべきか・・・。

[QMK + Quefrequency: Holding down both Shift keys and I can't get certain keys.](https://www.reddit.com/r/olkb/comments/bd9uus/qmk_quefrequency_holding_down_both_shift_keys_and/)

何にせよ、便利だからこそ備わっている機能だと思う。
今後有効活用する・・・はず(全く手を付けていないが)。

##コマンドキー変更できず...
できるはずなのだが、できなかった。
C言語の知識が無いからだろうか・・・。

```ErgoDoxEZ:config.h
#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
```

このシフトキー部分を任意のキーに変更するだけだと思ったのだが、そもそも記述方法が違うようで、コンパイルエラーが出てしまい、変更以前の問題にぶち当たってしまった。
そして、解決できていない。

##実際の変更
上記で例えたように、実際に動かした。

1. ErgoDoxEZキーボードからケーブルを外す。
1. 左右のシフトキーを押し続ける。
1. (今回は)数字の2キーもあわせて押し続ける。
1. ケーブルを挿す。
1. 左右のシフトキーを離す。
1. 数字の2キー押下も離す。

そして、テキストエディタでキーボードを操作したが、普通のレイヤー0の文字が入力されてしまった。
残念だ。

##rules.mk依存のHotKeys変更
通常のコマンドを変更することは出来た。
注意すべきところは、キーコードではなく、キーそのものを記述すること。
例えば、`KC_F`ではなく、`F`を使う。

```ErgoDoxEZ:config.h
#define MAGIC_KEY_CONSOLE F
```

標準では**C**キーなのだが、それをFキーに変更してみた。
取りあえずコンパイルは通った。
動かし方は分からないまま。

一応説明ぐらいは以下に付けておく(ホームページの並び順から変えている)。

フォーマット
　　タイトル：define値
　　デフォルト値
　　説明

###MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
デフォルト値：true

> Set default layer with the Function row

ファンクション行でデフォルトレイヤーを設定する。
F1でレイヤー1に移行するって事？
F10はレイヤー10ならば、レイヤー0への移動は？

###MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
デフォルト値：true

> Set default layer with the number keys

これも乱暴な設定に思える。
数字キーでデフォルトレイヤーを設定する。
1でレイヤー1に移行するって事？

###MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
デフォルト値：false

> Set default layer with MAGIC_KEY_LAYER0..9

以下の設定値で、デフォルトレイヤーを変更すると言うことなのだろう。
しかし、デフォルトでは無効化されているのだが・・・。
以下のデフォルト値を変更しても無駄になるのか!?

###MAGIC_KEY_LAYER0
デフォルト値：0

> Make layer 0 the default layer

レイヤー0をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER1
デフォルト値：1

> Make layer 1 the default layer

レイヤー1をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER2
デフォルト値：2

> Make layer 2 the default layer

レイヤー2をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER3
デフォルト値：3

> Make layer 3 the default layer

レイヤー3をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER4
デフォルト値：4

> Make layer 4 the default layer

レイヤー4をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER5
デフォルト値：5

> Make layer 5 the default layer

レイヤー5をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER6
デフォルト値：6

> Make layer 6 the default layer

レイヤー6をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER7
デフォルト値：7

> Make layer 7 the default layer

レイヤー7をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER8
デフォルト値：8

> Make layer 8 the default layer

レイヤー8をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER9
デフォルト値：9

> Make layer 9 the default layer

レイヤー9をデフォルトレイヤーにする。

###MAGIC_KEY_LAYER0_ALT1
デフォルト値：ESC

> Make layer 0 the default layer (alternate)

レイヤー0をデフォルトレイヤーにする(代替)。
Altキーは全く無関係なのか!?

###MAGIC_KEY_LAYER0_ALT2
デフォルト値：GRAVE

> Make layer 0 the default layer (alternate)

レイヤー0をデフォルトレイヤーにする(代替)。
なぜに同じ内容が2つあるのか。
本当にAltは関係ないのか!?

###MAGIC_KEY_BOOTLOADER
デフォルト値：PAUSE

> Enter the bootloader

ブートローダを有効にする。
ポーズがデフォルトなので、一時停止すると思ったが、ポーズキーのことか。

###MAGIC_KEY_LOCK
デフォルト値：CAPS

> Lock the keyboard so nothing can be typed

キーボードの操作をロックする。
解除は？

###MAGIC_KEY_EEPROM
デフォルト値：E

> Clear the EEPROM

EEPROMのクリア

###MAGIC_KEY_NKRO
デフォルト値：N

> Toggle N-Key Rollover (NKRO)

Nキーロールオーバー（NKRO）を切り替える。

###MAGIC_KEY_SLEEP_LED
デフォルト値：Z

> Toggle LED when computer is sleeping

コンピュータがスリープ状態にあるときにLEDを切り替える。
スリープで光らせるようにするのか、無灯なのか!?

###MAGIC_KEY_DEBUG
デフォルト値：D

> Toggle debugging over serial

シリアル経由のデバッグを切り替え。

###MAGIC_KEY_DEBUG_MATRIX
デフォルト値：X

> Toggle key matrix debugging

キーマトリクスデバッグの切り替え。

###MAGIC_KEY_DEBUG_KBD
デフォルト値：K

> Toggle keyboard debugging

キーボードのデバッグを切り替え。

###MAGIC_KEY_DEBUG_MOUSE
デフォルト値：M

> Toggle mouse debugging

マウスのデバッグを切り替え。

###MAGIC_KEY_CONSOLE
デフォルト値：C

> Enable the Command console

コマンドコンソールを有効にする。

###MAGIC_KEY_VERSION
デフォルト値：V

> Print the running QMK version to the console

実行中のQMKバージョンをコンソールに表示する。

###MAGIC_KEY_STATUS
デフォルト値：S

> Print the current keyboard status to the console

現在のキーボードの状態をコンソールに表示する。
どういう意味？

###MAGIC_KEY_HELP1
デフォルト値：H

> Print Command help to the console

コマンドをコンソールに表示する。

###MAGIC_KEY_HELP2
デフォルト値：SLASH

> Print Command help to the console (alternate)

コマンドのヘルプをコンソールに表示する（代替）。

#感想
要は、HHKBで言えば、DIPスイッチのことだよね。
ゲーミングキーボードの分野で言えば、プログラマブルキーボードにあたるような仕組みだろうか。

面白い試みだが、どうせ持ち主しか使わないことを考えれば、不要な機能に思える。
どうせキーボードに.hexファイルを読み込ませるのが使命なのだから。

やるのであれば、もう少し細かくできるようにして欲しかった。
例えば、Windowsキーとコントロールキーの入れ替えなど。
これが出来れば、数日前に苦労してレイヤーの調査や.hexファイルの読み込み直しなどをしなくてもWindowsOSとMacOSで普通に使えると思うのだが・・・。

以上だ。