dotfiles/private_dot_config/karabiner.edn

68 lines
2.8 KiB
Clojure

{ :devices {:adv2 [{:vendor_id 10730 :product_id 258}]}
:profiles {:Default {:default true
:alone 200
:delay 500
:held 800
:sim 50}}
:applications {:keykey ["^com\\.chekazuja\\.keykey$"],
:kitty ["^net\\.kovidgoyal\\.kitty$"]}
:input-sources {:en {:language "en"}
:ru {:language "ru"}}
:templates {:open "open -a '%s'"}
:main [{:des "Backslash<->Open_Bracket on Advantage2"
:rules [:adv2 [:open_bracket :!R5 [:ru :keykey]]
[:##open_bracket :!R8 [:ru :keykey]]
[:##open_bracket :backslash [:ru :!keykey]]
[:##backslash :open_bracket :ru]]}
{:des "Caps->English, LShift->Russian"
:rules [[:##left_shift :left_shift nil {:alone {:input :ru}}]
[:##caps_lock ["capskey" 1] nil {:alone {:input :en}
:held :caps_lock
:afterup ["capskey" 0]}]]}
{:des "Tab as Hyper(⌘+⌥+^+⇧)"
:rules [[:tab [:!!left_shift] [:!left_command] {:alone :tab}]]}
{:des "Caps+T to start Kitty, Caps+B->Bing, Caps+G->Bard, Caps+O->Poe, Caps+P->ChatGPT4, Caps+␣->AllGPT"
:rules [:capskey [:t [:open "/Applications/kitty.app"]]
[:b [:open "/Users/anton/Applications/Brave Browser Apps.localized/Bing AI.app"]]
[:g [:open "/Users/anton/Applications/Brave Browser Apps.localized/Bard.app"]]
[:o [:open "/Users/anton/Applications/Brave Browser Apps.localized/Poe.app"]]
[:p [:open "/Users/anton/Applications/Brave Browser Apps.localized/ChatGPT4.app"]]
[:v [:open "/Users/anton/Applications/Brave Browser Apps.localized/Vikunja.app"]]
[:spacebar [:open "/Users/anton/Applications/Brave Browser Apps.localized/GPT.app"]]
]}
{:des "RShift->Comma"
:rules [[:##right_shift :right_shift :ru {:alone :!R6}]
[:##right_shift :right_shift :en {:alone :comma}]]}]
}
;; this is a little bit weird, but it's convenient
;; the rule [:!Ca :!T1]
;; means from command a to control 1
;; :!Ca is keycode :a and prefix a with !C
;; here's the definition
;; ! | means mandatory
;; # | means optional
;; C | left_command
;; T | left_control
;; O | left_option
;; S | left_shift
;; F | fn
;; Q | right_command
;; W | right_control
;; E | right_option
;; R | right_shift
;; P | caps_lock
;; !! | mandatory command + control + optional + shift (hyper)
;; ## | optional any