Karabinerのプロファイルをショートカットキーで切り替える


対象読者

Mac使いで、Karabinerを使っていて、プロファイル結構頻繁に変える人

はじめに

Karabiner便利ですよね。
普段Mac使いだけど、好みのキーボードがWindows用しか無いんじゃあ!って感じでWindows用キーボード使ってる人には欠かせないソフトでしょう。

私はKarabinerでMac本体にくっついてるキーボードを打つときと、キーボードを接続してる時でプロファイルを変更する様にしているんだけど、職場で自席ではキーボードを接続、席を外すときはキーボードを外す、ってシーンがまぁまぁあって、その時プロファイルを変更するの忘れて、コピペしようとした時に「ç」とか「√」みたいな謎の文字が出現する、ってパターンがそれなりに多い。(Command keyとOption keyを入れ替えてるため)

せっかく文字打とうとしてるのにいちいちメニューバーからプロファイルを変えるのも鬱陶しいから、ショートカットキーで切り替えたいんじゃあ、って思って設定探したけど、どうやらデフォルトだとそんなショートカットは用意されてない模様。

ググったらこんな記事が見つかった。

私は↓の2つのプロファイルしか使わないので、これらをtoggleで切り替えられる用にする。

環境

  • Mac OS X 10.11.4 El Capitan
  • Karabiner 10.18.0

設定方法

メニュー->Karabiner->Preference->Misc & Uninstall->Open private.xml

private.xml
<?xml version="1.0"?>
<root>
    <vkopenurldef>
        <name>KeyCode::VK_OPEN_URL_SHELL_switchprofile_default</name>
        <url type="shell">
            <![CDATA[    /Applications/Karabiner.app/Contents/Library/bin/karabiner select_by_name Default; osascript -e 'display notification "Switch to Default" with title "Karabiner"'    ]]>
        </url>
    </vkopenurldef>
    <item>
        <name>Switch Profile to Default with F4</name>
        <identifier>private.switch1</identifier>
        <autogen>
            __KeyToKey__
            KeyCode::F4,
            KeyCode::VK_OPEN_URL_SHELL_switchprofile_default
        </autogen>
    </item>
    <vkopenurldef>
        <name>KeyCode::VK_OPEN_URL_SHELL_switchprofile_majestouch</name>
        <url type="shell">
            <![CDATA[    /Applications/Karabiner.app/Contents/Library/bin/karabiner select_by_name Majestouch; osascript -e 'display notification "Switch to Majestouch" with title "Karabiner"'   ]]>
        </url>
    </vkopenurldef>
    <item>
        <name>Switch Profile to Majestouch with F4</name>
        <identifier>private.switch2</identifier>
        <autogen>
            __KeyToKey__
            KeyCode::F4,
            KeyCode::VK_OPEN_URL_SHELL_switchprofile_majestouch
        </autogen>
    </item>
</root>

F4キーでそれぞれDefaultプロファイルとMajestouchプロファイルに変更する2つの設定を用意する。ショートカットキーをどこにあてるかはお好みで。
てかKarabinerでshell書けるの初めて知った。なんでも出来るなこいつ。

Preference->Change Keys->Reload XML

でXMLをリロードして、Defaultプロファイルには"Switch Profile to Majestouch with F4"を、Majestouchプロファイルには"Switch Profile to Default with F4"をそれぞれ割り当てる。

Defaultプロファイルの設定がこんな感じ↓ Majestouchプロファイルは上だけチェック。

これでOK。

切り替わったかがわかりにくかったので、通知を出すようにした。

鬱陶しい場合は、private.xmlの
osascript -e 'display notification "Switch to Majestouch" with title "Karabiner"'
のあたりを消せば良い。

これでキーボードだけでキーボード切り替えが出来るぞ!やったね!