|
@@ -1,8 +1,8 @@
|
|
|
# キーマップの概要
|
|
|
|
|
|
<!---
|
|
|
- original document: 0.8.62:docs/keymap.md
|
|
|
- git diff 0.8.62 HEAD -- docs/keymap.md | cat
|
|
|
+ original document: 0.9.44:docs/keymap.md
|
|
|
+ git diff 0.9.44 HEAD -- docs/keymap.md | cat
|
|
|
-->
|
|
|
|
|
|
QMK のキーマップは C のソースファイルの中で定義されます。そのデータ構造は配列の配列です。外側はレイヤーを要素とする配列で、レイヤーはキーを要素とする配列。ほとんどのキーボードは `LAYOUT()` マクロを定義して、この配列の配列を作成しやすくしています。
|
|
@@ -76,10 +76,22 @@ TMK の歴史的経緯から、キーマップに保存されたアクション
|
|
|
|
|
|
|
|
|
### レイヤーの優先順位と透過性
|
|
|
-***上位のレイヤーはレイヤーのスタックでより高い優先順位を持つ***ことに注意してください。つまり、ファームウェアはキーコードを最上位から最下位まで検索します。レイヤーで **`KC_TRNS`**(透過)以外のキーコードを見つけると、検索を中止し、下位レイヤーは参照されません。
|
|
|
+***上位のレイヤーはレイヤーのスタックでより高い優先順位を持つ***ことに注意してください。ファームウェアは最上位のアクティブレイヤーから下に向かってキーコードを検索します。ファームウェアがアクティブなレイヤーで `KC_TRNS` (透過)以外のキーコードを見つけると、検索を停止し、下位レイヤーは参照されません。
|
|
|
|
|
|
-オーバーレイレイヤーに `KC_TRANS` を配置して、レイアウトの一部だけを変更して下位レイヤーまたは基本レイヤーにフォールバックすることができます。
|
|
|
-`KC_TRANS` (`KC_TRNS` と `_______` はエイリアス) のキーには独自のキーコードがなく、キーコードの有効な下位レイヤーを参照します。
|
|
|
+ ____________
|
|
|
+ / / <--- Higher layer
|
|
|
+ / KC_TRNS //
|
|
|
+ /___________// <--- Lower layer (KC_A)
|
|
|
+ /___________/
|
|
|
+
|
|
|
+ 上記シナリオでは、上位レイヤーに非透過のキーが定義されているとそのキーが使われますが、`KC_TRNS` (または同等のキーコード)が定義されている場合は常に下位レベルのキーコード(`KC_A`)が使われます。
|
|
|
+
|
|
|
+**メモ:** 特定のレイヤーの透過性を示す有効な方法:
|
|
|
+* `KC_TRANSPARENT`
|
|
|
+* `KC_TRNS` (別名)
|
|
|
+* `_______` (別名)
|
|
|
+
|
|
|
+これらのキーコードは、処理する非透過のキーコードを探すときに、下位レイヤーを検索させることができます。
|
|
|
|
|
|
## `keymap.c` の分析
|
|
|
|