Created
January 29, 2026 20:51
-
-
Save andreyka26-git/0505e58e1eff8890f2040fc0e127396b to your computer and use it in GitHub Desktop.
Karabiner vim setup (mac)
This file contains hidden or 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
| { | |
| "description": "Windows Keyboard Fix + Vim Navigation (Caps/Right-Alt)", | |
| "manipulators": [ | |
| { | |
| "description": "Caps Lock: Hold for Vim Mode, Tap for Escape", | |
| "from": { | |
| "key_code": "caps_lock", | |
| "modifiers": { "optional": ["any"] } | |
| }, | |
| "to": [{ "set_variable": { "name": "vim_mode", "value": 1 } }], | |
| "to_after_key_up": [{ "set_variable": { "name": "vim_mode", "value": 0 } }], | |
| "to_if_alone": [{ "key_code": "escape" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "description": "Vim Navigation (HJKL, U/D, W/B, 4/-)", | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "h", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "left_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "j", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "down_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "k", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "up_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "l", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "right_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "u", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "page_up" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "d", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "page_down" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "w", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "right_arrow", "modifiers": ["left_option"] }], | |
| "type": "basic" | |
| }, | |
| { | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "b", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "left_arrow", "modifiers": ["left_option"] }], | |
| "type": "basic" | |
| }, | |
| { | |
| "description": "Caps + 4: End of Line", | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "4", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "right_arrow", "modifiers": ["left_command"] }], | |
| "type": "basic" | |
| }, | |
| { | |
| "description": "Caps + Hyphen: Start of Line", | |
| "conditions": [{ "name": "vim_mode", "type": "variable_if", "value": 1 }], | |
| "from": { "key_code": "hyphen", "modifiers": { "optional": ["any"] } }, | |
| "to": [{ "key_code": "left_arrow", "modifiers": ["left_command"] }], | |
| "type": "basic" | |
| }, | |
| { | |
| "description": "Right Command (Right Alt) Navigation", | |
| "from": { | |
| "key_code": "h", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "left_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "from": { | |
| "key_code": "j", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "down_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "from": { | |
| "key_code": "k", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "up_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "from": { | |
| "key_code": "l", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "right_arrow" }], | |
| "type": "basic" | |
| }, | |
| { | |
| "from": { | |
| "key_code": "4", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "right_arrow", "modifiers": ["left_command"] }], | |
| "type": "basic" | |
| }, | |
| { | |
| "from": { | |
| "key_code": "hyphen", | |
| "modifiers": { "mandatory": ["right_command"], "optional": ["any"] } | |
| }, | |
| "to": [{ "key_code": "left_arrow", "modifiers": ["left_command"] }], | |
| "type": "basic" | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment