184 lines
7.8 KiB
Clojure
184 lines
7.8 KiB
Clojure
{ :devices {:adv2 [{:vendor_id 10730 :product_id 258}]
|
|
:pedals [{:vendor_id 10730 :product_id 256}]
|
|
:volumer [{:vendor_id 16701 :product_id 21818 :location_id 51380224}]}
|
|
:profiles {:Default {:default true
|
|
:alone 350
|
|
:delay 500
|
|
:held 1500
|
|
:sim 50}}
|
|
|
|
|
|
:applications {:keykey ["^com\\.chekazuja\\.keykey$"]
|
|
:kitty ["^net\\.kovidgoyal\\.kitty$"]
|
|
:wezterm ["^com.github.wez.wezterm$"]
|
|
:webapp ["^com\\.apple\\.Safari\\.WebApp\\..+$"]
|
|
:perplexity ["^com\\.apple\\.Safari\\.WebApp\\.F9855FA5-EDE4-4A23-A3BD-BC8ACE1CD430$"]
|
|
:gemini ["^com\\.apple\\.Safari\\.WebApp\\.1550A740-0D4C-4C62-BA9B-438AA340471C$"]
|
|
:copilot ["^com\\.apple\\.Safari\\.WebApp\\.8693C89E-9B7E-4E3D-A8E1-C2EB22E28784$"]
|
|
:webui ["^com\\.apple\\.Safari\\.WebApp\\.2455BCD9-4CA6-415F-80D8-2FA98F05FC97$"]
|
|
:openai ["^com\\.Unite\\.openai$"]
|
|
:chatgpt["^com.openai.chat$"]
|
|
:librechat ["^com\\.Unite\\.LibreChat$"]
|
|
:claude ["^com\\.Unite\\.Claude$"]
|
|
:hepta ["^app.projectmeta.projectmeta$"]
|
|
:youcom ["^com\\.Unite\\.You$"]
|
|
:metaai ["^com\\.Unite\\.Meta.ai$"]
|
|
:wiki ["^com\\.Unite\\.SetiaWiki$"]
|
|
:jupyter ["^org\\.jupyter\\.jupyterlab-desktop$"]
|
|
:dataspell ["^com\\.jetbrains\\.dataspell$"]
|
|
:vikunja ["^com\\.Unite\\.Vikunja$"]}
|
|
|
|
:input-sources {:en {:language "en"}
|
|
:ru {:language "ru"}}
|
|
|
|
:templates {:open "open -a '%s'"}
|
|
|
|
:froms {
|
|
:left_pedal {:key :f18}
|
|
:middle_pedal {:key :f19}
|
|
:right_pedal {:key :f20}
|
|
}
|
|
|
|
:main [
|
|
|
|
{:des "pedals default"
|
|
:rules [:pedals [:left_pedal :!Tleft_command]
|
|
[:right_pedal :!TSleft_option]
|
|
[:middle_pedal :ru nil {:afterdown :ru
|
|
:afterup :en}]
|
|
]}
|
|
|
|
{:des "volumer experiment"
|
|
:rules [:volumer [:volume_up :a nil]]}
|
|
|
|
{: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 "Delete->Control on Advantage2"
|
|
:rules [:adv2 [:##delete_forward :left_control]
|
|
[:##equal_sign :grave_accent_and_tilde :ru]
|
|
[:##grave_accent_and_tilde :equal_sign :ru]]}
|
|
|
|
{:des "+ <-> ~ on advantage"
|
|
:rules [:adv2 [:!Requal_sign :!Rgrave_accent_and_tilde :en]
|
|
[:!Rgrave_accent_and_tilde :non_us_backslash :en]
|
|
[:non_us_backslash :!Sequal_sign]]}
|
|
|
|
|
|
{:des "Alternative language switches: Lcmd->English, Rcmd->Russian, Rshift-> Russian"
|
|
:rules [[:left_command :left_command nil {:alone {:input :en}}]
|
|
[:right_command :right_command nil {:alone {:input :ru}}]
|
|
;; [:right_shift :right_shift nil {:alone {:input :ru}}]
|
|
[:!Qt [:!Qt {:input :en}]]
|
|
[:!Ql [:!Ql {:input :en}]]
|
|
[:!Ct [:!Ct {:input :en}]]
|
|
[:!Cl [:!Cl {:input :en}]]
|
|
;; [:!Ctab [:!Ctab {:input :en}]]
|
|
]}
|
|
|
|
{:des "Caps->Russian, LShift->English"
|
|
:rules [[:##caps_lock ["capskey" 1] :ru {:alone {:input :en}
|
|
:afterup ["capskey" 0]}]
|
|
[:##caps_lock ["capskey" 1] :en {:alone {:input :ru}
|
|
:afterup ["capskey" 0]}]
|
|
]}
|
|
|
|
{:des "Tab as Hyper(⌘+⌥+^+⇧)"
|
|
:rules [[:tab [:!!left_shift] [:!left_command] {:alone :tab}]]}
|
|
|
|
{:des "Caps+↑, Caps+↓ to Control+Opt+arrow"
|
|
:rules [[:##up_arrow :!TOup_arrow :capskey]
|
|
[:##down_arrow :!TOdown_arrow :capskey]
|
|
[:##1 :!!1 :capskey]
|
|
[:##2 :!!2 :capskey]
|
|
[:##3 :!!3 :capskey]
|
|
[:##left_arrow :!!1 :capskey]
|
|
[:##right_arrow :!!2 :capskey]]}
|
|
|
|
|
|
{: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"] {:input :en}] :!kitty]
|
|
[:t [:!Ct {:input :en}] :kitty]
|
|
[:r [[:open "/Applications/WezTerm.app"] {:input :en}] :!wezterm]
|
|
[:r :!Ct :wezterm]
|
|
[:a [[:open "/Applications/Arc.app"] {:input :en}]]
|
|
[:g [:open "/Users/anton/Applications/Gemini.app"] :!gemini]
|
|
[:g :!Ch :gemini]
|
|
[:c [:open "/Users/anton/Applications/Copilot.app"] :!copilot]
|
|
[:c :!Ch :copilot]
|
|
[:y [:open "/Applications/You.app"] :!youcom]
|
|
[:y :!Ch :youcom]
|
|
[:d [:open "/Applications/Claude.app"] :!claude]
|
|
[:d :!Ch :claude]
|
|
[:h [:open "/Applications/Heptabase.app"] :!hepta]
|
|
[:h :!Ch :hepta]
|
|
[:w [:open "/Applications/Setia Wiki.app"] :!wiki]
|
|
[:w :!Cw :wiki]
|
|
[:open_bracket [:open "/Applications/ChatGPT.app"] :!chatgpt]
|
|
[:open_bracket :!Cw :chatgpt]
|
|
[:o [:open "/Applications/openai.app"] :!openai]
|
|
[:o :!Ch :openai]
|
|
[:p [:open "/Users/anton/Applications/webui.app"] :!webui]
|
|
[:p :!Ch :webui]
|
|
[:i [:open "/Users/anton/Applications/Perplexity.app"] :!perplexity]
|
|
[:i :!Ch :perplexity]
|
|
[:l [:open "/Applications/LibreChat.app"] :!librechat]
|
|
[:l :!Ch :librechat]
|
|
; [:j [:open "/Applications/JupyterLab.app"] :!jupyter]
|
|
; [:j :!Ch :jupyter]
|
|
[:m [:open "/Applications/Meta.ai.app"] :!metaai]
|
|
[:m :!Ch :metaai]
|
|
[:v [:open "/Applications/Vikunja.app"] :!vikunja]
|
|
[:v :!Ch :vikunja]
|
|
]}
|
|
|
|
{:des "⌘W->⌘H in Heptabase"
|
|
:rules [:hepta [:!Cw :!Ch]]}
|
|
|
|
{:des "⌘W->⌘H in Safari ChatGPT app"
|
|
:rules [:webapp [:!Cw :!Ch]]}
|
|
|
|
|
|
{:des "Ropt->Comma"
|
|
:rules [[:##right_option :right_shift :ru {:alone :!R6}]
|
|
[:##right_option :right_shift :en {:alone :comma}]]}
|
|
|
|
{:des "Rshift->Comma"
|
|
:rules [[:##right_shift :right_shift :ru {:alone :!R6
|
|
:held :caps_lock}]
|
|
[:##right_shift :right_shift :en {:alone :comma
|
|
:held :caps_lock}]]}
|
|
{:des "Lshift->Plus"
|
|
:rules [[:##left_shift :left_shift nil {:alone :!Sequal_sign}]]}
|
|
|
|
{:des "Rcommand -> comma, but not on advantage"
|
|
:rules [[:##right_command :right_command [:ru :!adv2] {:alone :!R6}]]}]
|
|
}
|
|
|
|
|
|
;; 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
|
|
|