From ad21ff00bc0519a1725092e01dd35743f3a21e14 Mon Sep 17 00:00:00 2001 From: Stefan Imhoff Date: Sat, 12 Nov 2022 13:59:40 +0100 Subject: [PATCH] feat(karabiner): add karabiner config to dotfiles --- .dotbot.conf.yaml | 1 + .gitignore | 1 + gitconfig | 5 +- .../complex_modifications/1668261369.json | 31 ++ karabiner/karabiner.json | 476 ++++++++++++++++++ 5 files changed, 512 insertions(+), 2 deletions(-) create mode 100644 karabiner/assets/complex_modifications/1668261369.json create mode 100644 karabiner/karabiner.json diff --git a/.dotbot.conf.yaml b/.dotbot.conf.yaml index b38dd6f..bbaee07 100644 --- a/.dotbot.conf.yaml +++ b/.dotbot.conf.yaml @@ -9,6 +9,7 @@ ~/.ag: ag ~/.asdfrc: asdf/asdfrc ~/.config/base16-shell: .base16-shell + ~/.config/karabiner: karabiner ~/.config/kitty: kitty ~/.config/nvim: nvim ~/.config/starship.toml: starship.toml diff --git a/.gitignore b/.gitignore index 69e1422..ab94fb2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ nvim/plugin .vale/Readability .vale/write-good kitty/kitty.conf.bak +karabiner/automatic_backups diff --git a/gitconfig b/gitconfig index de35a62..d127ad2 100644 --- a/gitconfig +++ b/gitconfig @@ -88,7 +88,7 @@ [difftool] prompt = false [difftool "Kaleidoscope"] - cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\" + cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\" [merge] conflictstyle = diff3 tool = Kaleidoscope @@ -96,8 +96,9 @@ prompt = false keepBackup = false [mergetool "Kaleidoscope"] - cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot + cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot trustexitcode = true + trustExitCode = true [mergetool "nvim"] cmd = nvim -f -c \"Gdiffsplit!\" \"$MERGED\" [mergetool "code"] diff --git a/karabiner/assets/complex_modifications/1668261369.json b/karabiner/assets/complex_modifications/1668261369.json new file mode 100644 index 0000000..15b92db --- /dev/null +++ b/karabiner/assets/complex_modifications/1668261369.json @@ -0,0 +1,31 @@ +{ + "title": "Caps Lock to Escape, enable Caps Lock when held", + "rules": [ + { + "description": "Caps Lock to Escape on single press, Caps Lock on press and hold.", + "manipulators": [ + { + "type": "basic", + "from": { + "key_code": "caps_lock", + "modifiers": { + "optional": [ + "any" + ] + } + }, + "to": [ + { + "key_code": "escape" + } + ], + "to_if_held_down": [ + { + "key_code": "caps_lock" + } + ] + } + ] + } + ] +} diff --git a/karabiner/karabiner.json b/karabiner/karabiner.json new file mode 100644 index 0000000..df5394e --- /dev/null +++ b/karabiner/karabiner.json @@ -0,0 +1,476 @@ +{ + "global": { + "check_for_updates_on_startup": true, + "show_in_menu_bar": true, + "show_profile_name_in_menu_bar": false, + "unsafe_ui": false + }, + "profiles": [ + { + "complex_modifications": { + "parameters": { + "basic.simultaneous_threshold_milliseconds": 50, + "basic.to_delayed_action_delay_milliseconds": 500, + "basic.to_if_alone_timeout_milliseconds": 1000, + "basic.to_if_held_down_threshold_milliseconds": 500, + "mouse_motion_to_scroll.speed": 100 + }, + "rules": [ + { + "description": "CAPS_LOCK : (Hyper) SHIFT+COMMAND+OPTION+CONTROL or ESCAPE (if alone)", + "manipulators": [ + { + "from": { + "key_code": "caps_lock", + "modifiers": { + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "left_shift", + "modifiers": ["left_command", "left_control", "left_option"] + } + ], + "to_if_alone": [ + { + "key_code": "escape" + } + ], + "type": "basic" + }, + { + "description": "Avoid starting sysdiagnose with the built-in macOS shortcut cmd+shift+option+ctrl+,", + "from": { + "key_code": "comma", + "modifiers": { + "mandatory": ["command", "shift", "option", "control"] + } + }, + "to": [], + "type": "basic" + }, + { + "description": "Avoid starting sysdiagnose with the built-in macOS shortcut cmd+shift+option+ctrl+.", + "from": { + "key_code": "period", + "modifiers": { + "mandatory": ["command", "shift", "option", "control"] + } + }, + "to": [], + "type": "basic" + }, + { + "from": { + "description": "Avoid starting sysdiagnose with the built-in macOS shortcut cmd+shift+option+ctrl+/", + "key_code": "slash", + "modifiers": { + "mandatory": ["command", "shift", "option", "control"] + } + }, + "to": [], + "type": "basic" + } + ] + }, + { + "description": "Toggle CAPS_LOCK with LEFT_SHIFT + RIGHT_SHIFT", + "manipulators": [ + { + "from": { + "key_code": "left_shift", + "modifiers": { + "mandatory": ["right_shift"], + "optional": ["caps_lock"] + } + }, + "to": [ + { + "key_code": "caps_lock" + } + ], + "to_if_alone": [ + { + "key_code": "left_shift" + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "right_shift", + "modifiers": { + "mandatory": ["left_shift"], + "optional": ["caps_lock"] + } + }, + "to": [ + { + "key_code": "caps_lock" + } + ], + "to_if_alone": [ + { + "key_code": "right_shift" + } + ], + "type": "basic" + } + ] + }, + { + "description": "CAPS_LOCK + i/j/k/l == Arrow Keys", + "manipulators": [ + { + "from": { + "key_code": "k", + "modifiers": { + "mandatory": [ + "left_shift", + "left_command", + "left_control", + "left_option" + ], + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "up_arrow" + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "h", + "modifiers": { + "mandatory": [ + "left_shift", + "left_command", + "left_control", + "left_option" + ], + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "left_arrow" + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "j", + "modifiers": { + "mandatory": [ + "left_shift", + "left_command", + "left_control", + "left_option" + ], + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "down_arrow" + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "l", + "modifiers": { + "mandatory": [ + "left_shift", + "left_command", + "left_control", + "left_option" + ], + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "right_arrow" + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "semicolon", + "modifiers": { + "mandatory": [ + "left_shift", + "left_command", + "left_control", + "left_option" + ], + "optional": ["any"] + } + }, + "to": [ + { + "key_code": "right_arrow", + "modifiers": ["left_command"] + } + ], + "type": "basic" + } + ] + }, + { + "description": "SHIFT moves forward and backward by 1 word", + "manipulators": [ + { + "from": { + "key_code": "right_shift" + }, + "to": [ + { + "key_code": "right_shift" + } + ], + "to_if_alone": [ + { + "key_code": "right_arrow", + "modifiers": ["option"] + } + ], + "type": "basic" + }, + { + "from": { + "key_code": "left_shift" + }, + "to": [ + { + "key_code": "left_shift" + } + ], + "to_if_alone": [ + { + "key_code": "left_arrow", + "modifiers": ["option"] + } + ], + "type": "basic" + } + ] + } + ] + }, + "devices": [ + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 632, + "vendor_id": 1452 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 632, + "vendor_id": 1452 + }, + "ignore": true, + "manipulate_caps_lock_led": false, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 620, + "vendor_id": 76 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 617, + "vendor_id": 76 + }, + "ignore": true, + "manipulate_caps_lock_led": false, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 34304, + "vendor_id": 1452 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + } + ], + "fn_function_keys": [ + { + "from": { + "key_code": "f1" + }, + "to": [ + { + "consumer_key_code": "display_brightness_decrement" + } + ] + }, + { + "from": { + "key_code": "f2" + }, + "to": [ + { + "consumer_key_code": "display_brightness_increment" + } + ] + }, + { + "from": { + "key_code": "f3" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "mission_control" + } + ] + }, + { + "from": { + "key_code": "f4" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "launchpad" + } + ] + }, + { + "from": { + "key_code": "f5" + }, + "to": [ + { + "consumer_key_code": "dictation" + } + ] + }, + { + "from": { + "key_code": "f6" + }, + "to": [ + { + "key_code": "f6" + } + ] + }, + { + "from": { + "key_code": "f7" + }, + "to": [ + { + "consumer_key_code": "rewind" + } + ] + }, + { + "from": { + "key_code": "f8" + }, + "to": [ + { + "consumer_key_code": "play_or_pause" + } + ] + }, + { + "from": { + "key_code": "f9" + }, + "to": [ + { + "consumer_key_code": "fast_forward" + } + ] + }, + { + "from": { + "key_code": "f10" + }, + "to": [ + { + "consumer_key_code": "mute" + } + ] + }, + { + "from": { + "key_code": "f11" + }, + "to": [ + { + "consumer_key_code": "volume_decrement" + } + ] + }, + { + "from": { + "key_code": "f12" + }, + "to": [ + { + "consumer_key_code": "volume_increment" + } + ] + } + ], + "name": "Default profile", + "parameters": { + "delay_milliseconds_before_open_device": 1000 + }, + "selected": true, + "simple_modifications": [], + "virtual_hid_keyboard": { + "country_code": 0, + "indicate_sticky_modifier_keys_state": true, + "mouse_key_xy_scale": 100 + } + } + ] +}