Created
June 29, 2020 21:08
-
-
Save johnlindquist/f62f5a6bc1657bc15cd5d44876328eef to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; rule [:period ["period-mode" 1] nil {:afterup ["period-mode" 0] :alone :period}] | |
;; |_____| |_______________| |_| |_________________________________________| | |
;; <from> <to> <conditions> <other options> | |
;;arstarstarst12340987arstarst | |
{:default true | |
:sim 50 :delay 200 :alone 500 :held 500 :simlayer-threshold 210 | |
:froms | |
{:yay {:key :a} | |
:yak {:key :b} | |
; | |
} | |
:templates {:launch "osascript -e 'tell application \"%s\" to activate'" | |
:open "open \"%s\"" | |
:delay "osascript -e 'delay \"%s\"'" | |
:open-a "open -a '%s'" | |
:restream "osascript -e 'tell application \"Restream Chat\" to activate'" | |
:alfred "osascript -e 'tell application \"Alfred 4\" to run trigger \"%s\" in workflow \"%s\" with argument \"%s\"'" | |
:km "osascript -e 'tell application \"Keyboard Maestro Engine\" to do script \"%s\"'"} | |
:applications {:Screenflow ["net.telestream.screenflow9"] | |
:Ableton ["com.ableton.live"] | |
:code ["com.microsoft.VSCode"] | |
:chrome ["com.google.Chrome"] | |
:fcp ["com.apple.FinalCut"] | |
; | |
} | |
:modifiers {:s :left_shift | |
:ro :right_option} | |
:layers {; | |
:caps_lock-mode {:key :caps_lock :alone [{:key :escape} | |
{:set ["numbers" 0]} | |
{:set ["symbols" 0]} | |
; | |
]} | |
:tab-mode {:key :tab :alone {:key :tab}} | |
;; :spacebar-shift-mode {:key :spacebar :modi {:mandatory [:left_shift]}} | |
;12341234123412341234123412341234123412341234arstarstarstarstarstarstarst12341234arstarst | |
; | |
} | |
:simlayers {; | |
:tab-mode {:key :tab} | |
:q-mode {:key :q} | |
:a-mode {:key :a} | |
:s-mode {:key :s} | |
:d-mode {:key :d} | |
:f-mode {:key :f} | |
:g-mode {:key :g} | |
:j-mode {:key :j} | |
:quote-mode {:key :quote} | |
:semicolon-mode {:key :semicolon :alone :o} | |
:spacebar-mode {:key :spacebar} | |
:slash-mode {:key :slash} | |
;; :non_us_backslash_mode {:key :non_us_backslash} | |
; | |
} | |
;; [:grave_accent_and_tilde | |
;; :a | |
;; nil | |
;; {:delayed {:invoked :b}}; | |
;; [:left_control :left_control nil {:alone :!CSm}] | |
;; [:left_command :left_command nil {:alone :!CSt}] | |
;; [:right_shift :right_shift nil {:alone :!Stab}] | |
;; [:right_alt :right_alt nil {:alone :!COp}] | |
:main [; | |
{:des "multitouch" | |
:rules [;multitouch in Screenflow | |
[:condi :Screenflow :multitouch_extension_finger_count_total] | |
[:d [{:pkey :button1 :modi :left_shift} :!Cdelete_or_backspace]] | |
[:condi :Ableton :multitouch_extension_finger_count_total] | |
[:g [:button1 :button1]] | |
[:q [:button1 :delete_or_backspace]] | |
[:w :!COl] | |
[:e :!Stab] | |
[:r :!COp] | |
[:a :left_option] | |
[:left_shift [:button1 :delete_or_backspace]] | |
;; Ableton 2 | |
[:condi :Ableton ["multitouch_extension_finger_count_total" 2]] | |
[:a [:!Cl]] | |
[:d [:!Ce]] | |
[:f [:!CSt]] | |
;multitouch in VSCode | |
[:condi :code :multitouch_extension_finger_count_total] | |
[:spacebar :return_or_enter] | |
[:condi :code ["multitouch_extension_finger_count_total" 2]] | |
[:s [:button1 :f2]] | |
[:condi :code ["multitouch_extension_finger_count_total" 3]] | |
[:c :!Cslash] | |
[:q [:button1 :!CSk]] | |
[:left_command :left_command nil {:alone [:button1 :!Creturn_or_enter :tab]}] | |
[:condi :code ["multitouch_extension_finger_count_total" 2]] | |
[:q [:button1 :a]] | |
:multitouch_extension_finger_count_total | |
[:grave_accent_and_tilde :!Tgrave_accent_and_tilde] | |
[:w :!Cw] | |
[:e :!Ct] | |
[:r :!Cl] | |
[:a {:pkey :button1 :modi :left_option}] | |
[:s :button2] | |
[:d {:pkey :button1 :modi :left_shift}] | |
;Allow "a" to be left_option in other apps | |
[:##f :button1] | |
[:g {:pkey :button1 :modi :left_command}] | |
[:z :!Cz] | |
[:non_us_backslash :!CSz] | |
[:x :!Cx] | |
[:c :!Cc] | |
[:v :!Cv] | |
[:b :!Cb] | |
[:condi ["multitouch_extension_finger_count_total" 2]] | |
[:c [:button1 :!Cc]] | |
[:v [:button1 :!Cv]] | |
[:##f :button2] | |
[:condi ["multitouch_extension_finger_count_total" 3]] | |
[:a :!COleft_arrow] | |
[:s :!Cleft_arrow] | |
[:d :!Cright_arrow] | |
[:f :!COright_arrow] | |
[:condi ["multitouch_extension_finger_count_total" 4]] | |
[:##f :return_or_enter] | |
;multitouch in Ableton | |
; | |
]} | |
{:des "playground" | |
:rules [; | |
;; [:left_shift :left_shift nil | |
;; [{:key :spacebar :modi :right_shift} :!Ospacebar] ;Launch Alfred | |
;; {:alone [:!Cc [:restream]] :delayed {:invoked :!Cv}}] | |
; | |
]} | |
;; {:des "numbers" | |
;; :rules [; | |
;; ; | |
;; [[:f :j] ["numbers" 0] :numbers] | |
;; [[:f :j] ["numbers" 1] :!numbers] | |
;; :numbers | |
;; [[:a :1] | |
;; [:s :2] | |
;; [:d :3] | |
;; [:f :4] | |
;; [:g :5] | |
;; [:h :6] | |
;; [:j :7] | |
;; [:k :8] | |
;; [:l :9] | |
;; [:semicolon :0]] | |
;; ; | |
;; ]} | |
;; {:des "Thru" | |
;; :rules [; | |
;; :!thru | |
;; [{:key :non_us_backslash} ["thru" 1]] | |
;; :thru | |
;; [{:key :non_us_backslash} ["thru" 0]] | |
;; ; | |
;; ]}jghasdfasdf§asdfasdfarstarst | |
;; {:des "qwerty" | |
;; :rules [; | |
;; :thru :qwerty | |
;; [{:key :tab} ["qwerty" 0]] | |
;; :thru | |
;; [{:key :tab} ["qwerty" 1]] | |
;; ; | |
;; ]} | |
{:des "final cut pro" | |
:rules [:fcp | |
[{:pkey :button3} | |
[:h {:pkey :button1}] | |
{:afterup {:key :a}}] | |
;; [:left_command :left_command nil {:alone :!Cb}] | |
; | |
]} | |
{:des "chrome" | |
:rules [:chrome | |
[:left_command :left_command nil {:alone [:!Cc [:c]]}] | |
;; [:grave_accent_and_tilde :a nil {:delayed {:invoked [:y] :canceled [:x]}}] | |
; | |
; | |
]} | |
{:des "code" | |
:rules [:code | |
[:right_alt :right_alt nil {:alone :!Tt}] | |
[:left_command :left_command nil {:alone :!Te}] | |
; | |
]} | |
{:des "Screenflow" | |
:rules [:Screenflow | |
[{:pkey :button3} | |
[:h {:pkey :button1}] | |
:!thru | |
{:afterup {:key :a}}] | |
[{:pkey :button2} | |
[{:pkey :button1 :modi :left_shift} :!Cdelete_or_backspace] | |
:!thru] | |
[:left_command :left_command nil {:alone [{:pkey :button1 :modi :left_shift} :!Cdelete_or_backspace]}] | |
; | |
; | |
] | |
; | |
} | |
{:des "Ableton" | |
:rules [:Ableton | |
[:left_control :left_control nil {:alone :!CSm}] | |
;; [:left_command :left_command nil {:alone :!CSt}] | |
[:right_shift :right_shift nil {:alone :!Stab}] | |
[:right_alt :right_alt nil {:alone :!COp}] | |
[:grave_accent_and_tilde :!COb] | |
[:tab :!COl] | |
[:f1 :!C1] | |
[:f2 :!C2] | |
[:f3 :!C4] | |
[:1 :!C1] | |
[:2 :!C2] | |
[:4 :!C4] | |
; | |
]} | |
{:des "caps_lock alfred" | |
:rules [:caps_lock-mode | |
[:##caps_lock :##escape] | |
; | |
]} | |
{:des "slash-mode" | |
:rules [:slash-mode | |
[:z :!Cz] | |
[:x :!Cx] | |
[:c :!Cc] | |
[:v :!Cv] | |
[:n :!Ck] | |
[:t :!Ct] | |
[:a :!Ca] | |
; | |
]} | |
{:des "j-mode" | |
:rules [:j-mode | |
;; [:a :!Cz] | |
;; [:s :!Cx] | |
;; [:d :!Cc] | |
;; [:f :!Cv] | |
;; [:g :!CSz] | |
[:a :!CSOj] | |
[:d :!CSOs] | |
[:f :!CSOl] | |
[:g [:!CSOl :!CSOs]] | |
; | |
]} | |
{:des "caps_locks to set variables" | |
:rules [:caps_lock-mode | |
[:a :!Ospacebar] ;Launch Alfred | |
;; [{:key :spacebar :modi :right_shift} :!Ospacebar] ;Launch Alfred | |
;; [:j [:alfred "google" "com.johnlindquist.google"]] ;Search Google | |
;; [:j :!!g] ;Search Google | |
[:f ["symbols" 1]] ;Search Google | |
[:j ["numbers" 1]] ;Search Google | |
;; [:c [:alfred "code" "com.vivaxy.alfred-workflow.open-in-vscode" " "]] | |
;; [:f [:launch "iTerm"]] | |
;; [:f "open -n -a \"Visual Studio Code\" --args -n"] | |
;; [:d [:launch "Slack"]] | |
;; [:n [:alfred "kill" "com.ngreenstein.alfred-process-killer" "node"]] | |
;; [:1 [:alfred "1p" "com.johnlindquist.1p"]] | |
;; [:b [:launch " /Applications/Basecamp 3.app/Contents/MacOS/Basecamp 3"]] | |
;; [:a :1] | |
;; [:s :2] | |
;; [:d :3] | |
;; [:f :4] | |
;; [:g :5] | |
;; [:h :6] | |
;; [:j :7] | |
;; [:k :8] | |
;; [:l :9] | |
;; [:semicolon :0] | |
; | |
]} | |
;; {:des "spacebar-shift-mode" | |
;; :rules [[:condi :!Sspacebar-mode] ;!]{}a(]]]) ARSTAST(IE!@#$!@# !!!) | |
;; [:a :!S1] | |
;; [:s :!S2] | |
;; [:d :!S3] | |
;; [:f :!S4] | |
;; [:g :!S5] | |
;; [:h :!S6] | |
;; [:j :!S7] | |
;; [:k :!S8] | |
;; [:l :!S9] | |
;; [:semicolon :!S0] | |
;; ; TOARSNT$!@#$^)(& OIE NOI) | |
;; ]} | |
{:des "tab-mode" | |
:rules [:tab-mode | |
; | |
]} | |
{:des "q-mode macros" | |
:rules [:q-mode | |
; | |
]} | |
{:des "semicolon-mode delete" | |
:rules [:semicolon-mode | |
[:a :!Odelete_or_backspace] | |
[:s :delete_or_backspace] | |
[:d :delete_forward] | |
[:f :!Odelete_forward] | |
[:g :!Cdelete_forward] | |
[:j :!CSk] | |
; | |
]} | |
; {:des "shell" | |
; :rules [[:!C1 ["touch ~/keyboard-shortcut-worked.js"]]] | |
; } | |
{:des "homerow" | |
:rules [:a-mode | |
[:##f :left_option nil {:alone :!TShyphen}] | |
[:##d :left_shift nil {:alone :!Thyphen}] | |
[:##s :left_command] | |
;; [:##n :delete_or_backspace] | |
;; [:##period :delete_forward] | |
[:##y :!Cleft_arrow] | |
[:##o :!Cright_arrow] | |
[:##h :left_arrow] | |
[:##j :down_arrow] | |
[:##k :up_arrow] | |
[:##l :right_arrow] | |
[:semicolon :!Tspacebar] | |
[:return_or_enter :!Creturn_or_enter] | |
[:p :!CTspacebar] | |
;; [:n :delete_or_backspace] | |
;; [:m :!Odelete_or_backspace] | |
;; [:period :!Odelete_forward] | |
;; [:comma :delete_forward] | |
[:right_shift :!TSright_arrow] | |
[:spacebar :!TSleft_arrow] | |
; | |
]} | |
{:des "command mode" | |
:rules [:s-mode | |
[:##f :left_option] | |
[:##d :left_shift] | |
[:##y :home] | |
[:##o :end] | |
[:##h :!Cleft_arrow] | |
[:##j :!Cdown_arrow] | |
[:##k :!Cup_arrow] | |
[:##l :!Cright_arrow] | |
; | |
]} | |
{:des "shift mode" | |
:rules [:d-mode | |
[:##f :left_option] | |
[:##s :left_command] | |
[:##y :!Shome] | |
[:##o :!Send] | |
[:##h :!Sleft_arrow] | |
[:##j :!Sdown_arrow] | |
[:##k :!Sup_arrow] | |
[:##l :!Sright_arrow] | |
; | |
]} | |
{:des "alt mode" | |
:rules [:f-mode | |
[:##d :left_shift] | |
[:##s :left_command] | |
[:##y :home] | |
[:##o :end] | |
[:##h :!Oleft_arrow] | |
[:##j :!Odown_arrow] | |
[:##k :!Oup_arrow] | |
[:##l :!Oright_arrow] | |
[:a ["numbers" 1]] ;123412349087arstarstarstta23412342341234123412341234arstarstarst | |
; | |
]} | |
{:des "spacebar" | |
:rules [:spacebar-mode | |
[:right_shift [:spacebar :equal_sign :spacebar]] | |
; | |
]} | |
{:des "symbols" | |
:rules [:spacebar-mode | |
;; [:q [:spacebar :equal_sign :!Speriod :spacebar]] | |
[:q [:!S9 :!S0 :equal_sign :!Speriod :spacebar]] | |
[:e [:!S9 :!S9 :!S0 :equal_sign :!Speriod :spacebar :!Sopen_bracket :!Sclose_bracket :!S0 :left_arrow :left_arrow]] | |
[:r :4] | |
[:t :5] | |
[:y :6] | |
[:u :7] | |
[:i :8] | |
[:o :9] | |
[:p :0] | |
[:a :open_bracket] | |
[:s :close_bracket] | |
[:d :!S9] | |
[:f :!S0] | |
[:g [:spacebar :equal_sign :!Speriod :spacebar]] | |
;; [:g [:left_arrow :left_arrow :left_arrow]] ;()=> | |
;; [:h [:equal_sign :!Speriod]] ;()=>()=>{}()=>{} | |
[:h [:equal_sign :!Sopen_bracket :!Sclose_bracket :left_arrow]] | |
[:j :!Sopen_bracket] | |
[:k :!Sclose_bracket] | |
; [:l :equal_sign] | |
[:l :!Scomma] ; | |
[:semicolon :!Speriod] | |
[:quote [:equal_sign :!Squote :!Squote :left_arrow]] | |
[:return_or_enter [:return_or_enter :!CSreturn_or_enter :tab]] | |
; | |
]} | |
{:des "taps" | |
:rules [; | |
; arst]a{}a]{}]a{()<><>)(<)(hdhdha]{}a]{}><)(d)} | |
[:##left_shift :left_shift nil {:alone :delete_or_backspace}] | |
[:##right_shift :right_shift nil {:alone :delete_forward}] | |
;; [:slash :right_command nil {:alone :slash}] | |
; [:z :right_command nil {:alone :z}] | |
; | |
]} ; | |
;; {:des "shortcuts" | |
;; :rules [;expand selection | |
;; [:!C1 "open https://roamresearch.com/#/app/johnlindquist"] | |
;; [:!C2 [:open-a "Visual Studio Code"]] | |
;; [:!C3 [:open-a "Day One"]] | |
;; [:!Ch "name"]]} | |
; | |
{:des "variables" | |
:rules [; | |
;; :!numbers | |
;; [[:g :h] ["numbers" 1]] | |
; | |
:numbers | |
;; [[:g :h] ["numbers" 0]] | |
;; [:caps_lock : nil {:alone ["numbers" 0]}] ;arstrstarstrstaarstrstarst | |
[:a :1] | |
[:s :2] | |
[:d :3] | |
[:f :4]; | |
[:g :5] | |
[:h :6] | |
[:j :7] | |
[:k :8] | |
[:l :9] | |
[:semicolon :0] | |
; | |
] | |
; | |
} | |
{:des "colemak" | |
:rules [; | |
:!qwerty ; | |
[:##e :f] | |
[:##r :p] | |
[:##t :g] | |
[:##y :j] | |
[:##u :l] | |
[:##i :u] | |
[:##o :y] | |
[:##p :semicolon] | |
[:##s :r] | |
[:##d :s] | |
[:##f :t] | |
[:##g :d] | |
[:##j :n] | |
[:##k :e] | |
[:##l :i] | |
[:##semicolon :o] | |
[:##n :k] | |
; | |
]} | |
; | |
; | |
{:des ":non_us_backslash" | |
:rules [[:non_us_backslash :!Cnon_us_backslash]] | |
; | |
} | |
; | |
]} | |
;; ! | 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 | |
;; !! | mandatory command + control + optional + shift (hyper) | |
;; | |
;; | |
;; | |
;; | |
;; | |
;; | |
;; ## | optional any | |
;; | |
;; | |
;; | |
;; | |
;; | |
;; | |
;; | |
;; {:des "screenflow" | |
;; :rules [[:condi :Screenflow :screenflow-on] | |
;; [:f [{:pkey :button1 :modi :left_shift} :d]] | |
;; [{:pkey :button2} [{:pkey :button1 :modi :left_shift} :d]] | |
;; [:a :!Cz] | |
;; [:s {:mkey {:hwheel 255}}] | |
;; [:d {:mkey {:hwheel -255}}] | |
;; [:1 ["screenflow-on" 0]] | |
;; ; | |
;; [:condi :Screenflow :!screenflow-on] | |
;; [:1 ["screenflow-on" 1]]]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment