Karabiner で独自のカスタムな設定を作る

はじめに

もともと Karabiner は利用していたものの、独自のカスタムな設定はしていなかったので、いくつか作ってみた。やり方はすべて 公式ドキュメント に載っていたので、それを参考にした。で、いくつか紹介。

Spotlight を起動したら IME をオフにする

<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>Turn off the IME when start Spotlight</name>
      <identifier>private.auto_ime_off</identifier>
      <autogen>
        __KeyToKey__
        KeyCode::SPACE, ModifierFlag::CONTROL_L,
        KeyCode::JIS_EISUU,
        KeyCode::SPACE, ModifierFlag::CONTROL_L,
      </autogen>
    </item>
  </list>
</root>

ブラウザで何かいろいろ検索したあと Spotlight を起動すると IME が ON のままになっていてイラっとすることがよくある。それを改善できる。

Control + [ を Esc にする

<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>Control_L+[ to Escape</name>
      <identifier>private.control_bracket_right_to_escape</identifier>
      <autogen>
        __KeyToKey__
        KeyCode::BRACKET_RIGHT, ModifierFlag::CONTROL_L,
        KeyCode::ESCAPE
      </autogen>
    </item>
</root>

ダイアログなどが出たときに Cancel ボタンを押すのがめんどくさいのでそれを Control + [ で閉じることができる。Esc キーは遠い。

Control + W でひとつ手前の単語を削除

<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>Control_L+W to Option+Delete</name>
      <identifier>private.control_w_to_option_delete</identifier>
      <autogen>
        __KeyToKey__ KeyCode::W, ModifierFlag::CONTROL_L,
        KeyCode::DELETE, ModifierFlag::OPTION_L
      </autogen>
      <not>TERMINAL</not>
    </item>
  </list>
</root>

Terminal や MacVim などがこの感じになっていて、それをブラウザでもどこでも使えるように改善。Google Chrome だとデフォルトでは Option + Delete で同じことができる。Terminal でもこの設定を許可すると一文字削除になってしまうので <not></not> で省いている。Delete キーは遠い。

Finder 上で Control + Command + N で新規テキストファイルを作成

<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>Control_L+Command_L+N to create a new text file</name>
      <identifier>private.create_new_file</identifier>
      <vkopenurldef>
        <name>KeyCode::VK_OPEN_URL_CREATE_NEW_FILE</name>
        <url type="shell"><![CDATA[
          cd $(osascript -e '
            tell application "Finder"
              get POSIX path of (target of window 1 as alias)
            end tell
          ')
          touch newfile.txt
        ]]></url>
      </vkopenurldef>
      <autogen>
        __KeyToKey__
        KeyCode::N, ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L,
        KeyCode::VK_OPEN_URL_CREATE_NEW_FILE
      </autogen>
      <only>FINDER</only>
    </item>
  </list>
</root>

今まで BetterTouchTool で同じようなことをしていたが Karabiner でもできるようだったので移行した。

その他

その他には「英数キー」で IME の ON/OFF をトグルしたり、「かなキー」がリターンキーになっていたりする。これは Karabiner にもともとある項目で設定できる。リターンキーは遠いし、強くタイピングしがちなのでおすすめ。