Karabinerのprivate.xmlを設定してみる
Karabinerのprivate.xmlを設定してみる。
private.xml
[Misc & Uninstall]メニューの[Open private.xml]のボタンを押し、
基本的に、下記のような感じで記入していく。
<?xml version="1.0"?> <root> <item> <name>設定名</name> <identifier>この設定のID(「private.XXXXX」の形式で記述するのが推奨されてるみたい)</identifier> <autogen>設定内容</autogen> ・・・ </item> ・・・ </root>
詳しくは公式のマニュアルに載っている(英語)。
private.xml Reference Manual https://pqrs.org/osx/karabiner/xml.html.ja
キーコードは下記にまとまっている。
KeyCode https://github.com/tekezo/Karabiner/blob/master/src/bridge/generator/keycode/data/KeyCode.data ModifierFlag https://github.com/tekezo/Karabiner/blob/master/src/bridge/generator/keycode/data/ModifierFlag.data
最初からある設定を見たい場合は、下記に各設定のXMLがある。
Karabiner/src/core/server/Resources/include/checkbox https://github.com/tekezo/Karabiner/tree/master/src/core/server/Resources/include/checkbox
以下、設定例
キーの変換
Aを押すと、Bが入力される。
<autogen> __KeyToKey__ KeyCode::A, KeyCode::B </autogen>
Control+Aを押すと、Command+Aが入力される。
<autogen> __KeyToKey__ KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::A, ModifierFlag::COMMAND_L </autogen>
Control+Shift+Aを押すと、Command+Shift+Aが入力される。
<autogen> __KeyToKey__ KeyCode::A, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::A, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L </autogen>
ControlとCommandを入れ替える。
<autogen> __KeyToKey__ KeyCode::CONTROL_L, KeyCode::COMMAND_L </autogen> <autogen> __KeyToKey__ KeyCode::COMMAND_L, KeyCode::CONTROL_L </autogen>
ワンショットモディファイア
Aを単体で押した場合はAが入力され、 Aと別のキーを押した場合は、Commandキーとして働く。
<autogen> __KeyOverlaidModifier__ KeyCode::A, KeyCode::COMMAND_L, KeyCode::A </autogen>
Controlと別のキーを一緒に押した場合は、Controlとして機能し、 Control単体で押した場合は、Command+Aになる。
<autogen> __KeyOverlaidModifier__ KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::A, ModifierFlag::COMMAND_L </autogen>
連打
「A」を押すと、「B」が入力される。 「AA」と連続で押すと、「BBC」と入力される。
<autogen> __DoublePressModifier__ KeyCode::A, KeyCode::B, KeyCode::C, </autogen>
Control連打でCommand+Aが入力される。
<autogen> __DoublePressModifier__ KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::A, ModifierFlag::COMMAND_L </autogen>
URLを開く
Aを押すと、Yahoo!のサイトが開く。
<vkopenurldef> <name>KeyCode::VK_OPEN_URL_WEB_Yahoo</name> <url>http://www.yahoo.co.jp</url> </vkopenurldef> <autogen> __KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_WEB_Yahoo </autogen>
Aを押すと、Atomのエディタが起動する。
<vkopenurldef> <name>KeyCode::VK_OPEN_URL_APP_Atom</name> <url type="file">/Applications/Atom.app</url> </vkopenurldef> <autogen> __KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_APP_Atom </autogen>
Aを押すと、ファイルが開く。
<vkopenurldef> <name>KeyCode::VK_OPEN_URL_SHELL_FileOpen</name> <url type="shell"> <![CDATA[ open hoge.txt ]]> </url> </vkopenurldef> <autogen> __KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_FileOpen </autogen>
特定のアプリケーション
onlyタグにアプリ名を指定すると、そのアプリのみ対象となり、
notタグにアプリ名を指定すると、そのアプリのみ対象外となる。
指定できるアプリ名は、たぶん下記に定義されてるやつだと思われる。
appdef.xml https://github.com/tekezo/Karabiner/blob/master/src/core/server/Resources/appdef.xml
<only>GOOGLE_CHROME, FIREFOX</only> <autogen> __KeyToKey__ KeyCode::A, KeyCode::B </autogen>
<not>GOOGLE_CHROME, FIREFOX</not> <autogen> __KeyToKey__ KeyCode::A, KeyCode::B </autogen>
定義されていないアプリケーションの場合は、
Karabinerのメニューから、EventViewrを起動して、
下記のような感じで定義を追加すればOK。
<appdef> <appname>APPSTORE</appname> <equal>com.apple.appstore</equal> </appdef>