Karabiner+seilで"Hyper Key" をつくる

Alfred便利だけど、spotlightも知らぬ間に凄い進化を遂げていた事を知り、 どっちも使いたい!良いとこどりをしたい!と言うことで、キーバインドをカスタムした。

現状とやりたいこと

今はAlfredだけを使用する事を想定していたので、AlfredのホットキーをOption + Spaceに設定し、spotlightにはキーを割り当てていませんでした。
これだとspotlightを使うには、いちいちカーソルを右上まで移動する必要があり、とても面倒…。
少し調べてみるとKarabiner(旧 keyremap4macbook)を使って便利にしている人を発見!

A useful Caps Lock keyで紹介されている方法で、Caps Lockを Shift + Control + Command + Optionと言う”Hyper”キーに設定する事で あまり使わないCaps Lockを有効活用する試み。
“Hyper”キーを設定して、Hyper + space(=Caps Lock + space)を Spotlightのホットキーに設定できれば、親指の位置を少しづらすだけで AlfredとSpotlightの起動を切り替えられる!

が、しかし、英字キーボードを使っているがために本当のCaps LockはControl にしたい。と、少し複雑なリマップが必要にな事が発覚。。

現在のキーバインドはこんな感じ

  • Caps Lock = Control (システム設定で変更)
  • Control = Caps Lock (システム設定で変更)
  • Option + Space = Alfred

やったこと

先ず、必要なソフトをインストール

KaribinerはCommand + qでアプリケーション終了の挙動を変更する為にイン ストールしていました。しかし、Caps Lockを変更する為にはSeilを別途イン ストールする必要があるもよう。

システム設定

まずはMacのシステム設定にて変更していたCapsLockとContorlの設定を変更。

SeilでCaps Lockを扱う際、Caps Lockを”No Action”にする必要があるので、 これを設定し、Caps Lockに変更していたControlをControlに戻す。

システム設定 CapsLockを"No Action"に

SeilでCapsLockを変更

Caps Lockを設定するさい、上記ブログでは “F19” というMacbookには存在し ないキーを指定していました。が、僕はCapsLockはControlとして使いたいの でRight Controlに指定。

Seil設定 Change caps lock key to 62

ここでLeft Controlではなく、Right Controlにするのは、Macbookには物理キー ボード上右コントロールは存在しないのと、左コントロールはHyperキーに割 り当てるため。

KaribinerでHyperキーを作成

この時点では、CapsLockをRight Controlに割り当てただけ。Control(Left Control)をHyperキーに割り当てる本題はここから。

HyperキーのキーマップはデフォルトではKarabinerに存在しないため、private.xmlを変更してキーマップを定義する必要がある。
上記記事に記載のprivate.xmlを参考に作成したのが下記。

<?xml version="1.0"?>
<root>
    <item>
        <name>Left Control to Hyper</name>
        <appendix>(Control_L to Hyper (ctrl+shift+cmd+opt), send escape)</appendix>
        <identifier>private.f192f19_escape</identifier>
        <autogen>
            --KeyOverlaidModifier--
            KeyCode::CONTROL_L,
            KeyCode::COMMAND_L,
            ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
            KeyCode::ESCAPE
        </autogen>
    </item>
</root>

ドキュメント(日本語) を軽くみただけではKeyCode::ESCAPEが必要な理由が不明だが…とりあえず スルー。

あとはXML再読み込み→キーマップを有効化するとHyperキーが完成!

Karibiner設定SS

Spotlightホットキー設定

システム設定から指定してあげるだけ。この時Control + Space押下で Shift + Control + Command + Option + Spaceの表記がされていれば設定完 了。

システム設定SS-done

おわりに

これでAlfredもSpotlightも同じようなキーバインドで活用できるようになりました!
Spotlightは検索対象のファイルタイプをkind:pdfなどでフィルタリングで きるのが良い。電子初期(PDF)が増えてきたのでこれでちょっと便利になるか も。

Hyperキーという概念があると衝突を避けながらキー割り当てが行いやすくな るので、他にも色々設定しようと思う。

SHOTA

I'm WEB developer

Tokyo, Japan http://senta.me/