ちゃっくのメモ帳

ちゃっくがメモしときたいことをメモしとくよ

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のターミナルとか使う時は不便になりそう。


誰かこの辺りを上手く設定している人がいたら是非教えてほしい。