Created
April 22, 2020 17:15
-
-
Save DrMetallius/99e5a6d8a19841088cbf8bc6d137a50a to your computer and use it in GitHub Desktop.
Karabiner configuration for convenient Mac programming
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": "PC Programmer", | |
"rules": [ | |
{ | |
"description": "Change grave accent (`) to ё in Russian layout", | |
"manipulators": [ | |
{ | |
"conditions": [ | |
{ | |
"type": "input_source_if", | |
"input_sources": [ | |
{ | |
"language": "ru" | |
} | |
] | |
} | |
], | |
"type": "basic", | |
"from": { | |
"key_code": "grave_accent_and_tilde", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "non_us_backslash" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Swap Command with Ctrl", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_command", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_control" | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_control", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_command" | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_command", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_control" | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_control", | |
"modifiers": { | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_command" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "PC-Style Home/End", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "home", | |
"modifiers": { | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "home", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "up_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "end", | |
"modifiers": { | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "end", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "down_arrow", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "Option+Tab as Switch Application (Command+Tab)", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "tab", | |
"modifiers": { | |
"mandatory": [ | |
"option" | |
], | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "tab", | |
"modifiers": [ | |
"left_command" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "tab", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"any" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "tab", | |
"modifiers": [ | |
"left_control" | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "PC-Style Lock Screen", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "l", | |
"modifiers": { | |
"mandatory": [ | |
"control" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "q", | |
"modifiers": [ | |
"left_control", | |
"left_command" | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"description": "PC-Style Text Navigation", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "left_arrow", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "left_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "right_arrow", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "right_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "up_arrow", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "up_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
}, | |
{ | |
"type": "basic", | |
"from": { | |
"key_code": "down_arrow", | |
"modifiers": { | |
"mandatory": [ | |
"command" | |
], | |
"optional": [ | |
"shift" | |
] | |
} | |
}, | |
"to": [ | |
{ | |
"key_code": "down_arrow", | |
"modifiers": [ | |
"left_option" | |
] | |
} | |
], | |
"conditions": [ | |
{ | |
"type": "frontmost_application_unless", | |
"bundle_identifiers": [ | |
"^com\\.jetbrains\\.", | |
"^com\\.google\\.android\\.studio$", | |
"^com\\.microsoft\\.VSCode$" | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment