Skip to content

Instantly share code, notes, and snippets.

@bangedorrunt
Last active January 28, 2016 04:50
Show Gist options
  • Save bangedorrunt/bb26cc21050b60d2a0bf to your computer and use it in GitHub Desktop.
Save bangedorrunt/bb26cc21050b60d2a0bf to your computer and use it in GitHub Desktop.
Karabiner's private.xml
<?xml version="1.0"?>
<root>
<modifierdef>MY_HYPER</modifierdef>
<item>
<name>Remap Caps Lock to Hyper</name>
<appendix>OS X doesn't have a Hyper. This maps Left Control to Control + Shift + Option + Command.</appendix>
<identifier>caps_lock_to_hyper</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::F19,
KeyCode::COMMAND_L,
ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::ESCAPE
</autogen>
</item>
<item>
<name>Customise Vim Emulation</name>
<appendix>This is my personal Vim Emulation keybinding</appendix>
<item>
<name>Remap `Hyper+;` to Vim normal mode</name>
<identifier>remap.vim_emu_hyper_semicolon_toggles{{VIM_EMU_ALTCONFIG}}</identifier>
<only>{{VIM_EMU_ONLY_APPS}}</only>
<not>{{VIM_EMU_IGNORE_APPS}}, SUBLIMETEXT</not>
<block>
<block> <!-- Vim Mode -->
<config_only>notsave.vim_emu{{VIM_EMU_ALTCONFIG}}</config_only>
<autogen> <!-- Other case -->
__KeyToKey__
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
{{VIM_EMU_FORCE_OFF_ALL_BUT_LINE}}
</autogen>
</block>
<block> <!-- Complement Mode -->
<config_only>notsave.vim_emu_complement{{VIM_EMU_ALTCONFIG}}</config_only>
<autogen>
__KeyToKey__
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::RETURN,
KeyCode::VK_CONFIG_FORCE_OFF_notsave_vim_emu_complement{{VIM_EMU_ALTCONFIG}},
KeyCode::VK_CONFIG_FORCE_ON_notsave_vim_emu_normal{{VIM_EMU_ALTCONFIG}},
</autogen>
</block>
<block> <!-- Search Mode -->
<config_only>notsave.vim_emu_search{{VIM_EMU_ALTCONFIG}}</config_only>
<autogen>
__KeyToKey__
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::ESCAPE,
KeyCode::VK_CONFIG_FORCE_OFF_notsave_vim_emu_search{{VIM_EMU_ALTCONFIG}},
{{VIM_EMU_EMU_ON}}
KeyCode::VK_CONFIG_FORCE_ON_notsave_vim_emu_normal{{VIM_EMU_ALTCONFIG}},
</autogen>
</block>
<block> <!-- Turn Off also IME if enabled -->
<inputsource_only>JAPANESE</inputsource_only>
<autogen>
__KeyToKey__
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH,
KeyCode::VK_CHANGE_INPUTSOURCE_JAPANESE,
KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH,
{{VIM_EMU_FORCE_ON_NORMAL_MODE}}
</autogen>
</block>
<autogen> <!-- Other case -->
__KeyToKey__
KeyCode::SEMICOLON,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
{{VIM_EMU_FORCE_ON_NORMAL_MODE}}
</autogen>
</block>
</item>
<item>
<name>Reset at Alfred app `COMMAND+SPACE`</name>
<identifier>remap.vim_emu_off_at_alfred{{VIM_EMU_ALTCONFIG}}</identifier>
<config_only>notsave.vim_emu_using{{VIM_EMU_ALTCONFIG}}</config_only>
<autogen>
__KeyToKey__
KeyCode::SPACE,
VK_COMMAND | ModifierFlag::NONE,
{{VIM_EMU_FORCE_OFF_ALL_BUT_LINE}},
KeyCode::SPACE, VK_COMMAND
</autogen>
</item>
<item>
<name>Remap Vim navigation keys with Hyper</name>
<appendix>Change `Hyper+H`, `Hyper+J`, `Hyper+K`, `Hyper+L` to `hjkl` respectively</appendix>
<identifier>hyper_with_vim_navigation</identifier>
<not>SUBLIMETEXT</not>
<autogen>
__KeyToKey__
KeyCode::J,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_DOWN
</autogen>
<autogen>
__KeyToKey__
KeyCode::K,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_UP
</autogen>
<autogen>
__KeyToKey__
KeyCode::H,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_LEFT
</autogen>
<autogen>
__KeyToKey__
KeyCode::L,
ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT
</autogen>
</item>
</item>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment