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を割り当てます。

この組み合わせにしたのは、適当にEclipseVSCodeなどで変な機能が暴発しないことを確認できたからです。
暴発しないならF1F2でもいいはず。
(※Eclipse 2020-03で確認したところ、キーバインドがかぶってました。ビューの切り替え、パースペクティブの切り替えに割り当てられていますが使わないのでEclipse側をオフにしています)

早速Google日本語入力にキーバインドを追加設定。
Ctrl+Shift+Fnセッティング

続いてAlternative Controllerのファームウェアを書き換え。
修飾キーとバインドできるACTION_MODS_KEYではうまくできなかったので、ACTION_MACROで登録しました。

どうなった?

問題なく成功しました。
こころなしか Bluetooth + RDP でもキー不発率が低いような。
有線+RDP なら今のところ不発なしです。
快適!

実はもっとスマートな方法が

そういえば、キーボードってF12以降もファンクションキーがあるんです。
なので、使いみちのないキーコードを割り当てれば、上記のようなアクロバティックなことをせずとも使えます!
1年以上たって、新しい実装方法が見えてきました。

さっそく、F18F19を割り当ててみました。
QMKの場合は

#define IME_ON  LT(_NUM, KC_F19)
#define IME_OFF ALT_T(KC_F18)

の様に書けます。
あとはGoogle日本語入力の方を調整するだけ!

と思ったら

MacからのRDP(Remote Desktop Protocol)接続では F18F19を送信してくれませんでした。
くそう。。。

Subscribe to 猫好きが猫以外のことも書く

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe