USキーボードでMacを使っており、日本語入力の切り替えのためやキーバインドのカスタマイズに、先日までHammerspoonを使用していた。以前はKarabinerを使っていたけど、Sierraからうまく動作しなくなったからである。
Karabinerの代替であるKarabiner-Elementsを、しばらく情報を追いかけていなかったがふと気になり調べてみると、いつの間にかいろんな設定ができるようになっていた。まだKarabinerのような複雑なカスタマイズはできないようだけど、僕の用途なら十分だったのでHammerspoonから移行することにした。
ついでに、Hammerspoonでやりたいなと思って実現できていなかった、Spotlightを開くときに入力を「英数」に切り替える、というのを設定してみた。

Spotlightを英数で開きたい

アプリケーションランチャーや電卓としてSpotlightをよく使っているけど、IMEが「かな」になっている時の鬱陶しさときたらたまったものではない。

  • 「Photoshopを開きたいな」と思ってSpotlightを開く
  • IMEが「かな」になっているので「pほとしょp」と入力されてアプリがヒットしない

みたいな。Alfredは起動時の入力を設定できるので絶対に半角で立ち上げることができるけど、Spotlightにはそういう設定はない。
じゃあAlfred使えばいいのでは…というのはさておき、これをKarabiner-Elementsで解決する。

karabiner.json Reference Manual – Karabiner – Software for macOS

上記のリファレンスを参考に、適当な名前で下記のようなJSONを書く。作成したファイルは~/.config/karabiner/assets/complex_modifications/に置く。

{
  "title": "Spotlight起動時にIMEを英数にする",
  "rules": [
    {
      "description": "Spotlight起動時にIMEを英数にする",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "spacebar",
            "modifiers": {
              "mandatory": ["command"]
            }
          },
          "to": [
            {
              "key_code": "spacebar",
              "modifiers": ["command"]
            },
            {
              "key_code": "japanese_eisuu"
            }
          ]
        }
      ]
    }
  ]
}

Cmd + SpaceでSpotlightが起動するが、そのときに「英数」キーの入力も送信する、という内容。

Karabiner-Elementsの「Complex Modifications」→「Rules」→「Add rule」から、「Spotlight起動時にIMEを英数にする」欄にある「Enable」をクリックして、設定を追加する。

追加直後はうまく動かなかったりするかもしれないけど、何度かSpotlightを表示/非表示したり、Karabiner-Elementsを再起動したりすると、ちゃんと動くはず。

これでAlfredと同じように、Spotlightを起動すると絶対に半角英数字が入力できるようになった。Spotlightを起動したら絶対に左Cmd(「英数」キー)を押していたけど、その一動作がなくなっただけでとても快適になった。

その他に有効にしているルール

Karabiner-Elements complex_modifications rules

上記のサイトから、様々なComplex Modificationsのルールを追加することができる。

以前にKarabinerでも設定したいたのと同じ設定を追加してみた。

  • セミコロンとコロンを入れ替える
  • 左右のCmdを単体で押したときに「英数/かな」入力にする
  • Cmd + Qを素早く2回押さないとアプリケーションを終了できないようにする

これだけでMacがめちゃくちゃ使いやすくなるので、おすすめである。


Hammerspoonで英数/かなの切り替えを設定していたときは、Cmdキーをしっかり押し終わってから文字入力をしないと、意図しないCmd + ◯なキーボードショートカットが発動していたりして不便だった。Karabiner-Elementsでの設定だと、結構素早く入力してもあまり暴発をしない印象があり、今の所大変快適。

JSONの追加ではなく、GUIで設定できるとより敷居も下がるだろうし、今後の開発に期待したい。