TapDanceの設定(その1)
事前準備
rules.mkの編集
TapDanceはデフォルトで無効なので、rules.mkファイルにTAP_DANCE_ENABLE=yesを追加して有効にする。
config.hの編集
TapDanceは、一定の時間内に2連打(またはそれ以上)した場合にTapDanceと判定するが、その時間はデフォルトでは200ミリ秒となっている。
この時間は、config.hファイルで#define TAPPING_TERM 175とすれば任意の時間に変更できる。また、一部のTapDanceだけ時間を変更することも可能である。この方法は後述する。
基本的な設定方法
Basic Keycodesに列挙されているキーを割り当てる方法
例として、タップすると.、2連打すると,を入力する設定を行う。
まず、専用のキーコードをkeymap.cファイルで定義する。名称は自由に決められるので、「TD_タップで入力するキー_2連打で入力するキー」のようなルールを決めて設定すると良い。
code:keymap.c
//Tap Dance Declarations
enum {
TD_PERIOD_COMMA = 0
};
続いて、qk_tap_dance_action_t型のtap_dance_actions配列に独自設定のキーコードに処理を割り当てる設定を行う。定義は、keymap.cファイルで行う。
qk_tap_dance_action_t型は、qmk_firmware/quantum/process_keycode/process_tap_dance.hで定義されている。
Basic Keycodes に列挙されているキーだけを割り当てる場合、以下のコードのとおり、ACTION_TAP_DANCE_DOUBLE関数の1番目の引数にタップした時に入力するキーを、2番目の引数に2連打した時に入力するキーを指定する。 code:keymap.c
qk_tap_dance_action_t tap_dance_actions[] = {
};
それから、キーマップの好きな場所にTD(TD_PERIOD_COMMA)と記述すればOKである。ここでは、左下のキーに設定している。
code:keymap.c
// キーマップ定義の抜粋
KC_TAB, KC_Q, KC_W, KC_E, C_Y, ~~
KC_LCTL, KC_A, KC_S, KC_D, C_H, ~~
KC_LSFT, KC_Z, KC_X, KC_C, C_N, ~~
TD(TD_PERIOD_COMMA), KC_LCTL, KC_LALT, KC_LGUI, C_SPC, ~~
),
なお、TD(TD_PERIOD_COMMA)だと長いと思う場合、次のように省略形を設定することも可能である。
code:keymap.c
// 省略形の定義
#define KC_TAP_PDOT TD(TD_PERIOD_COMMA) KC_TAB, KC_Q, KC_W, KC_E, C_Y, ~~
KC_LCTL, KC_A, KC_S, KC_D, C_H, ~~
KC_LSFT, KC_Z, KC_X, KC_C, C_N, ~~
KC_TAP_PDOT, KC_LCTL, KC_LALT, KC_LGUI, C_SPC, ~~
),
これで、TD(TD_PERIOD_COMMA)を指定したキーをタップすれば.が入力され、2連打すれば,が入力されるようになる。