HHKB(JP) + Alternative ControllerでMacでいう英数/かなキーを実現する
長かった。このセッティングにたどり着くまで。。。
HHKB(JP) + Alternative Controller
HHKB の改造コントローラ、Alternative Controller
で Bluetooth 化したのはいいんですが、搭載している Bluetooth モジュールの制約で変換
や無変換
のキーコードを送ることができません。
Windows の半角/全角
キーによる IME モードのトグルチェンジではなく、Mac のように一発で「かな/英数」キーで IME の有効/無効を切り替えられないかと試行錯誤していました。
「黙って US 配列使え」っていうツッコミはなしの方向でお願いします。
そしてこのたび、ようやく納得の行くセッティングを詰めることができました。
いままでの設定
変換/無変換のキーに Alt + `
を割り当ててトグル動作で使ってました。 英語キーを使っているとき、Windowsでは標準でこのキーバインドが半角/全角
キーのように動作します。
しかし RDP で使っていると結構な頻度でAlt
が効かず、Grave
だけ入力されるので地味にストレス。
全角にしたいときにすでに全角になっていて、2回押しちゃうこともしばしば。地味にストレス。
今日からの最適解? Ctrl + Shift + Fn キーを使う
普段Google日本語入力
を使っているのですが、切り替えのキーバインドにCtrl + Shift + Fn
キーが使えることに気づきました。
変換
キーにCtrl+Shift+F8
、無変換
キーにCtrl+Shift+F7
を割り当てます。
この組み合わせにしたのは、適当にEclipse
やVSCode
などで変な機能が暴発しないことを確認できたからです。
暴発しないならF1
やF2
でもいいはず。
(※Eclipse 2020-03で確認したところ、キーバインドがかぶってました。ビューの切り替え、パースペクティブの切り替えに割り当てられていますが使わないのでEclipse側をオフにしています)
早速Google日本語入力
にキーバインドを追加設定。
続いてAlternative Controller
のファームウェアを書き換え。
修飾キーとバインドできるACTION_MODS_KEY
ではうまくできなかったので、ACTION_MACRO
で登録しました。
どうなった?
問題なく成功しました。
こころなしか Bluetooth + RDP でもキー不発率が低いような。
有線+RDP なら今のところ不発なしです。
快適!
実はもっとスマートな方法が
そういえば、キーボードってF12
以降もファンクションキーがあるんです。
なので、使いみちのないキーコードを割り当てれば、上記のようなアクロバティックなことをせずとも使えます!
1年以上たって、新しい実装方法が見えてきました。
さっそく、F18
とF19
を割り当ててみました。
QMKの場合は
#define IME_ON LT(_NUM, KC_F19)
#define IME_OFF ALT_T(KC_F18)
の様に書けます。
あとはGoogle日本語入力
の方を調整するだけ!
と思ったら
MacからのRDP
(Remote Desktop Protocol)接続では F18
、F19
を送信してくれませんでした。
くそう。。。