|
|
|
@ -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` の分析 |
|
|
|
|
|
|
|
|
|