Skip to content

Instantly share code, notes, and snippets.

@TomoakiNagahara
Last active August 29, 2015 14:11
Show Gist options
  • Save TomoakiNagahara/060bbd7129b98aedf4bd to your computer and use it in GitHub Desktop.
Save TomoakiNagahara/060bbd7129b98aedf4bd to your computer and use it in GitHub Desktop.
Karabiner (Old name is Keyremap4macbook) Manipulate the mouse cursor on the keyboard.
<?xml version="1.0"?>
<root>
<item>
<name>Mouse Keys Mode Custom</name>
<appendix>You can move mouse pointer by d+hjkl keys, and scroll by d+s+hjkl keys.</appendix>
<appendix></appendix>
<appendix>Usage:</appendix>
<appendix></appendix>
<appendix>Move pointer by:</appendix>
<appendix><![CDATA[ * Left: D down -> L down -> H up ]]></appendix>
<appendix><![CDATA[ * Down: D down -> K down -> J up ]]></appendix>
<appendix><![CDATA[ * Up: D down -> I down -> K up ]]></appendix>
<appendix><![CDATA[ * Right: D down -> J down -> L up ]]></appendix>
<appendix></appendix>
<appendix>The ijkl keys also act as mouse keys when you hold d+ijkl keys down.</appendix>
<appendix>(You can adjust timeout by "__BlockUntilKeyUp__ Timeout" in "Key Repeat" tab.</appendix>
<appendix></appendix>
<appendix>Use S key to enable scroll. ("S"croll)</appendix>
<appendix>* D+S+IJKL: Scroll wheel.</appendix>
<appendix></appendix>
<appendix>Use F key to increase speed. ("F"ast)</appendix>
<appendix>* D+F+IJKL: High-speed movement.</appendix>
<appendix>* D+F+S+IJKL: High-speed scroll wheel.</appendix>
<appendix></appendix>
<appendix>Click by:</appendix>
<appendix>* D+N: Left click.</appendix>
<appendix>* D+B: Middle click.</appendix>
<appendix>* D+M: Right click.</appendix>
<appendix></appendix>
<appendix>Warp cursor position:</appendix>
<appendix>* D+I: Move mouse cursor to the center of the frontmost app's window.</appendix>
<identifier>private.mouse_keys_mode_c</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::D, ModifierFlag::NONE,
@begin
KeyCode::VK_CONFIG_SYNC_KEYDOWNUP_notsave_mouse_keys_mode_c,
@end
@begin
KeyCode::D,
@end
</autogen>
</item>
<item hidden="true">
<identifier vk_config="true">notsave.mouse_keys_mode_c</identifier>
{{ MOUSE_KEYS_MODE_2_EXTRA }}
<autogen>
__BlockUntilKeyUp__ KeyCode::D
</autogen>
<!-- scroll -->
<block>
<modifier_only>ModifierFlag::MOUSE_KEYS_MODE_2_SCROLL</modifier_only>
<autogen>
__KeyToKey__
KeyCode::H,
KeyCode::VK_MOUSEKEY_SCROLL_LEFT,
</autogen>
<autogen>
__KeyToKey__
KeyCode::K,
KeyCode::VK_MOUSEKEY_SCROLL_DOWN,
</autogen>
<autogen>
__KeyToKey__
KeyCode::I,
KeyCode::VK_MOUSEKEY_SCROLL_UP,
</autogen>
<autogen>
__KeyToKey__
KeyCode::H,
KeyCode::VK_MOUSEKEY_SCROLL_RIGHT,
</autogen>
</block>
<!-- mouse move -->
<autogen>__KeyToKey__ KeyCode::J, KeyCode::VK_MOUSEKEY_LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::K, KeyCode::VK_MOUSEKEY_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::I, KeyCode::VK_MOUSEKEY_UP</autogen>
<autogen>__KeyToKey__ KeyCode::L, KeyCode::VK_MOUSEKEY_RIGHT</autogen>
<!-- other -->
<autogen>__KeyToKey__ KeyCode::S, KeyCode::VK_MODIFIER_MOUSE_KEYS_MODE_2_SCROLL</autogen>
<autogen>__KeyToKey__ KeyCode::F, KeyCode::VK_MOUSEKEY_HIGHSPEED</autogen>
<!-- click -->
<autogen>__KeyToKey__ KeyCode::N, PointingButton::LEFT</autogen>
<autogen>__KeyToKey__ KeyCode::B, PointingButton::MIDDLE</autogen>
<autogen>__KeyToKey__ KeyCode::M, PointingButton::RIGHT</autogen>
<!-- warp cursor position -->
<autogen>__KeyToKey__ KeyCode::H, KeyCode::VK_OPEN_URL_SHELL_warp_mouse_cursor_position_front_window_center</autogen>
</item>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment