Sierraでのキーボードの設定

SierraでKarabinar & Seilが使えなくなってしまうという致命的な問題によりキーボードの設定について研究が必要となりました。特に自分の場合、

  • Mac本体のキーボードはUS配列
  • ThinkPadキーボードはJIS配列

となっており、US配列とJIS配列の両方をカバーする設定が必要になります。やりたいことは単純で、スペースキーの両サイドのキーで英数/日本語の入力切替を行いたいということで、あとはこれを成立させるための設定や、より便利にするための細かい設定という感じです。

結論から言うと、Karabinar Elements英かなというツールを併用することで以前と同じキーマッピングを実現することができました。

Mac本体での設定

デフォルトでは日本語入力の切替がcontrol + spaceで行われるようになっているのですが、IDEでの入力補完やEmacsでの範囲選択などと被るので無効化しました。

f:id:takezoe:20170501202804p:plain

caps lockcontrolに入れ替えるのはOSの設定でもできるのですが、接続するキーボード毎に設定しなくてはいけないので後述するKarabinar Elementsで行っています。

また、トラックパッドの設定で、外部マウスが接続された場合にトラックパッドを無効化するようにしています。

f:id:takezoe:20170501202819p:plain

英かなの設定

日本語入力を左右のコマンドキーで行うように設定します。

f:id:takezoe:20170501201850p:plain

Karabinar Elementsでも左右のcommandキーを英数/日本語の切替に変更することができるのですが、そうするとcommandキーが使えなくなってしまうので、commandキーと組み合わせるショートカットが使用できなくなってしまいます。

Karabinarではcommandキーを単独で押した場合は入力切替、他のキーと組み合わせて押した場合はコマンドキーとして動作するという設定ができたのですが、Karabinar Elementsでは今のところできないようです。ただ、以下のプルリクエストが取り込まれればできるようになるみたいなので将来的にはKarabinar Elements単体で済むようになるかもしれません。

github.com

Karabinar Elementsの設定

JIS配列のキーボードの変換、無変換キーで入力切替を行うように設定します。また、caps lockcontrolに置き換える設定もKarabinar Elementsで行なっています。

f:id:takezoe:20170501202029p:plain

あとはファンクションキーを押した場合に通常のファンクションキーとして動作するようにするのと、外付けキーボード接続時は本体のキーボードを無効化する設定を行なっています。

f:id:takezoe:20170501202855p:plain

f:id:takezoe:20170501202905p:plain

残課題

これで一応以前と同じ動きをするように設定できたのですが、外付けのJISキーボードがUS配列に認識されたり、一度JISキーボードを接続すると本体のキーボードもJIS配列と認識されてしまったりすることがあります。OSの設定でもう一度キーボードの配列を指定すれば直るのですが、ちょっと面倒です。

面倒といえばこれは以前からなのですが、ThinkPadキーボードのトラックポイントのスクロール方向と、本体のトラックパッドの設定が連動しており、本体のトラックパッドと外付けのトラックポイントを切り替える際に毎回設定を変更しないといけません。外付けマウスの場合のみスクロール方向を逆転させるツールもあって以前試してみたのですが、うまくスクロールができなくなってしまことがあるなど問題があり、常用は断念しました。

まとめ

  • US配列なら英かなだけでよさそう(ただし外付けキーボードのファンクションキーをデフォルトでF1〜F12として使うにはKarabinar Elementsが必要かもしれない)
  • JIS配列ならKarabiner Elementsだけでよさそう
  • 使用するキーボードはUS配列ならUS配列、JIS配列ならJIS配列に統一するべき