MacでHHKB(日本語配列)のキー設定
Macを新しく手に入れるたびにHHKB Professiona JPとのキー設定で1日潰してたりするのでいい加減メモしておく。
デフォルトの機能だけで思うように設定出来なかったので、Krabiner-elementsを使用する。思うようにというのは、普段使っているUbuntuと同じ感じで使いたいくらいの気持ち。Macに詳しくないし、払って詳しくなる予定も無いので、このポエムよりもいい方法を知っていたら是非教えてほしい。
結論から言うと次のような設定に落ち着いている
- Macの設定
- キーボードの入力ソースの日本語の「¥キーで入力される文字」を\(バックスラッシュ)に変更する
- Karabinerの設定
- international4 -> かなキー
- international5 -> 英数キー
- left_control -> left_command
- left_command -> left_control
- iTermsの設定
- control -> Left Command
- left command -> control
以下経緯
まず、日本語入力のオンオフをスペースキーの左右の変換/無変換キーで行いたい。
これはKarabinerを使ってinternational4をかなキーに、international5を英数キーに変更している。
また、デフォルトの設定だとバックスラッシュ(\)が入力できず、¥が入力される。これはプログラミングをする上で致命的なので変更する。設定>キーボード>入力ソース>日本語から¥キーで入力される文字を¥から\に変更する。Google日本語入力ならメニューバーの環境設定から変更できる。
次に、ControlとCommandを入れ替えたい。ここでControlというのはAキーの左にあるキー。Commandはスペースキーの2,3個左にあるキーである(Macのキーボードでは英数キーの左のキー、HHKB Professional JPではAltの左のキー)。
このCommandが左下の妙に押しにくい位置にある。そのため、デフォルトのまま使うとCommand+Fで検索だったりCommand+C,Vでコピーペーストをするときに不便。これをControlと入れ替えたりしていく。
これはKarabinerを使って、left_controlをleft_commandに、left_commandをleft_controlに変更する。
しかし、このままではコマンドライン上でCtrl+*系の入力が上手く行かなくて苦しい。
例えば、Ctrl+CやCtrl+Zでシグナルを送信したり、tmuxやvimでCtrl+<キー>にコマンドを割り当てている場合などCtrl+*系の入力は高頻度で使用するため、最下段の左の方にあるキーを使うのは大きなストレスになる。
とりあえず暫定的な解決方法としてはコマンドラインをiTermのみで使用すると仮定しiTermの設定でcontrolキーとcommandキーを入れ替える。この入れ替えにより、Karabinerによる入れ替えと合わせてcontrolキーとcommandキーの配置は元通り(キーボードに印字されている通り)になるはずである。
設定はiTerm > Preferences > Keysで、Remap ModifiersでRemap control(^)を Left Commandに、 Remap left command keyをControlに変更する。
これまでの設定で今の所意図している動作になっている。しかし、iTermあたりで2回入れ替えて元に戻すとかやっていたりして本当に大丈夫か?と不安になったりする。
また、コマンドラインはiTermからのみ使用すると仮定しているけど、デフォルトのターミナルや、IntelliJのターミナルとかVSCodeのターミナルとか使う時は不便になりそう。
誰かこの辺りを上手く設定している人がいたら是非教えてほしい。