summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorJesse Luehrs <doy@stripe.com>2018-04-04 14:44:25 -0700
committerJesse Luehrs <doy@tozt.net>2018-04-06 16:27:41 -0700
commitabfbd65725ba45d0b7d17eca114574ed0be4de3c (patch)
tree4b5039e6c4ef986b6f546b615b7bfc03d9011342 /config
parent54053d2dadfd5ba67127c636a3eb4c0f7cff5ef9 (diff)
downloadconf-abfbd65725ba45d0b7d17eca114574ed0be4de3c.tar.gz
conf-abfbd65725ba45d0b7d17eca114574ed0be4de3c.zip
add some osx config
karabiner, bettertouchtool, amethyst, hammerspoon
Diffstat (limited to 'config')
-rw-r--r--config/karabiner/assets/complex_modifications/command-escape.json32
-rw-r--r--config/karabiner/assets/complex_modifications/number-row.json390
-rw-r--r--config/karabiner/assets/complex_modifications/other-remapping.json200
-rw-r--r--config/karabiner/assets/complex_modifications/terminal-overrides.json135
-rw-r--r--config/karabiner/karabiner.json920
5 files changed, 1677 insertions, 0 deletions
diff --git a/config/karabiner/assets/complex_modifications/command-escape.json b/config/karabiner/assets/complex_modifications/command-escape.json
new file mode 100644
index 0000000..03c6167
--- /dev/null
+++ b/config/karabiner/assets/complex_modifications/command-escape.json
@@ -0,0 +1,32 @@
+{
+ "title": "Map Command to Escape when pressed alone",
+ "rules": [
+ {
+ "manipulators": [
+ {
+ "description": "Map left command to escape",
+ "type": "basic",
+ "from": {
+ "key_code": "left_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_command",
+ "lazy": true
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/config/karabiner/assets/complex_modifications/number-row.json b/config/karabiner/assets/complex_modifications/number-row.json
new file mode 100644
index 0000000..f56166b
--- /dev/null
+++ b/config/karabiner/assets/complex_modifications/number-row.json
@@ -0,0 +1,390 @@
+{
+ "title": "Exchange numbers and symbols",
+ "rules": [
+ {
+ "description": "Exchange numbers and symbols (1234567890 and !@#$%^&*())",
+ "manipulators": [
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "1",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "1",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "2",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "2",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "3",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "3",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "4",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "4",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "5",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "5",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "6",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "6",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "7",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "7",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "8",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "8",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "9",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "9",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "0",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "0",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "1",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "1"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "2",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "2"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "3",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "3"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "4",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "4"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "5",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "5"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "6",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "6"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "7",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "7"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "8",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "8"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "9",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "9"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "0",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/config/karabiner/assets/complex_modifications/other-remapping.json b/config/karabiner/assets/complex_modifications/other-remapping.json
new file mode 100644
index 0000000..b817219
--- /dev/null
+++ b/config/karabiner/assets/complex_modifications/other-remapping.json
@@ -0,0 +1,200 @@
+{
+ "title": "Other keyboard remappings",
+ "rules": [
+ {
+ "description": "Other keyboard remappings",
+ "manipulators": [
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "grave_accent_and_tilde"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "hyphen",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "hyphen",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "hyphen",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "hyphen"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "open_bracket",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "open_bracket",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "open_bracket",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "open_bracket"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "close_bracket",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "close_bracket",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "close_bracket",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "close_bracket"
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "backslash",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "backslash",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "backslash",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "backslash"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/config/karabiner/assets/complex_modifications/terminal-overrides.json b/config/karabiner/assets/complex_modifications/terminal-overrides.json
new file mode 100644
index 0000000..f15ac37
--- /dev/null
+++ b/config/karabiner/assets/complex_modifications/terminal-overrides.json
@@ -0,0 +1,135 @@
+{
+ "title": "Terminal overrides",
+ "rules": [
+ {
+ "description": "Swap command and control in terminal applications",
+ "manipulators": [
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "left_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_control",
+ "lazy": true
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "left_control",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_command",
+ "lazy": true
+ }
+ ],
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "right_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "right_control",
+ "lazy": true
+ }
+ ],
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ]
+ }
+ ]
+ },
+ {
+ "type": "basic",
+ "from": {
+ "key_code": "right_control",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "right_command",
+ "lazy": true
+ }
+ ],
+ "conditions": [
+ {
+ "type": "frontmost_application_if",
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/config/karabiner/karabiner.json b/config/karabiner/karabiner.json
new file mode 100644
index 0000000..94c145a
--- /dev/null
+++ b/config/karabiner/karabiner.json
@@ -0,0 +1,920 @@
+{
+ "global": {
+ "check_for_updates_on_startup": true,
+ "show_in_menu_bar": true,
+ "show_profile_name_in_menu_bar": false
+ },
+ "profiles": [
+ {
+ "complex_modifications": {
+ "parameters": {
+ "basic.simultaneous_threshold_milliseconds": 50,
+ "basic.to_delayed_action_delay_milliseconds": 500,
+ "basic.to_if_alone_timeout_milliseconds": 500,
+ "basic.to_if_held_down_threshold_milliseconds": 200
+ },
+ "rules": [
+ {
+ "description": "Swap command and control in terminal applications",
+ "manipulators": [
+ {
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "left_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_control",
+ "lazy": true
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "left_control",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_command",
+ "lazy": true
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "right_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "right_control",
+ "lazy": true
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "conditions": [
+ {
+ "bundle_identifiers": [
+ "^com\\.apple\\.Terminal$",
+ "^com\\.googlecode\\.iterm2$",
+ "^co\\.zeit\\.hyperterm$",
+ "^co\\.zeit\\.hyper$",
+ "^io\\.alacritty$",
+ "^net\\.kovidgoyal\\.kitty$"
+ ],
+ "type": "frontmost_application_if"
+ }
+ ],
+ "from": {
+ "key_code": "right_control",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "right_command",
+ "lazy": true
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "manipulators": [
+ {
+ "description": "Map left command to escape",
+ "from": {
+ "key_code": "left_command",
+ "modifiers": {
+ "optional": [
+ "any"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "left_command",
+ "lazy": true
+ }
+ ],
+ "to_if_alone": [
+ {
+ "key_code": "escape"
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Exchange numbers and symbols (1234567890 and !@#$%^&*())",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "1",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "1",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "2",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "2",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "3",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "3",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "4",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "4",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "5",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "5",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "6",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "6",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "7",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "7",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "8",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "8",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "9",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "9",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "0",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "0",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "1",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "1"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "2",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "2"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "3",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "3"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "4",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "4"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "5",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "5"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "6",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "6"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "7",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "7"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "8",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "8"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "9",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "9"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "0",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "0"
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ },
+ {
+ "description": "Other keyboard remappings",
+ "manipulators": [
+ {
+ "from": {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "grave_accent_and_tilde",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "grave_accent_and_tilde"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "hyphen",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "hyphen",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "hyphen",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "hyphen"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "open_bracket",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "open_bracket",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "open_bracket",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "open_bracket"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "close_bracket",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "close_bracket",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "close_bracket",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "close_bracket"
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "backslash",
+ "modifiers": {
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "backslash",
+ "modifiers": [
+ "left_shift"
+ ]
+ }
+ ],
+ "type": "basic"
+ },
+ {
+ "from": {
+ "key_code": "backslash",
+ "modifiers": {
+ "mandatory": [
+ "shift"
+ ],
+ "optional": [
+ "caps_lock"
+ ]
+ }
+ },
+ "to": [
+ {
+ "key_code": "backslash"
+ }
+ ],
+ "type": "basic"
+ }
+ ]
+ }
+ ]
+ },
+ "devices": [
+ {
+ "disable_built_in_keyboard_if_exists": false,
+ "fn_function_keys": [],
+ "identifiers": {
+ "is_keyboard": true,
+ "is_pointing_device": false,
+ "product_id": 361,
+ "vendor_id": 1241
+ },
+ "ignore": false,
+ "manipulate_caps_lock_led": false,
+ "simple_modifications": [
+ {
+ "from": {
+ "key_code": "left_command"
+ },
+ "to": {
+ "key_code": "left_option"
+ }
+ },
+ {
+ "from": {
+ "key_code": "left_option"
+ },
+ "to": {
+ "key_code": "left_command"
+ }
+ },
+ {
+ "from": {
+ "key_code": "right_option"
+ },
+ "to": {
+ "key_code": "right_command"
+ }
+ },
+ {
+ "from": {
+ "key_code": "right_command"
+ },
+ "to": {
+ "key_code": "right_option"
+ }
+ }
+ ]
+ }
+ ],
+ "fn_function_keys": [
+ {
+ "from": {
+ "key_code": "f1"
+ },
+ "to": {
+ "consumer_key_code": "mute"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f2"
+ },
+ "to": {
+ "consumer_key_code": "volume_decrement"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f3"
+ },
+ "to": {
+ "consumer_key_code": "volume_increment"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f4"
+ },
+ "to": {
+ "key_code": "vk_none"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f5"
+ },
+ "to": {
+ "consumer_key_code": "display_brightness_decrement"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f6"
+ },
+ "to": {
+ "consumer_key_code": "display_brightness_increment"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f7"
+ },
+ "to": {
+ "key_code": "vk_none"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f8"
+ },
+ "to": {
+ "key_code": "f8"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f9"
+ },
+ "to": {
+ "key_code": "vk_none"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f10"
+ },
+ "to": {
+ "key_code": "f18"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f11"
+ },
+ "to": {
+ "key_code": "vk_none"
+ }
+ },
+ {
+ "from": {
+ "key_code": "f12"
+ },
+ "to": {
+ "key_code": "vk_none"
+ }
+ }
+ ],
+ "name": "Default profile",
+ "selected": true,
+ "simple_modifications": [
+ {
+ "from": {
+ "key_code": "caps_lock"
+ },
+ "to": {
+ "key_code": "fn"
+ }
+ }
+ ],
+ "virtual_hid_keyboard": {
+ "caps_lock_delay_milliseconds": 0,
+ "keyboard_type": "ansi"
+ }
+ }
+ ]
+}