はじめに
ErgoDoxというかQMKのキーマップについて、です。READMEとかソースコードとかみてまわるのがつらいので対応表にしました。全てではなく、特殊なものだけ抽出しています。
(簡単なものはREADME見ればすぐに理解できて覚えられると思います。)
キーマップの変更方法はErgoDox EZのキーマップを変更する - Qiitaを参照してください
キーマップ
- 大文字の場合はそのままの表記(そのままをキーマップに指定する)
-
mod
は何らかのmodifier(ctlやshiftのキー)を指す -
kc
は何らかのkey(aや;等のキー)を指す
機能 | キーマップ | 詳細 |
---|---|---|
Reset | RESET |
リセット(ピンで指すのと同じ) |
No action | KC_NO |
何もしない |
Transparent |
KC_TRNS KC_TRANSPARENT
|
下層レイヤーのキーマップを引き継ぐ |
Shift |
S(kc) LSFT(kc)
|
Shift + kc |
Function |
F(n) FUNC(n) KC_FNn
|
fn_actionsに登録された機能を呼びだす(1.5 Fn keyを参照) |
Modifier Tap |
MT(mod, kc) mod_T(kc)
|
押しっぱなしでmod 、タップで_kc_ |
C_S | C_S_T(kc) |
押しっぱなしでCtrl + Shift、タップで_kc_ |
Meh | MEH_T(kc) |
押しっぱなしでCtrl + Alt + Shift、タップで_kc_ |
Cag | LCAG_T(kc) |
押しっぱなしでCtrl + Alt + Gui、タップで_kc_ |
ALL | ALL_T(kc) |
押しっぱなしでCtrl + Alt + Shift + Gui、タップで_kc_ |
Tap layer | LT(layer, kc) |
押しっぱなしでレイヤーを一時的に切り替え、タップで_kc_ |
Switch layer |
MO(layer) LT(layer, KC_TRNS)
|
一時的にレイヤーを切り替え。キーを離せば元に戻る。(2つめはKC_NOでもほぼ同じ意味) |
Toggle layer |
TG(layer) |
レイヤーを切り替え。キーを押すたびにレイヤーを行き来する。切り替えた先のレイヤーにも同じ指定が必要(KC_TRNS で引き継げばOK)。 |
Temporary default layer | DF(layer) |
デフォルトレイヤーを切り替える。電源切れたら元に戻る。 |
補足事項
Guiキーについて
- MacならCommandに相当するもの
mod_T(kc)
とmod(kc)
は意味が異なるので注意
-
SFT_T(kc)
とLSFT(kc)
の例でいうと-
LSFT(KC_J)
→ Shift + J(大文字) -
SFT_T(KC_J)
→ タップならj
(小文字), 長押しならShift -
MT(KC_LSFT, KC_J)
→ タップならj
(小文字), 長押しならShift
-
マクロの独自定義
-
S(kc)
やF(kc)
というのはエイリアス- 登録されていないものでも独自に定義が可能
- Modifierの組み合わせは論理和を使えば良い
- 組み合わせるビット定義はqmk_firmware/keymap.h at master · jackhumbert/qmk_firmwareを参照
エイリアスの定義
// LALTのエイリアス
#define A(kc) LALT(kc)
独自Modifierの定義
// `Gui + Shift + kc` (= `kc | 0x5000`でも可)
// quantum/keymap_common.hの以下記述を参考に設定している
// #define LGUI(kc) kc | 0x0800
// #define LSFT(kc) kc | 0x0200
#define G_S(kc) kc | 0x0800 | 0x0200
こうすれば、LGUI(LSFT(KC_4))
と入れ子にしていたのがG_S(KC_4)
のように簡潔になる