前の記事はこちら 親指シフトキーボードプロジェクト その27
便利に使っている「親指シフトキーボード」ですが・・・
長い時間使っていると・・・なんだか動きが怪しくなります。(なることがありました)
普通は、「親指シフトモード」の時にSHIFTキーやCTRLキーを押すとその時だけ「親指シフトモード」を抜けます。
例えば「親指シフトモード」の時に SHIFT+A を打つと「A」が入力されます。
おそらくこれは「親指シフトモード」の時でも CTRL+C などが機能するようにプログラムされているものと思われます。
ところが・・・長く使っていると(?)「親指シフトモード」のSHIFTが効かなくなる場合があります。(ありました) 一度こうなると「親指シフトモード」でSHIFT+A を打つと「U」が入力されます。(おそらくAキーは「う」だから) SHIFT+Hを打つと「HA」になります。(Hキーは「は」だから)
で、こうなると、何を押しても元に戻らず、USB ケーブルの抜き差しでリセットしていました。
長らく原因を調査しているのですが・・・なかなか分かりませんでした。
しかし、本日、ついに・・・どういう操作をすると、この状態になってしまうのかが分かりました。
私は、左上の端のキーを「親指シフトモード解除」のキーにしているのですが・・・SHIFT+「親指シフトモード解除」や CTRL+「親指シフトモード解除」と操作をしてしまうと、このバグ状態になることが分かりました。
操作は分かったのですが・・・QMKのプログラムを見ても、どこをどう直せば良いのか皆目見当がつきません。
とりあえず、「親指シフトモード解除」をするときに余計なキー(SHIFTやCTRL)を押さないように気を付けています。
で・・・その後の調査で一つ分かったことは・・・
現状の定義(keymap.c)には、次の3つのレイヤーが定義されています。( _QWERTY , _NICOLA , _FUNC )
普通の英文字半角は _QWERTY で、親指シフトモードは _NICOLA になります。親指シフトモードでも、SHIFTキーやCNTLキーを押すと _QWERTYレイヤーに切り替わるのですが・・・バグの状況に入ると、SHIFTキーやCNTLキーを押しても _QWERTYレイヤーに切り替わらず _NICOLAレイヤーのままであることが分かりました。
(まだ、QMKの技術が無くて・・・対応方法を研究中です。 というか、QMKの勉強中です。)
続きの記事はこちら 親指シフトキーボードプロジェクト その29