公式の設定みたいに設定の表示形式を階層構造にしたい時は、こうする ver7.5.0
<?xml version="1.0"?> <root> <list> <item> <name>ore setting</name> <list> <item> <name>hoge</name> <identifier>piyo</identifier> <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::DELETE</autogen> </item> </list> </item> </list> </root>
listタグを使ってitemタグを入れ子にするとできる
<item> <name>absolute ctrl+h to delete</name> <identifier>remap.absolute_ctrl_h_to_delete</identifier> <autogen> --KeyToKey-- KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::DELETE </autogen> </item>
ver7.3.0
この例では普通のキーのvに割り当て。
<item> <name>Shift_L x2 to v </name> <identifier>remap.hogehoge</identifier> <autogen> --DoublePressModifier-- KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::V </autogen> </item>
もっと詳細な話は Karabiner/キーを素早く2度押しする を参照
ver 7.3.0 この場合だと普通の入力aに対してshift+command+bを発生させる。
<autogen> --KeyToKey-- KeyCode::A, KeyCode::B, ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L </autogen>
ワンショットモデファイア。つまり何か別のキーと同時に押した時は通常の修飾キーとして働くが、単体で空打ちしたときは別のキーとして動作するというもの。
空打ちするという特性上、キーをアップした時に修飾キー以外として動くので、通常文章入力で使うような高速にタイピングするキーには割り当てることは現実的ではない
ワンショットモデファイアのカスタムはこうやるみたい
<item> <name>Shift_L to Shift_L</name> <appendix>(+ When you type shiftL only, send Space)</appendix> <identifier>remap.shiftL2shiftL_space</identifier> <autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::SPACE</autogen> </item>
かな英数のトグルは何かロジックがあるわけでなくそういうキーコードがるので指定するみたいだ。
<item> <name>Use KANA as KANA/EISUU (toggle)</name> <identifier>remap.jis_unify_eisuu_to_kana</identifier> <autogen> --KeyToKey-- KeyCode::JIS_KANA, KeyCode::VK_JIS_TOGGLE_EISUU_KANA </autogen> </item>
↑2つの合わせ技
<item> <name>L_shifta_as L_shift, L_shift only one shot as KANA/EISUU (toggle)</name> <identifier>remap.lshift_one_shot_kana_eisuu_toggle</identifier> <autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::VK_JIS_TOGGLE_EISUU_KANA</autogen> </item>
キーの無効化には特定の操作に何も動作しないキーコードを割り当てるとできるっぽい。
私の場合キーバインドの関係で暴発してよくブラウザのタブを閉じてしまうので右COMMANDでのコンビネーションだけ無効化してみた。 左はそのまま使えるので本当に閉じたいときはそっちを使う。
<item> <name>command_r + w stop working</name> <identifier>remap.command_r_w_stop_working</identifier> <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::COMMAND_R, KeyCode::VK_NONE</autogen> </item>