はじめに
qmk firmwareのドキュメントのAdvanced Keycodesで紹介されている設定周りのメモです。
自分で使用しているものだけ記載しています。気が向いたら他も追加していきます。
※執筆時のqmk firmwareのバージョンは0.6.172です。
前提
Tap=短押し
Hold=長押し
SFT_T(KC_A)=Tap時にa、Hold時にShift。Mod Tap keyと呼ばれる。
LT(layer1, KC_A)=Tap時にa、Hold時にlayer1に切替
SFT_T
やLT
などについてはErgoDoxのキーマップをいじる時に見るチートシートがわかりやすいです。
TAPPING_TERM
TapからHoldに切り替わるまでの押下時間(ms)。
デフォルト値は200。
RETRO_TAPPING
TAPPING_TERMを経過しても、他のキーを押していなければTapとして扱われるようになる。
TAPPING_TERMが短くてTapのつもりがHold扱いになってしまう場合の対策になるが、好み次第。
https://docs.qmk.fm/#/feature_advanced_keycodes?id=retro-tapping
SFT_T(KC_A) Down
# TAPPING_TERM経過...
SFT_T(KC_A) Up
=> 何も入力されない # RETRO_TAPPING無効
=> aが入力される # RETRO_TAPPING有効
PERMISSIVE_HOLD
TAPPING_TERM経過前に他のキーを押すと、Holdとして扱われるようになる。
キーの同時押しが速いひとにおすすめ。
https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold
SFT_T(KC_A) Down
# TAPPING_TERM経過前に
KC_X Down
KC_X Up
SFT_T(KC_A) Up
=> axが入力される # PERMISSIVE_HOLD無効
=> Xが入力される # PERMISSIVE_HOLD有効
TAPPING_TERMを500以上に設定していると、自動的に有効になる。
TAPPING_FORCE_HOLD
Mod Tap keyをTap後にすぐにHoldしたときに、Holdとして扱われるようになる。
https://docs.qmk.fm/#/feature_advanced_keycodes?id=tapping-force-hold
SFT_T(KC_A) Down
SFT_T(KC_A) Up # => aが入力される
SFT_T(KC_A) Down
# TAPPING_TERM経過...
KC_X Down
KC_X UP
SFT_T(KC_A) Up
=> aaaaaaaaa...xが入力される(aの連続はキーリピートによるもの) # TAPPING_FORCE_HOLD無効
=> Xが入力される # TAPPING_FORCE_HOLD有効
IGNORE_MOD_TAP_INTERRUPT
Mod Tap keyと通常キーを連続して高速に押したとき、両方のキーをTapとして扱うようになる。
https://docs.qmk.fm/#/feature_advanced_keycodes?id=ignore-mod-tap-interrupt
SFT_T(KC_A) Down
KC_X Down
SFT_T(KC_A) Up
KC_X Up
=> Xが入力される # IGNORE_MOD_TAP_INTERRUPT無効
=> axが入力される # IGNORE_MOD_TAP_INTERRUPT有効
※ 有効時でも両方のキーをTAPPING_TERM以上押し続けていると、Holdとして扱われる。
※ モディファイアキーのみに適用される。レイヤーキーには適用されない。
最後に
キーマップやconfigを公開してるので良かったら参考にしてください
https://github.com/uodna/qmk_firmware/tree/develop/keyboards/iris/keymaps/uodna-osx-ansi