Skip to content

Instantly share code, notes, and snippets.

@babyking
Forked from lucifr/private.xml
Last active December 14, 2015 07:49
Show Gist options
  • Save babyking/5053337 to your computer and use it in GitHub Desktop.
Save babyking/5053337 to your computer and use it in GitHub Desktop.
keyremap4macbook配置文件.主要将capslock键映射到一个虚拟键F19, 以这个F19做最终的功能键扩展. 与目前的ctrl shift option command自带的组合快捷键,均不冲突!
<root>
<!--
<devicevendordef>
<vendorname>thinkpad_trackpoint</vendorname>
<vendorid>0x17ef</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>my_thinkpad_trackpoint</productname>
<productid>0x6009</productid>
</deviceproductdef>
-->
<replacementdef>
<replacementname>HyperModifierFlag</replacementname>
<replacementvalue>ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L</replacementvalue>
</replacementdef>
<replacementdef>
<replacementname>HyperModifierFlagExceptCommand</replacementname>
<replacementvalue>ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L</replacementvalue>
</replacementdef>
<replacementdef>
<replacementname>PcAppModifierFlag</replacementname>
<replacementvalue>ModifierFlag::CONTROL_L | ModifierFlag::CONTROL_R</replacementvalue>
</replacementdef>
<appdef>
<appname>CHROME</appname>
<equal>com.google.Chrome</equal>
</appdef>
<appdef>
<appname>EMACS</appname>
<equal>org.gnu.Emacs</equal>
</appdef>
<item>
<name>单击capslock发送esc(capslock已映射为F19)</name>
<identifier>private.capslockclick2esc</identifier>
<autogen>
--KeyOverlaidModifier--
KeyCode::F19,
KeyCode::COMMAND_L,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::ESCAPE
</autogen>
</item>
<item>
<name>单击左shift切换输入法,单击右shift切换大小写</name>
<identifier>private.remap.shiftL2shiftL_capslock</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::SPACE,ModifierFlag::OPTION_L</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_R, KeyCode::SHIFT_R, KeyCode::SPACE,ModifierFlag::OPTION_L</autogen>
<!--<autogen>__KeyOverlaidModifier__ KeyCode::SHIFT_R, KeyCode::SHIFT_R, KeyCode::CAPSLOCK</autogen>-->
</item>
<item>
<name>copy cut paste</name>
<appendix>通过ctrl c x v 映射到 cmd + c x v 实现copy cut paste</appendix>
<identifier>private.copy_cut_paste.def</identifier>
<autogen>--KeyToKey-- KeyCode::C, {{HyperModifierFlag}}, KeyCode::C, ModifierFlag::COMMAND_L </autogen>
<autogen>--KeyToKey-- KeyCode::X, {{HyperModifierFlag}}, KeyCode::X, ModifierFlag::COMMAND_L </autogen>
<autogen>--KeyToKey-- KeyCode::V, {{HyperModifierFlag}}, KeyCode::V, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>定位,包括hjkl,PgUp,PgDn</name>
<item>
<name>Hyper+J To Down</name>
<appendix>Hyper(cmd+ctrl+shift+opt)+J, send down</appendix>
<identifier>private.hyperj2down</identifier>
<autogen>
--KeyToKey--
KeyCode::J,{{HyperModifierFlag}},
KeyCode::CURSOR_DOWN
</autogen>
</item>
<item>
<name>Hyper+K To Up</name>
<appendix>Hyper(cmd+ctrl+shift+opt)+k, send up</appendix>
<identifier>private.hyperk2up</identifier>
<autogen>
--KeyToKey--
KeyCode::K,{{HyperModifierFlag}},
KeyCode::CURSOR_UP
</autogen>
</item>
<item>
<name>Hyper+H To Left</name>
<appendix>Hyper(cmd+ctrl+shift+opt)+h, send left</appendix>
<identifier>private.hyperh2left</identifier>
<autogen>
--KeyToKey--
KeyCode::H, {{HyperModifierFlag}},
KeyCode::CURSOR_LEFT
</autogen>
</item>
<item>
<name>Hyper+L To Right</name>
<appendix>Hyper(cmd+ctrl+shift+opt)+l, send right</appendix>
<identifier>private.hyperl2right</identifier>
<autogen>
--KeyToKey--
KeyCode::L, {{HyperModifierFlag}},
KeyCode::CURSOR_RIGHT
</autogen>
</item>
<item>
<name>Hyper+I To PgUp,Hyper+U To PgDn</name>
<identifier>private.hyperui2pageupdonw</identifier>
<autogen> --KeyToKey-- KeyCode::I, {{HyperModifierFlag}}, KeyCode::PAGEUP </autogen>
<autogen> --KeyToKey-- KeyCode::U, {{HyperModifierFlag}}, KeyCode::PAGEDOWN </autogen>
</item>
</item>
<item>
<name>常用的快捷键盘的映射</name>
<appendix>hyper+ f,s,f,w,q,z....</appendix>
<item>
<name>Del</name>
<appendix>ctrl+d=>FDel ctrl+,=>FDel ctrl+.=>BDel </appendix>
<identifier>private.del.def</identifier>
<autogen> --KeyToKey-- KeyCode::D, {{HyperModifierFlag}}, KeyCode::FORWARD_DELETE </autogen>
<autogen> --KeyToKey-- KeyCode::COMMA, {{HyperModifierFlag}}, KeyCode::FORWARD_DELETE </autogen>
<autogen>--KeyToKey-- KeyCode::DOT, {{HyperModifierFlag}}, KeyCode::DELETE</autogen>
</item>
<item>
<name>capslock</name>
<appendix>ctrl+'=> capslock</appendix>
<identifier>private.capslock.def</identifier>
<autogen>--KeyToKey-- KeyCode::QUOTE,ModifierFlag::CONTROL_L,KeyCode::CAPSLOCK </autogen>
<autogen>--KeyToKey-- KeyCode::X,ModifierFlag::OPTION_L,KeyCode::CAPSLOCK</autogen>
</item>
<item>
<name>Enter</name>
<appendix>ctrl+;|j => enter</appendix>
<identifier>private.enter.def</identifier>
<autogen>--KeyToKey-- KeyCode::SEMICOLON, {{HyperModifierFlag}}, KeyCode::ENTER </autogen>
<autogen>--KeyToKey-- KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::ENTER </autogen>
</item>
<item>
<name>hyper+q</name>
<identifier>private.common_shortcuts_q.def</identifier>
<autogen>--KeyToKey-- KeyCode::Q,{{HyperModifierFlag}}, KeyCode::Q, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+w</name>
<identifier>private.common_shortcuts_w.def</identifier>
<autogen>--KeyToKey-- KeyCode::W,{{HyperModifierFlag}}, KeyCode::W, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+f</name>
<identifier>private.common_shortcuts_f.def</identifier>
<autogen>--KeyToKey-- KeyCode::F,{{HyperModifierFlag}}, KeyCode::F, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+s</name>
<identifier>private.common_shortcuts_s.def</identifier>
<autogen>--KeyToKey-- KeyCode::S,{{HyperModifierFlag}}, KeyCode::S, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+z</name>
<identifier>private.common_shortcuts_z.def</identifier>
<autogen>--KeyToKey-- KeyCode::Z,{{HyperModifierFlag}}, KeyCode::Z, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+a</name>
<identifier>private.common_shortcuts_a.def</identifier>
<autogen>--KeyToKey-- KeyCode::A,{{HyperModifierFlag}}, KeyCode::A, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name>hyper+space=>cmd+tab</name>
<identifier>private.common_shortcuts_cmd_space.def</identifier>
<autogen>--KeyToKey-- KeyCode::SPACE,{{HyperModifierFlag}}, KeyCode::TAB, ModifierFlag::COMMAND_L </autogen>
</item>
<item>
<name> shift + 空格 => 切换输入法</name>
<identifier>private.common_shortcuts_shift_space.def</identifier>
<autogen>--KeyToKey-- KeyCode::SPACE, ModifierFlag::SHIFT_L, KeyCode::SPACE, ModifierFlag::OPTION_L</autogen>
</item>
</item>
<item>
<name>长按某键功能映射(在特定应用)</name>
<appendix>w=>关闭tab</appendix>
<item>
<name>Chrome</name>
<identifier>private.holding_key_for_chrome</identifier>
<only>CHROME</only>
<autogen>__HoldingKeyToKey__ KeyCode::W, ModifierFlag::NONE, KeyCode::W, KeyCode::VK_NONE, KeyCode::W, ModifierFlag::COMMAND_L, Option::NOREPEAT</autogen>
</item>
</item>
<item>
<name>长按某键功能映射(全局)</name>
<item>
<name>长按space=>cmd+space 用于触发alfred</name>
<identifier>private.holding_key_for_space</identifier>
<autogen>__HoldingKeyToKey__ KeyCode::SPACE, ModifierFlag::NONE, KeyCode::SPACE, KeyCode::VK_NONE, KeyCode::SPACE, ModifierFlag::COMMAND_L, Option::NOREPEAT</autogen>
</item>
<item>
<name>长按Tab=>ctrl,单独发送Tab</name>
<identifier>private.holding_key_for_tab</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::TAB, KeyCode::CONTROL_L, KeyCode::TAB</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::BACKSLASH, KeyCode::CONTROL_L, KeyCode::BACKSLASH</autogen>
</item>
<item>
<name>长按字母键将其转换大写</name>
<identifier>private.holding_key_for_abc</identifier>
<not>EMACS</not>
<autogen>__HoldingKeyToKey__ KeyCode::A, ModifierFlag::NONE, KeyCode::A, KeyCode::VK_NONE, KeyCode::A, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::B, ModifierFlag::NONE, KeyCode::B, KeyCode::VK_NONE, KeyCode::B, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::C, ModifierFlag::NONE, KeyCode::C, KeyCode::VK_NONE, KeyCode::C, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::D, ModifierFlag::NONE, KeyCode::D, KeyCode::VK_NONE, KeyCode::D, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::E, ModifierFlag::NONE, KeyCode::E, KeyCode::VK_NONE, KeyCode::E, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::F, ModifierFlag::NONE, KeyCode::F, KeyCode::VK_NONE, KeyCode::F, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::G, ModifierFlag::NONE, KeyCode::G, KeyCode::VK_NONE, KeyCode::G, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::H, ModifierFlag::NONE, KeyCode::H, KeyCode::VK_NONE, KeyCode::H, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::I, ModifierFlag::NONE, KeyCode::I, KeyCode::VK_NONE, KeyCode::I, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::J, ModifierFlag::NONE, KeyCode::J, KeyCode::VK_NONE, KeyCode::J, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::K, ModifierFlag::NONE, KeyCode::K, KeyCode::VK_NONE, KeyCode::K, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::L, ModifierFlag::NONE, KeyCode::L, KeyCode::VK_NONE, KeyCode::L, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::M, ModifierFlag::NONE, KeyCode::M, KeyCode::VK_NONE, KeyCode::M, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::N, ModifierFlag::NONE, KeyCode::N, KeyCode::VK_NONE, KeyCode::N, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::O, ModifierFlag::NONE, KeyCode::O, KeyCode::VK_NONE, KeyCode::O, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::P, ModifierFlag::NONE, KeyCode::P, KeyCode::VK_NONE, KeyCode::P, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::Q, ModifierFlag::NONE, KeyCode::Q, KeyCode::VK_NONE, KeyCode::Q, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::R, ModifierFlag::NONE, KeyCode::R, KeyCode::VK_NONE, KeyCode::R, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::S, ModifierFlag::NONE, KeyCode::S, KeyCode::VK_NONE, KeyCode::S, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::T, ModifierFlag::NONE, KeyCode::T, KeyCode::VK_NONE, KeyCode::T, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::U, ModifierFlag::NONE, KeyCode::U, KeyCode::VK_NONE, KeyCode::U, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::V, ModifierFlag::NONE, KeyCode::V, KeyCode::VK_NONE, KeyCode::V, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::W, ModifierFlag::NONE, KeyCode::W, KeyCode::VK_NONE, KeyCode::W, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::X, ModifierFlag::NONE, KeyCode::X, KeyCode::VK_NONE, KeyCode::X, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::Y, ModifierFlag::NONE, KeyCode::Y, KeyCode::VK_NONE, KeyCode::Y, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::Z, ModifierFlag::NONE, KeyCode::Z, KeyCode::VK_NONE, KeyCode::Z, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_1, ModifierFlag::NONE, KeyCode::KEY_1, KeyCode::VK_NONE, KeyCode::KEY_1, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_2, ModifierFlag::NONE, KeyCode::KEY_2, KeyCode::VK_NONE, KeyCode::KEY_2, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_3, ModifierFlag::NONE, KeyCode::KEY_3, KeyCode::VK_NONE, KeyCode::KEY_3, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_4, ModifierFlag::NONE, KeyCode::KEY_4, KeyCode::VK_NONE, KeyCode::KEY_4, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_5, ModifierFlag::NONE, KeyCode::KEY_5, KeyCode::VK_NONE, KeyCode::KEY_5, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_6, ModifierFlag::NONE, KeyCode::KEY_6, KeyCode::VK_NONE, KeyCode::KEY_6, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_7, ModifierFlag::NONE, KeyCode::KEY_7, KeyCode::VK_NONE, KeyCode::KEY_7, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_8, ModifierFlag::NONE, KeyCode::KEY_8, KeyCode::VK_NONE, KeyCode::KEY_8, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_9, ModifierFlag::NONE, KeyCode::KEY_9, KeyCode::VK_NONE, KeyCode::KEY_9, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::KEY_0, ModifierFlag::NONE, KeyCode::KEY_0, KeyCode::VK_NONE, KeyCode::KEY_0, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::BACKQUOTE, ModifierFlag::NONE, KeyCode::BACKQUOTE, KeyCode::VK_NONE, KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::MINUS, ModifierFlag::NONE, KeyCode::MINUS, KeyCode::VK_NONE, KeyCode::MINUS, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::EQUAL, ModifierFlag::NONE, KeyCode::EQUAL, KeyCode::VK_NONE, KeyCode::EQUAL, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::BRACKET_LEFT, ModifierFlag::NONE, KeyCode::BRACKET_LEFT, KeyCode::VK_NONE, KeyCode::BRACKET_LEFT, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::BRACKET_RIGHT, ModifierFlag::NONE, KeyCode::BRACKET_RIGHT, KeyCode::VK_NONE, KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::COMMA, ModifierFlag::NONE, KeyCode::COMMA, KeyCode::VK_NONE, KeyCode::COMMA, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::DOT, ModifierFlag::NONE, KeyCode::DOT, KeyCode::VK_NONE, KeyCode::DOT, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::SLASH, ModifierFlag::NONE, KeyCode::SLASH, KeyCode::VK_NONE, KeyCode::SLASH, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::BACKSLASH, ModifierFlag::NONE, KeyCode::BACKSLASH, KeyCode::VK_NONE, KeyCode::BACKSLASH, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::SEMICOLON, ModifierFlag::NONE, KeyCode::SEMICOLON, KeyCode::VK_NONE, KeyCode::SEMICOLON, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
<autogen>__HoldingKeyToKey__ KeyCode::QUOTE, ModifierFlag::NONE, KeyCode::QUOTE, KeyCode::VK_NONE, KeyCode::QUOTE, ModifierFlag::SHIFT_L, Option::NOREPEAT</autogen>
</item>
</item>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment