-
-
Save babyking/5053337 to your computer and use it in GitHub Desktop.
keyremap4macbook配置文件.主要将capslock键映射到一个虚拟键F19, 以这个F19做最终的功能键扩展. 与目前的ctrl shift option command自带的组合快捷键,均不冲突!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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