アナログ金木犀

つれづれなるまままにつれづれする

Karabinerでキーボードごとに設定する

こんにちは、釘宮です。

普段は職場では東プレのREALFORCEをMBPにつなげて使っているんですが、キー配列が違うためにKarabinerを使って好みの配列にしています。

基本的にはMBPと同じにしているのですが、それに加えてCtrl+hjklで左右上下に移動するっていう設定にしています。

すごく満足しています。

問題は外でPCを使うときです。

MBPのキーボードを使うことになるわけですが、Karabinerで単純にチェックボックスを入れるだけではキーボードごとのカスタマイズが出来ないので、Ctrl+hjklを押してもカーソル移動しないわけです。

困った。

ただ、それでもさすがKarabinerさん。 もちろんキーボードごとの設定もできます

private.xmlというものをつくって、そこに設定します。

僕はこうなりました。private.xml

ただ、Karabinerですでにチェックしているものからprivate.xmlに落とし込むまでがちょっと苦労したので、そこを説明します。

ひな形 + キーボードのverndoridとproductidを調べる

まずはxmlのひな形を作ります。

<?xml version="1.0"?>
<root>

  <!-- for RealForce -->

  <devicevendordef>
    <vendorname>RealForce_VendorID</vendorname>
    <vendorid>0x0853</vendorid>
  </devicevendordef>
  <deviceproductdef>
    <productname>RealForce_ProductID</productname>
    <productid>0x0200</productid>
  </deviceproductdef>

  <item>
      <name>For RealForce Settings</name>
      <appendix>For RealForce Settings</appendix>
      <identifier>private.for_RealForce</identifier>
      <block>
        <device_only>
          DeviceVendor::RealForce_VendorID,
          DeviceProduct::RealForce_ProductID
        </device_only>
        </block>
      </item>
</root>

ひな形と言いつつ、verdoridやproductidが入ってしまってますが、これは下記のようにEventViewerで調べることができます。

f:id:kgmyshin:20150807005815p:plain

f:id:kgmyshin:20150807005838p:plain

autogenを追加していく

次に実際にチェックしている値が保存されている設定ファイルを覗いて、それをprivate.xmlに書いていきます。

設定ファイルは

Home > Library > Preferences > org.pqrs.Karabiner.plist

にあります。

これを開くとこんな感じになってます。

f:id:kgmyshin:20150807005906p:plain

このconfig_xxxxxの中にある

remap.やoption.な値をprivate.xml用に変更しつつ書き込んでいきます。

基本的にこのremap.やoption.は一つもしくは複数のautogenタグに変換できます。

で、その調べ方は下記の2通りです

  • Karabiner.appの中身の下記をgrepする。下記のcheckboxディレクトリ配下でいいみたい。

スクリーンショット 2015-08-06 21.22.25.png

これを行うと下記のような記述が見つかるので、private.xmlにautogenタグをまるっとコピペしていくっていう作業を全てにやれば完了です。

    <item>
      <name>Control_L+hjkl to Left/Down/Up/Right</name>
      <identifier>option.vimode_control_hjkl</identifier>
      <autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::CURSOR_LEFT</autogen>
      <autogen>__KeyToKey__ KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN</autogen>
      <autogen>__KeyToKey__ KeyCode::K, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP</autogen>
      <autogen>__KeyToKey__ KeyCode::L, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT</autogen>
    </item>

まとめ

やってみての感想。

下記の動画で、大好きな石田彰さんが生アフレコしてくれてるのが、まさにそれでした。

もっかいやることあれば、スクリプト書きます。