見出し画像

[QMK] 押しっぱなしの挙動を変更して、繊細なしょっさんに適合させる [Tap & Hold]

繊細のキーボードへの対処に困っていたら、救世主が現れました。

先日公開したこの記事に、ヒントとなるコメントをいただけたんです。

ありがたいことに、対処法を教えてくださいました。感謝 🙇🏻

私のとった手段はこちら。keyball44 配下の config.h に次の二行を足して、firmware を作り直しました。

#define PERMISSIVE_HOLD
#define RETRO_TAPPING

結果的に、しょっさんの keyball44/via/config.h は次のようになりました。

#pragma once

#ifdef RGBLIGHT_ENABLE
//#    define RGBLIGHT_EFFECT_BREATHING
#    define RGBLIGHT_EFFECT_RAINBOW_MOOD
#    define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#    define RGBLIGHT_EFFECT_SNAKE
//#    define RGBLIGHT_EFFECT_KNIGHT
//#    define RGBLIGHT_EFFECT_CHRISTMAS
//#    define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#    define RGBLIGHT_EFFECT_RGB_TEST
//#    define RGBLIGHT_EFFECT_ALTERNATING
//#    define RGBLIGHT_EFFECT_TWINKLE
#endif

#define TAP_CODE_DELAY 5
#define TAPPING_TERM 180

#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
#define AUTO_MOUSE_DEFAULT_LAYER 1
#define AUTO_MOUSE_TIME 780

#define DYNAMIC_KEYMAP_LAYER_COUNT 9

#define PERMISSIVE_HOLD
#define RETRO_TAPPING

LAYER は 9つが限界だなーって所です。RGB を使わないようにしても、10 にすると EEPROM の容量が不足します。まぁ、これだけあれば問題ないでしょう。十分です。

それにしても、この 2行でとても快適になりました。これまでは TAPPING_TIME で設定している 0.18秒を待つ必要がありましたが、今はもうその必要がありません。ほぼ同時押しでもきちんと反応します。予想していないキー入力はほとんどなくなりました。

これでキーボードに対する不満が全てなくなったのかと言うと、そんな事はありません。

Hold したあとに、必要なキーを押下すれば何ら問題はありません。ただ、そのまま離してしまうと、どんなに時間が経過していたとしても、Tap 動作になります。例えば私は Tap&Hold でスペースキーを指定していますが、まちがってこのキーを押してしまった場合、離すとスペースキーが必ず反応してしまいます。

ふと、Ctrl や Shift を押してしまった時に、そのまま離しても通常は何も起きませんよね。ただ、QMK でPERMISSIVE_HOLD と RETRO_TAPPING を入れただけでは、このまちがって押してしまった時の対処が行われません。これは流石にコードにちょっと手を入れる必要があるかもしれません。例えば、TAPPING_TIME 以上押しっぱなしにしていたら反応させないとかね。

と言うことで、完全解決ではないものの、個人的にはほぼ解決した状態になりました。しばらくは、この状況でキーボードを楽しんでみます。

ありがとうございました 🥰

いいなと思ったら応援しよう!

しょっさん
貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。

この記事が参加している募集