2016-03-21

Mac + μTRONキーボードの日本語変換まわりの設定

ヘルシーなプログラマーは、左右分離型のキーボードを使うらしいので、真似をしてμTRON キーボードを使い始めた。


買ったままでは使いにくい。Seil と Karabiner というソフトウェアを組み合わせて、キーマップを変更している例が見つかった。ほとんどの設定は素直にいく。ただ、日本語入力まわりの設定に、少し工夫が必要だった。


スペース・英数/かな・コマンド


スペースキー、英数/かなキー、コマンドキーの配置を、できれば本体と似たような配置にしたいという希望がある。


  • 打ち合わせ中や、やリビングでだらだら作業するときには、MacBook Pro 本体のキーボードを使う。慣れていないので、本体と外付けのキーボードのマッピングが、極端に異なるようにはしたくない。
  • 技術的なドキュメントを書くことが多い。英数のときはIME オフ、日本語入力の時にはIMEをオンにする。Google  日本語入力を使っている。
  • 将来的には、このキーボードを活かした設定にしていくんだろうけど、ちょっとずつ変えていく。


最終的にこうやりたい。



Karabiner の、コマンドキー(⌘)の設定が気に入らなかった。スペースを押したまま→キー→スペースを離す、というシーケンスで、⌘を押しながらキーを押したことにする、という設定を使っていた。

押下のタイミングが悪いのか、選択範囲をコピーしたいのに c と悲しく表示されていることがある。

というわけで、Seil と Karabiner を組み合わせて、理想の状態にした。

Seil


Seil はシステム全体で、JIS系のキーの有効/無効を切り替えたり、キーマップを入れ替えたいりする。あまりこれは使っていなかった。本体のキーマップも変えてしまうからだ。

けど、最終的なキーマップを実現するために、Seil で中間的なキーマップ設定をした。
  • 無変換キーを、英数キーにする
  • 変換キーを、かなキーにする。
  • CAPS LOCK キーを、左 Command キーにする。
  • かなキーを、右 Command キーにする。




MacBook Pro  には変換/無変換キーが存在しないので、このキーマップとほとんど干渉しない。Caps Lock はめったに押さない。

Karabiner


Karabiner では、内蔵キーボードのキーマップをいじらない、という機能を有効にする。以降の設定は、μTRON のキーマップにだけ反映される。

まず、独自の設定をXMLで定義して、有効にする。
  • スペースを、 左 Command キーにする。
  • Backspace を、右 Command キーにする。
  • INSERT を、Backspece にする。 ... この文章の内容とは関係ないマップだけれど、XMLに出てくるので、記載しておく。

<?xml version="1.0"?>
<root>
  <item>
    <name>Change Space to Command</name>
    <identifier>private.change_space_to_command</identifier>
    <autogen>__KeyToKey__ KeyCode::SPACE, KeyCode::COMMAND_L</autogen>
  </item>

  <item>
    <name>Change INS to BS, BS to Space</name>
    <identifier>private.change_ins_to_backspace</identifier>
    <autogen>__KeyToKey__ KeyCode::DELETE, KeyCode::COMMAND_R</autogen>
    <autogen>__KeyToKey__ KeyCode::HELP, KeyCode::DELETE</autogen>
  </item>

つづいて、Karabiner がデフォルトで持っている変換ルールを適用して、親指まわりの設定をする。
  • 英数キーを、スペースにする。
  • かなキーを、スペースにする。
  • 左 Command キーを、英数キーにする。
  • 右 Command キーを、かなキーにする。


これで完成。