QMK_Firmwareとは
自作キーボード界隈で騒がれてたりなんだったりするファームウェアの事です。
こちらはtmk firmwareを元に進化したファームウェアになります。
自作するならtmkじゃなくてQMKにするといいよー。ってのもある。
そんなQMKのキーの設定で自分がつまった所を書いておいて他の人の役にでも立てばとか思ったやつです。
ちなみに僕はC言語殆ど理解出来てないのでそのせいもありそう。何が原因か言語の仕様が理解出来てないせいだったら教えてもらえるとありがたいです。(他力本願)
色々自分が弄っていく上でつっかかった所が増えていく予定、つまり増えないほうがよろしい。
基本的に普通に各キーを設定しただけで動かなかった場合、その大元の関数を代わりに設定してあげればよいっぽいのでその関数を調べる方法を後で書きます
Tap-DanceでRESETキーが効かない。
自分の場合Tap-danceを有効にしていて、そのTap-danceの2回タップした時にRESETキーを設定していたらコンパイルは通り、正常に焼けたのにかかわらず、実際にキーを打つと何も入力されない、何かaキーの入力になってる。とかがありました。
対策
RESETキーは実際はreset_keyboard()という関数が呼ばれていた。
そのため、ACTION_TAP_DANCE_DOUBLE()
をACTION_TAP_DANCE_FN()
に変更し、関数を書いた。
before
- [TD_RESET] = ACTION_TAP_DANCE_DOUBLE(KC_NO,RESET)
after
+ [TD_RESET] = ACTION_TAP_DANCE_FN(dance_td_reset)
+ void dance_td_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ reset_keyboard();
+ }
+ }
Tap-DanceでTG()キーが効かない。
自分の場合Tap-danceを有効にしていて、そのTap-danceの2回タップした時にTG()キーを設定していたらコンパイルは通り(ry。
対策
同じく関数書いて解消しました。
何故こうなるのかの根本は調べがつかなかったので、調べたい。
Tap-danceだと何かある?後で見よう。(めんどう…)
before
- [TD_DEFAULT] = ACTION_TAP_DANCE_DOUBLE(KC_NO,TG(DEFAULT))
after
+ [TD_DEFAULT] = ACTION_TAP_DANCE_FN(dance_td_default)
+ void dance_td_default(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ layer_clear();
+ layer_on(DEFAULT);
+ }
+ }
終わりに
初投稿なため、腑甲斐無い所は甘く見て頂きたい。
C言語頑張るーーー。
とりあえず詰まったら関数そのものを書けばいい感じかな。
その関数の調べ方を書きます。いつか。