Skip to content

Instantly share code, notes, and snippets.

@saif97
Forked from johnlindquist/current.edn
Created August 21, 2020 15:20
Show Gist options
  • Save saif97/3c8e8ffa8cfd6104dcc8fae8ae17108f to your computer and use it in GitHub Desktop.
Save saif97/3c8e8ffa8cfd6104dcc8fae8ae17108f to your computer and use it in GitHub Desktop.
;; 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