Skip to content

Instantly share code, notes, and snippets.

@excalq
Last active February 21, 2020 22:48
Show Gist options
  • Save excalq/0709d8f5dd83a208528c56ea9a0b246c to your computer and use it in GitHub Desktop.
Save excalq/0709d8f5dd83a208528c56ea9a0b246c to your computer and use it in GitHub Desktop.
Kepler Dvorak for Karabiner Elements for Mac: Dvorak with Undo,Cut,Copy,Paste preserved as QWERTY
{
"title": "Kepler Dvorak Improved",
"rules": [
{
"description": "Use with Dvorak KB Layout. This remaps Left⌘+z,x,c,v to preserve QWERTY shortcuts. Right⌘ acts as Dvorak for these.",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "grave_accent_and_tilde",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde"
}
]
},
{
"type": "basic",
"from": {
"key_code": "1",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "1"
}
]
},
{
"type": "basic",
"from": {
"key_code": "2",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "2"
}
]
},
{
"type": "basic",
"from": {
"key_code": "4",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "4"
}
]
},
{
"type": "basic",
"from": {
"key_code": "5",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "5"
}
]
},
{
"type": "basic",
"from": {
"key_code": "6",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "6"
}
]
},
{
"type": "basic",
"from": {
"key_code": "7",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "7"
}
]
},
{
"type": "basic",
"from": {
"key_code": "8",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "8"
}
]
},
{
"type": "basic",
"from": {
"key_code": "9",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "9"
}
]
},
{
"type": "basic",
"from": {
"key_code": "0",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "0"
}
]
},
{
"type": "basic",
"from": {
"key_code": "hyphen",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "open_bracket"
}
]
},
{
"type": "basic",
"from": {
"key_code": "equal_sign",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "close_bracket"
}
]
},
{
"type": "basic",
"from": {
"key_code": "q",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "quote"
}
]
},
{
"type": "basic",
"from": {
"key_code": "w",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "comma"
}
]
},
{
"type": "basic",
"from": {
"key_code": "e",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "period"
}
]
},
{
"type": "basic",
"from": {
"key_code": "r",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "p"
}
]
},
{
"type": "basic",
"from": {
"key_code": "t",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "y"
}
]
},
{
"type": "basic",
"from": {
"key_code": "y",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "f"
}
]
},
{
"type": "basic",
"from": {
"key_code": "u",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "g"
}
]
},
{
"type": "basic",
"from": {
"key_code": "i",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "c"
}
]
},
{
"type": "basic",
"from": {
"key_code": "o",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "r"
}
]
},
{
"type": "basic",
"from": {
"key_code": "p",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "l"
}
]
},
{
"type": "basic",
"from": {
"key_code": "open_bracket",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "slash"
}
]
},
{
"type": "basic",
"from": {
"key_code": "close_bracket",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "equal_sign"
}
]
},
{
"type": "basic",
"from": {
"key_code": "backslash",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "backslash"
}
]
},
{
"type": "basic",
"from": {
"key_code": "a",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "a"
}
]
},
{
"type": "basic",
"from": {
"key_code": "s",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "o"
}
]
},
{
"type": "basic",
"from": {
"key_code": "d",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "e"
}
]
},
{
"type": "basic",
"from": {
"key_code": "f",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "u"
}
]
},
{
"type": "basic",
"from": {
"key_code": "g",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "i"
}
]
},
{
"type": "basic",
"from": {
"key_code": "h",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "d"
}
]
},
{
"type": "basic",
"from": {
"key_code": "j",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "h"
}
]
},
{
"type": "basic",
"from": {
"key_code": "k",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "t"
}
]
},
{
"type": "basic",
"from": {
"key_code": "l",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "n"
}
]
},
{
"type": "basic",
"from": {
"key_code": "semicolon",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "s"
}
]
},
{
"type": "basic",
"from": {
"key_code": "quote",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "hyphen"
}
]
},
{"__comment__": "Not swapping ctrl/cmd/opt z->; to preserve QWERTY cmd+z UNDO"},
{"__comment__": "Not swapping ctrl/cmd/opt x->q to preserve QWERTY cmd+x CUT"},
{"__comment__": "Not swapping ctrl/cmd/opt c->j to preserve QWERTY cmd+c COPY"},
{"__comment__": "Not swapping ctrl/cmd/opt v->k to preserve QWERTY cmd+v PASTE"},
{
"type": "basic",
"from": {
"key_code": "z",
"modifiers": {
"optional": [
"shift"
]
}
},
"to": [
{
"key_code": "semicolon"
}
]
},
{
"type": "basic",
"from": {
"key_code": "x",
"modifiers": {
"optional": [
"shift"
]
}
},
"to": [
{
"key_code": "q"
}
]
},
{
"type": "basic",
"from": {
"key_code": "c",
"modifiers": {
"optional": [
"shift"
]
}
},
"to": [
{
"key_code": "j"
}
]
},
{
"type": "basic",
"from": {
"key_code": "v",
"modifiers": {
"optional": [
"shift"
]
}
},
"to": [
{
"key_code": "k"
}
]
},
{"__comment__": "The following four will map RIGHT_CMD+{Special-Above-Keys} -> LEFT_CMD+{Dvorak-Key}"},
{
"type": "basic",
"from": {
"key_code": "x",
"modifiers": {
"mandatory": [
"right_command"
]
}
},
"to": [
{
"key_code": "q",
"modifiers": [
"left_command"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "c",
"modifiers": {
"mandatory": [
"right_command"
]
}
},
"to": [
{
"key_code": "j",
"modifiers": [
"left_command"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "v",
"modifiers": {
"mandatory": [
"right_command"
]
}
},
"to": [
{
"key_code": "k",
"modifiers": [
"left_command"
]
}
]
},
{"__comment__": "Back to normal (all modifiers are Dvorak)"},
{
"type": "basic",
"from": {
"key_code": "b",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "x"
}
]
},
{
"type": "basic",
"from": {
"key_code": "n",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "b"
}
]
},
{
"type": "basic",
"from": {
"key_code": "m",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "m"
}
]
},
{
"type": "basic",
"from": {
"key_code": "comma",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "w"
}
]
},
{
"type": "basic",
"from": {
"key_code": "period",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "v"
}
]
},
{
"type": "basic",
"from": {
"key_code": "slash",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "z"
}
]
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment