uitspitss blog

プログラミングと音楽とエッセイ ※記載内容は個人の見解であり、所属する組織とは一切関係がありません。

Mac(Sierra)でのキーリマップ

今月、以下2台のMacのSierraでキーリマップを見直してちゃんとしました。

  • MBA(2014Early) - JISキー配列
  • MBP(2016Late) - JISキー配列

実現したいキーリマップ

まず、どういうキーリマップをしたいかですが、

  • かなキー → 右Ctrlキー
  • 英数キー → Cmdキー
  • 右Cmdキー → かなキー
  • 左Cmdキー → 英数キー
  • CapsLockキー → 左Ctrlキー
  • _(underscore) → \(backslash)

キーリマップソフト

過去にOSXでも上記のキーリマップをしていました。その時はkarabinerですべてできていたのですが、Sierraに対応しているkarabiner-elementsでは、最後のbackslashのキーリマップだけは実現できなかったので、そこはukeleleを使いました。

キーリマップ

karabiner-elements

とりあえず、karabiner-elementsで行けるとこまでやってしまいます。

  • Virtual Keyboardの設定をJISに切り替えて
  • Simple Modificationsで以下の画像のように設定

f:id:uitspitss:20170531033928p:plain

ついでに、USB接続のJISキーボードは以下のような感じに…。

f:id:uitspitss:20170531034248p:plain

プロファイルに設定しておくと、メニューバーから切り替えができて便利です。

ukelele

残すは(backslash)です。 Mac事情に詳しくはないのですが、バックスラッシュの打ち方をググると、Option+¥というやり方が出てくるので、元々、_(underscore)のキーにバックスラッシュって当たっていないんですかね…。コードを書くときとかターミナルを使うときに不便じゃないんだろうか。

ukeleleでは、Macのキーボード設定にある入力ソースを作っていきます。

f:id:uitspitss:20170531042459p:plain

ukeleleのインストールについては割愛です。

ukeleleを起動すると、のっぺらぼうのキー表が出てくるので、ある程度は自動的に埋めてもらいます。

f:id:uitspitss:20170531035659p:plain

このときに、2016LateのMBPはJISキー配列になっていなくて、USBのJISキーボードをつなげたり、ウィンドウ内の左上にあるToolboxを開くと出て来る設定からJIS Onlyを設定したり、Preferencesでkeyboard typeを切り替えたりしている内になんとかJISキー配列になってくれました! (JISかUSかはEnterキーが横長になっているかどうかで分かります。)

そんなこんなで、ちゃんとJISキー配列になっているのを確認したら、ukeleleのFileメニューからNew Keyboard Layoutを選択して、適当な名前を付け、Base Keyboard LayoutQWERTYを選択してOKをすると、ほぼキーレイアウトが埋まるはずです。

f:id:uitspitss:20170531040650p:plain

こんな感じで\(backslash)を設定して、ファイルを保存。出来上がった設定ファイルは/Users/[username]/Library/Keyboard Layoutsディレクトリに置くと、キーボード設定に反映されるようです。

あとは、入力ソースで作ったレイアウトを追加します。

f:id:uitspitss:20170531042459p:plain

Google日本語入力と合わせて使っている感じでは、半角英数・日本語(全角)の入力はGoogle日本語入力にしてしまったほうがよいと思います。画像中の灰色のABCは他のキーボードレイアウト(作ったのはだめ?)を入れないとリストから外せない上に、レイアウトを持っているので、この入力ソースに切り替わる度にレイアウトを元に戻されてしまうようです。

ちなみに、入力ソースが切り替わるので、USBキーボードでも共通して使えます。

余談

このキー配列(特にスペース横に設定するCtrl,Cmd)はemacsを使うときにとても楽で、この設定のせいで未だにUSキー配列に移行できません。記号類の入力では、USキー配列の方が入力しやすそうなのに。

過去の自分に助言ができるとすれば、emacsは止めた方がいいと言いたいですね。emacsから抜けられない体になってしまう。