Last active
March 1, 2019 14:10
-
-
Save b6pzeusbc54tvhw5jgpyw8pwz2x6gs/4b92a62269233696d85e61814ed9dc1b to your computer and use it in GitHub Desktop.
~/.config/karabiner/assets/complex_modifications/
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
{ | |
"title": "alone modified key (@aluc)", | |
"rules": [ | |
{ | |
"description": "Change left control to esc if alone", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_control", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"conditions": [ | |
{ | |
"type": "device_if", | |
"identifiers": [ | |
{ | |
"product_id": 256, | |
"vendor_id": 2131 | |
}, | |
{ | |
"product_id": 514, | |
"vendor_id": 1278 | |
}, | |
{ | |
"product_id": 34050, | |
"vendor_id": 2652 | |
} | |
] | |
} | |
], | |
"to": [ | |
{ | |
"key_code": "left_control" | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "escape" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Change caps_lock key to command+control+option+shift if pressed with other keys", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "caps_lock", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_shift", | |
"modifiers": [ | |
"left_command", | |
"left_control", | |
"left_option" | |
] | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"hold_down_milliseconds": 100, | |
"key_code": "caps_lock" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Change left_command to f19 if alone", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_command", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_command" | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "f19" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Change left_option to f18 if alone", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_option", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_option" | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "f18" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Change right_option to f17 if alone", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_option", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_option" | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "f17" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Change right_command to f16 if alone", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_command", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_command" | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "f16" | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
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
{ | |
"title": "Numeric Keypad (@aluc)", | |
"rules": [ | |
{ | |
"description": "Numeric Keypad Trigger [Tab as trigger key]", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "tab" | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
} | |
], | |
"to_if_alone": [ | |
{ | |
"key_code": "tab" | |
} | |
], | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "numeric_keypad_mode", | |
"value": 0 | |
} | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Numeric Keypad Mode [n as 0]", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "7" | |
}, | |
"to": [ | |
{ | |
"key_code": "delete_or_backspace" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "8" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_equal_sign" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "9" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_slash" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "0" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_asterisk" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "u" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_7" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "i" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_8" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "o" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_9" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "p" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_hyphen" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "j" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_4" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "k" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_5" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "l" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_6" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "semicolon" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_plus" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "m" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_1" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "comma" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_2" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "period" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_3" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "slash" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_enter" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "n" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_0" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_option" | |
}, | |
"to": [ | |
{ | |
"key_code": "keypad_period" | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "numeric_keypad_mode", | |
"value": 1 | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
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
{ | |
"title": "vi mode (@aluc)", | |
"rules": [ | |
{ | |
"description": "Vi Mode [fn as Trigger Key]", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "j", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "down_arrow", | |
"modifiers": [ | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "j" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "down_arrow", | |
"modifiers": [ | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "k", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "up_arrow", | |
"modifiers": [ | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "k" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "up_arrow", | |
"modifiers": [ | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "h", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "h" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "l", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "l" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "f", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "fn", | |
"modifiers": [ | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "f" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "fn", | |
"modifiers": [ | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "b", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "b" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "w", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "w" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "0", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "a", | |
"modifiers": [ | |
"left_control" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "0" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "a", | |
"modifiers": [ | |
"left_control" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "4", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "e", | |
"modifiers": [ | |
"left_control" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "variable_if", | |
"name": "vi_mode", | |
"value": 1 | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"simultaneous": [ | |
{ | |
"key_code": "fn" | |
}, | |
{ | |
"key_code": "4" | |
} | |
], | |
"simultaneous_options": { | |
"key_down_order": "strict", | |
"key_up_order": "strict_inverse", | |
"detect_key_down_uninterruptedly": true, | |
"to_after_key_up": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 0 | |
} | |
} | |
] | |
}, | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"set_variable": { | |
"name": "vi_mode", | |
"value": 1 | |
} | |
}, | |
{ | |
"key_code": "e", | |
"modifiers": [ | |
"left_control" | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment