Edited at

Ergodox(qmk firmware)の同時押し/レイヤー切替の設定メモ


はじめに

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_TLTなどについては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を公開してるので良かったら参考にしてください :smile:

https://github.com/uodna/qmk_firmware/tree/develop/keyboards/iris/keymaps/uodna-osx-ansi