mirror of https://github.com/einverne/dotfiles.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
925 lines
44 KiB
925 lines
44 KiB
{ |
|
;; ! | means mandatory |
|
;; # | means optional |
|
;; !! | mandatory command + control + optional + shift (hyper) |
|
;; ## | optional any |
|
|
|
;; to understand better how modifiers work in karabiner |
|
;; https://pqrs.org/osx/karabiner/json.html#from-event-definition-modifiers |
|
|
|
;; 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 |
|
;; need to prefix C T O S F with ! or # |
|
|
|
;; https://github.com/nikitavoloboev/dotfiles/blob/master/karabiner/karabiner.edn |
|
|
|
:profiles |
|
{:goku {:default true |
|
:sim 50 ;; simultaneous_threshold_milliseconds (def: 50) |
|
;; keys need to be pressed within this threshold to be considered simultaneous |
|
:delay 0 ;; to_delayed_action_delay_milliseconds (def: 500) |
|
;; time after which the key press is delayed |
|
:alone 85 ;; to_if_alone_timeout_milliseconds (def: 1000) |
|
;; hold for .. ms to register single tap |
|
:held 500 ;; to_if_held_down_threshold_milliseconds (def: 500) |
|
;; key is fired twice when 500ms is elapsed (otherwise seen as a hold command) |
|
}} |
|
:templates { |
|
: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\"'" |
|
:open "open \"%s\"" |
|
} |
|
:devices { |
|
:kybs [ ;; default for all keyboards |
|
{:vendor_id 1452} |
|
{:vendor_id 9494 :product_id 17} |
|
] |
|
:apple [{:vendor_id 1452 :product_id 832}] |
|
:quickfire [{:vendor_id 9494 :product_id 17}] |
|
} |
|
:applications {:chrome ["^com\\.google\\.Chrome$"] |
|
:chrome-canary [ "^com\\.google\\.Chrome\\.canary$"] |
|
:raycast ["^com\\.raycast\\.macos$"] |
|
:chromes ["^com\\.google\\.Chrome$" "^com\\.google\\.Chrome\\.canary$"] |
|
:ctrlnp ["^md\\.obsidian", |
|
"^com\\.jetbrains\\.intellij", |
|
"com\\.jetbrains\\.pycharm", |
|
"^com\\.tencent\\.xinWeChat", |
|
"^com\\.google\\.Chrome"] |
|
:finder ["^com\\.apple\\.finder$"] |
|
:terminals ["com\\.apple\\.Terminal", |
|
"com\\.googlecode\\.iterm2", |
|
"net.kovidgoyal.kitty"] |
|
} |
|
:input-sources {:squirrel {:input_mode_id "com.googlecode.rimeime.inputmethod.Squirrel" |
|
:input_source_id "com.googlecode.rimeime.inputmethod.Squirrel.Rime" |
|
:language "zh-Hans"} |
|
:us {:input_mode_id "" |
|
:input_source_id "com.apple.keylayout.US" |
|
:language "en"}} |
|
:layers { |
|
:hyper-mode {:key :caps_lock :alone {:key :escape}}} |
|
;; simlayers are basically "hyper" keys |
|
;; recommended for non-typing keys like `.` or tab or space |
|
;; or keys like z which are used less often |
|
:simlayers { |
|
;;:2-mode {:key :2} |
|
;;:3-mode {:key :3} |
|
;;:4-mode {:key :4} |
|
;;:tab-mode {:key :tab} |
|
;;:q-mode {:key :q} |
|
;;:w-mode {:key :w} |
|
;;:e-mode {:key :e} |
|
;;:r-mode {:key :r} |
|
;;:t-mode {:key :t} |
|
;;:i-mode {:key :i} |
|
:o-mode {:key :o} |
|
;;:caps-mode {:key :caps_lock} |
|
:a-mode {:key :a} |
|
:s-mode {:key :s} |
|
;;:d-mode {:key :d} |
|
;;:f-mode {:key :f} |
|
;;:g-mode {:key :g} |
|
;;:semicolon-mode {:key :semicolon} |
|
;;:tilde-mode {:key :grave_accent_and_tilde} |
|
;;:z-mode {:key :z} |
|
;;:x-mode {:key :x} |
|
;;:c-mode {:key :c} |
|
;;:v-mode {:key :v} |
|
;;:b-mode {:key :b} |
|
;;:n-mode {:key :n} |
|
;;:m-mode {:key :m} |
|
;;:comma-mode {:key :comma} |
|
;;:dot-mode {:key :period} |
|
;;:spacebar-mode {:key :spacebar} |
|
;;:go-mode {:key :period :condi ["in-go" 1]} |
|
;;:js-mode {:key :period :condi ["in-js" 1]} |
|
;;:swift-mode {:key :period :condi ["in-swift" 1]} |
|
;;:rust-mode {:key :period :condi ["in-rust" 1]} |
|
;;:py-mode {:key :period :condi ["in-python" 1]} |
|
;;:elixir-mode {:key :period :condi ["in-elixir" 1]} |
|
} |
|
:main [ |
|
;; each manipulator has a description and multiple rules |
|
|
|
;;{:des "..." ;; -> description |
|
;; :rules[ |
|
;; [<from> <to> <conditions>] ;; -> rule 1 |
|
;; [<from> <to> <conditions>] ;; -> rule 2 |
|
;; ]} |
|
|
|
;; rule [:period ["period-mode" 1] nil {:afterup ["period-mode" 0] :alone :period}] |
|
;; |_____| |_______________| |_| |_________________________________________| |
|
;; <from> <to> <conditions> <other options> |
|
;; |
|
;; karabiner docs: ;; https://pqrs.org/osx/karabiner/json.html#complex_modifications-manipulator-definition |
|
;; <other options> includs ~to_if_alone~, ~to_if_held_down~,~to_after_key_up~, ~to_delayed_action~ and ~parameters~. |
|
;; |
|
|
|
;; (custom variables) & modifiers -> Advanced |
|
;; https://github.com/yqrashawn/GokuRakuJoudo/blob/master/examples.org#custom-variable |
|
|
|
;; Setup for quickfire keyboard |
|
{:des "CM Storm keyboard setup" |
|
:rules [:quickfire |
|
[:##left_command :left_option] |
|
[:##left_option :left_command] |
|
[:##right_command :right_option] |
|
[:##right_option :right_command] |
|
]} |
|
|
|
{:des "swap cmd <-> option when using specific devices" |
|
:rules [ |
|
[:##left_command :left_option [:quickfire]] |
|
[:##left_option :left_command [:quickfire]] |
|
] } |
|
{:des "caps lock -> escape(alone) and caps lock -> hyper" |
|
:rules [ |
|
[:##caps_lock :!CTOleft_shift nil {:alone :escape}] |
|
]} |
|
{:des "Ctrl np -> down up" |
|
:rules [ |
|
[:!Tn :down_arrow [:ctrlnp]] |
|
[:!Tp :up_arrow [:ctrlnp]] |
|
]} |
|
{:des "F2 as Rename in Finder" |
|
:rules [ |
|
[:##f2 :return_or_enter [:finder]]]} |
|
{:des "Disable Cmd+H Hide" |
|
:rules [ |
|
[:!Ch nil nil [:kybs]] |
|
]} |
|
{:des "Ctrl W -> Delete last word" |
|
:rules [ |
|
[:!Tw :!Tw [:terminals]] |
|
[:!Ww :!Ww [:terminals]] |
|
[:!Tw :!TOSdelete_or_backspace [:!terminals]] |
|
[:!Ww :!TOSdelete_or_backspace [:!terminals]] |
|
]} |
|
{:des "Cmd + Q held 1 second to quit" |
|
:rules [ |
|
[:!Cq nil nil {:held :!Cq :repeat false}]]} |
|
{:des "Quit application by pressing command-q twice" |
|
:rules [[:!C#Pq [:!Cq ["command-q" 0]] ["command-q" 1]] |
|
[:!C#Pq ["command-q" 1] nil {:delayed {:invoked ["command-q" 0] :canceled ["commandq" 0]}}]]} |
|
{:des "Use Delete as Move to Trash" |
|
:rules [ |
|
[:##delete_forward :!Cdelete_or_backspace [:finder]]]} |
|
{:des "right_command to f16" |
|
:rules [ |
|
[:##right_command :f16] |
|
]} |
|
{:des "colonkey (shift)" |
|
:rules [:semicolon-mode |
|
[:1 :!T1] |
|
[:2 :!T2] |
|
[:3 :!T3] |
|
[:4 :!T4] |
|
[:5 :!T5] |
|
[:q :!Sq] |
|
[:w :!Sw] |
|
[:e :!Se] |
|
[:r :!Sr] |
|
[:t :!St] |
|
[:y :!Sy] |
|
[:u :!Su] |
|
[:i :!Si] |
|
[:o :!So] |
|
[:p :!Sp] |
|
[:a :!Sa] |
|
[:s :!Ss] |
|
[:d :!Sd] |
|
[:f :!Sf] |
|
[:g :!Sg] |
|
[:h :!Sh] |
|
[:j :!Sj] |
|
[:k :!Sk] |
|
[:l :!Sl] |
|
[:grave_accent_and_tilde [:!Sgrave_accent_and_tilde]] ; -> ~ |
|
[:z :!Sz] |
|
[:x :!Sx] |
|
[:c :!Sc] |
|
[:v :!Sv] |
|
[:b :!Sb] |
|
[:n :!Sn] |
|
[:m :!Sm]]} |
|
{:des "jsim" |
|
:rules [[[:j :k] [:alfred "search google" "net.deanishe.alfred-searchio"]] |
|
[[:j :semicolon] [:alfred "search tabs" "net.deanishe.alfred.safari"]] |
|
[[:j :l] :!Cspacebar]]} ; Alfred |
|
{:des "ksim" |
|
:rules [[[:k :l] [:alfred "search dash" "com.kapeli.dash.workflow"]] |
|
[[:k :m] [:alfred "search youtube" "net.deanishe.alfred-searchio"]]]} |
|
{:des "2key (move + alfred)" |
|
:rules [:2-mode |
|
[:j "say '2 j press'"] |
|
[:o [:alfred "soulver" "app.soulver.alfredworkflow"]] |
|
[:j :!Cdown_arrow] |
|
[:k :!Cup_arrow] |
|
[:l :!Cright_arrow] |
|
[:h :!Cleft_arrow] |
|
[:semicolon :!Oup_arrow] |
|
[:quote :!Odown_arrow] |
|
[:spacebar :!COSu]]} ; Selection -> HN |
|
{:des "3key (open files + projects)" |
|
:rules [:3-mode |
|
[:r [:km "proj: LA"]] |
|
[:i [:km "edit: Likes"]] |
|
[:o [:km "edit: Projects"]] |
|
[:t [:km "edit: Git config"]] |
|
[:h [:km "wiki: Used hotkeys"]] |
|
[:j [:km "edit: Aliases"]] |
|
[:k [:km "edit: Zsh functions"]] |
|
[:l [:km "Search current safari url in wiki"]] |
|
[:semicolon [:km "proj: Knowledge"]] |
|
[:quote [:km "wiki: Summary"]] |
|
[:n [:km "proj: Dotfiles"]] |
|
[:m [:km "proj: Home"]] |
|
[:comma [:km "edit: Now"]] |
|
[:period [:km "edit: GitHub Bio"]] ; TODO: |
|
[:spacebar :!CSOp]]} ; Selection -> Reddit |
|
{:des "4key (open curated lists)" |
|
:rules [:4-mode |
|
[:r [:km "edit: Web Searches"]] |
|
[:t [:km "list: Newsletters"]] |
|
[:o [:km "list: Blogs"]] |
|
[:p [:km "list: Podcasts"]] |
|
[:k [:km "list: Alfred workflows"]] |
|
[:l [:km "list: Command line tools"]] |
|
[:n [:km "list: Events"]]]} |
|
{:des "tabkey (websites)" |
|
:rules [:tab-mode |
|
;[:j :!SOTw] ; Replies |
|
;[:k :!SOTf] ; App specific |
|
;[:l :!SOTr] ; Personal |
|
[:j [:km "w: Phabricator"]] |
|
[:k [:km "w: GitLab"]] |
|
[:l [:km "w: RealTime"]] |
|
[:period [:km "w: CodeSandbox"]]]} |
|
{:des "qkey (cmd + shift)" |
|
:rules [:q-mode |
|
[:3 :!CS3] |
|
[:4 :!CS4] |
|
[:5 :!CS5] |
|
[:6 :!CS6] |
|
[:7 :!CS7] |
|
[:8 :!CS8] |
|
[:9 :!CS9] |
|
[:0 :!CS0] |
|
[:w :!CSw] |
|
[:e :!CSe] |
|
[:r :!CSr] |
|
[:t :!CSt] |
|
[:y :!CSy] |
|
[:u :!CSu] |
|
[:i :!CSi] |
|
[:o :!CSo] |
|
[:p :!CSp] |
|
[:open_bracket :!CSopen_bracket] |
|
[:close_bracket :!CSclose_bracket] |
|
[:a :!CSa] |
|
[:s :!CSs] |
|
[:d :!CSd] |
|
[:f :!CSf] |
|
[:g :!CSg] |
|
[:h :!CSh] |
|
[:j :!CSj] |
|
[:k :!CSk] |
|
[:l :!CSl] |
|
[:semicolon :!CSsemicolon] |
|
[:quote :!CSquote] |
|
[:z :!CSz] |
|
[:x :!CSx] |
|
[:c :!CSc] |
|
[:v :!CSv] |
|
[:b :!CSb] |
|
[:n :!CSn] |
|
[:m :!CSm] |
|
[:comma :!CScomma] |
|
[:period :!CSperiod] |
|
[:slash :!CSslash] |
|
[:spacebar :!CSOe]]} ; Selection -> YouTube |
|
{:des "wkey (apps)" |
|
:rules [:w-mode |
|
[:e [:km "open: Fantastical"]] |
|
[:r [:km "open: Notion"]] |
|
[:t [:km "open: Activity Monitor"]] |
|
;[:i [:km "open: Safari Technology Preview"]] |
|
[:i [:km "open: Instruments"]] |
|
[:o [:km "open: Keyboard Maestro"]] |
|
[:p [:km "open: Postgres"]] |
|
[:caps_lock [:km "open: Finder"]] |
|
[:a :!OSC1] ; Open Dash |
|
[:d [:km "open: Postico"]] |
|
[:f [:km "open: 2Do"]] |
|
;[:g [:km "open: Linear"]] |
|
[:j [:km "open: iTerm"]] |
|
[:k [:km "open: Safari"]] |
|
[:l [:km "open: VS Code"]] |
|
[:semicolon [:km "open: Xcode"]] |
|
[:quote [:km "open: Console"]] |
|
[:c [:km "open: Spotify"]] |
|
[:v [:km "open: Paw"]] |
|
[:b [:km "open: BetterTouchTool"]] |
|
[:n [:km "open: Sublime Text"]] |
|
[:m [:km "open: Sublime Merge"]] |
|
;[:period [:km "open: Proxyman"]] |
|
[:period [:km "open: Cypress"]] |
|
[:spacebar :!CT7]]} ; Start Google search with selection |
|
{:des "ekey (cmd)" |
|
:rules [:e-mode |
|
[:q :!Cq] |
|
[:w :!Cw] |
|
[:r :!Cr] |
|
[:t :!Ct] |
|
[:u :!Cu] |
|
[:i :!Ci] |
|
[:p :!Cp] |
|
[:open_bracket :!Copen_bracket] |
|
[:close_bracket :!Cclose_bracket] |
|
[:semicolon :!Csemicolon] |
|
[:quote :!Cquote] |
|
[:comma :!Ccomma] |
|
[:period :!Cperiod] |
|
[:slash :!Cslash] |
|
[:a :!Ca] |
|
[:b :!Cb] |
|
[:c :!Cc] |
|
[:d :!Cd] |
|
[:f :!Cf] |
|
[:g :!Cg] |
|
[:h :!Ch] |
|
[:j :!Cj] |
|
[:k :!Ck] |
|
[:l :!Cl] |
|
[:m :!Cm] |
|
[:n :!Cn] |
|
[:o :!Co] |
|
[:s :!Cs] |
|
[:v :!Cv] |
|
[:x :!Cx] |
|
[:y :!Cy] |
|
[:z :!Cz] |
|
[:1 :!C1] |
|
[:2 :!C2] |
|
[:3 :!C3] |
|
[:4 :!C4] |
|
[:5 :!C5] |
|
[:6 :!C6] |
|
[:7 :!C7] |
|
[:8 :!C8] |
|
[:9 :!C9] |
|
[:0 :!C0] |
|
[:spacebar :!CSO7]]} ; Selection -> Google Lucky |
|
{:des "rkey (apps)" |
|
:rules [:r-mode |
|
[:tab [:km "open: Transmission"]] |
|
[:q [:km "open: IINA"]] |
|
[:w [:km "open: 1Password"]] |
|
[:e [:km "open: Keynote"]] |
|
;[:i [:km "open: Flume"]] |
|
[:i [:km "open: Feedback Assistant"]] |
|
[:o [:km "open: Developer"]] |
|
;[:caps_lock [:km "open: Preview"]] |
|
[:a [:km "open: Alfred Preferences"]] |
|
[:j [:km "open: Dictionary"]] |
|
[:k [:km "open: Preview"]] |
|
[:l [:km "open: Books"]] |
|
;[:k [:km "open: PDF Expert"]] |
|
;[:l [:km "open: Reeder"]] |
|
[:b [:km "Edit keyboard shortcuts"]] |
|
[:n [:km "open: ScreenFlow"]] |
|
[:m [:km "open: OBS"]] |
|
[:comma [:km "open: Arq"]] |
|
[:period [:km "open: Final Cut Pro"]] |
|
[:spacebar :!COSx]]} ; Selection -> Reddit |
|
{:des "tkey (palettes + websites)" |
|
:rules [:t-mode |
|
[:0 [:km "w: regex101"]] |
|
[:e [:km "w: Facebook"]] |
|
[:r [:km "w: Repl"]] |
|
[:u [:km "w: Medium"]] |
|
[:i [:km "w: Arxiv"]] |
|
[:o [:km "w: Stack Overflow"]] |
|
[:p [:km "w: Dropbox"]] |
|
[:a [:km "w: Amazon"]] |
|
[:h [:km "w: Twitch"]] |
|
[:j :!COSo] ; Safari URL -> Twitter |
|
;[:j :!COSo] ; Safari URL -> Google |
|
;[:k :!COSo] ; Safari URL -> HN |
|
;[:l :!COSo] ; Safari URL -> Lobsters |
|
[:semicolon [:km "w: Netlify"]] |
|
[:z [:km "w: MDN"]] |
|
[:b [:km "w: Observable"]] |
|
[:m [:km "w: Meetup"]] |
|
[:comma [:km "w: Google Drive"]] |
|
[:period [:km "w: IFTTT"]] |
|
[:spacebar :!COSr]]} ; Selection -> Google Translate |
|
{:des "ikey (symbols)" |
|
:rules [:i-mode |
|
[:1 :!S1] |
|
[:2 :!S2] |
|
[:3 :!Sequal_sign] |
|
[:4 :!S8] |
|
[:5 :!S5] |
|
[:q :!Sopen_bracket] |
|
[:w :!S9] |
|
[:e :!S3] |
|
[:r :!Squote] |
|
[:t :quote] |
|
[:o :open_bracket] ; [ |
|
[:p :close_bracket] ; ] |
|
[:open_bracket :!Sclose_bracket] |
|
[:caps_lock [:km "Match symbols"]] |
|
[:a :slash] |
|
[:s :!Shyphen] |
|
[:d :backslash] |
|
[:f :hyphen] |
|
[:g :!S4] |
|
[:j :equal_sign] |
|
[:l [:hyphen :!Speriod :spacebar]] ; -> arrow (->) |
|
[:semicolon :semicolon] |
|
[:grave_accent_and_tilde :!Sgrave_accent_and_tilde] ; -> // |
|
[:z :!Sslash] |
|
[:x :!Sbackslash] |
|
[:c :!S7] |
|
[:v :!Scomma] |
|
[:b [:slash :slash :spacebar]]]} ; -> // |
|
{:des "Open related applications" |
|
:rules [:o-mode |
|
[:1 :!C1] |
|
[:2 :!C2] |
|
[:3 :!C3] |
|
[:4 :!C4] |
|
[:b [:open "/Applications/Obsidian.app"]] |
|
[:c [:open "/Applications/Google Chrome.app"]] |
|
[:w [:open "/Applications/WeChat.app"]] |
|
[:g [:open "/Applications/GoldenDict.app"]] |
|
[:v [:open "/Applications/Visual Studio Code.app"]] |
|
[:j [:open "/Users/einverne/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app"]] |
|
[:t [:open "/Applications/iTerm.app"]] |
|
;[:c [:alfred "search emoji" "com.github.jsumners.alfred-emoji"]] |
|
[:spacebar [:alfred "search PDFs" "nikivi.search.files"]]]} |
|
{:des "capskey (todo + trello)" |
|
:rules [:caps-mode |
|
[:0 :down_arrow] |
|
[:1 [:alfred "Screenshot -> Imgur" "com.vitorgalvao.alfred.webscreenshot"]] |
|
[:2 :!TO2] ; Screenshot -> Clipboard |
|
[:3 :!TO3] ; Screenshot -> Annotate |
|
[:4 :!TO9] ; Picture of screen -> Clipboard |
|
[:5 :!TO0] ; Picture of screen -> ~/Desktop |
|
[:w [:km "wiki: My workflow"]] |
|
[:e [:km "edit: Private notes"]] |
|
[:r [:km "wiki: Rules"]] |
|
[:t [:km "wiki: Processes"]] |
|
[:u [:km "Open 2Do Buy"]] |
|
[:i [:km "Open 2Do Fix"]] |
|
[:o [:km "Open 2Do Tools"]] |
|
[:p [:km "Open 2Do Repeat"]] |
|
[:open_bracket [:km "w: Goodreads (currently reading)"]] |
|
[:close_bracket [:km "w: Goodreads (next)"]] |
|
[:s [:km "Open 2Do Wiki"]] |
|
[:d [:open "notion://nikitavoloboev/Ideas-0b5a4e8a88f34fe29a1f33dad02e5332"]] |
|
[:f [:km "Search 2Do"]] |
|
[:g [:km "Open 2Do Life"]] |
|
[:h [:open "notion://nikitavoloboev/Learn-05c0eac7be904e0da89cd8a3bf7ab509"]] |
|
[:j [:km "Open 2Do Today"]] |
|
[:k [:km "Open 2Do GitHub"]] |
|
[:l [:km "Open 2Do Later"]] |
|
[:semicolon [:km "Open 2Do Starred"]] |
|
[:quote [:km "Open 2Do Other"]] ; TODO: remove once its empty |
|
[:c [:km "Look back"]] |
|
[:v [:km "wiki: Goals"]] |
|
[:b [:open "notion://nikitavoloboev/Papers-Courses-8f00c7c500d5460490a5800c5d5db431"]] |
|
[:n [:km "Open 2Do Clean"]] |
|
[:m [:km "Open 2Do Work"]] |
|
[:period [:km "Open 2Do LA"]]]} |
|
{:des "akey (ctrl)" |
|
:rules [:a-mode |
|
[:2 :!T2] |
|
[:3 :!T3] |
|
[:4 :!T4] |
|
[:5 :!T5] |
|
[:6 :!T6] |
|
[:7 :!T7] |
|
[:8 :!T8] |
|
[:9 :!T9] |
|
[:0 :!T0] |
|
[:q :!Tq] |
|
[:w :!Tw] |
|
[:e :!Te] |
|
[:r :!Tr] |
|
[:t :!Tt] |
|
[:i :!Ti] |
|
[:o :!To] |
|
[:y :!Ty] |
|
[:u :!Tu] |
|
[:p :!Tp] |
|
[:open_bracket :!Topen_bracket] |
|
[:close_bracket :!Tclose_bracket] |
|
[:s :!Ts] |
|
[:d :!Td] |
|
[:f :!Tf] |
|
[:g :!Tg] |
|
[:h :!Th] |
|
[:j :!Tj] |
|
[:k :!Tk] |
|
[:l :!Tl] |
|
[:semicolon :!Tsemicolon] |
|
[:quote :!Tquote] |
|
[:z :!Tz] |
|
[:x :!Tx] |
|
[:c :!Tc] |
|
[:v :!Tv] |
|
[:b :!Tb] |
|
[:n :!Tn] |
|
[:m :!Tm] |
|
[:comma :!Tcomma] |
|
[:period :!Tperiod] |
|
[:slash :!Tslash] |
|
[:spacebar :!CT9]]} ; Selection -> Google |
|
{:des "skey (essential)" |
|
:rules [:s-mode |
|
[:w [:!Oleft_arrow :!OSright_arrow]] ; Highlight word |
|
[:e :tab] |
|
[:r :!Stab] |
|
[:t :!Sreturn_or_enter] |
|
[:u :!COp] ; Selection -> HasteBin link |
|
[:i :!CTperiod] ; Contexts search active windows |
|
[:o :!Cx] ; Cut |
|
;[:open_bracket :!Oleft_arrow] |
|
[:open_bracket [:km "Lowercase selected text"]] |
|
[:close_bracket [:km "Uppercase selected text"]] |
|
[:a :!Cc] ; Copy |
|
[:d :delete_or_backspace] |
|
[:f :return_or_enter] |
|
[:g :!Ctab] |
|
[:##h :left_arrow] |
|
[:##j :down_arrow] |
|
[:##k :up_arrow] |
|
[:##l :right_arrow] |
|
[:semicolon :!CTO0] ; Search Alfred Snippets |
|
[:quote [:!Cleft_arrow :!CSright_arrow]] ; Highlight current line |
|
[:c :!Cdelete_or_backspace] |
|
[:v :left_shift] |
|
[:##b :!Cleft_arrow] |
|
[:n :!Cv] ; Paste |
|
[:##m :!Cright_arrow] |
|
[:period :!COS0]]} ; Selection -> Alfred Snippets TODO: |
|
{:des "dkey (mouse)" |
|
:rules [:d-mode |
|
[:i :!Ckeypad_hyphen] ; Zoom out |
|
[:o :!Ckeypad_plus] ; Zoom in |
|
[:a [:!Cc :!Ctab]] ; Copy & activate previous app |
|
[:j {:mkey {:vwheel 60}}] ; Scroll down |
|
[:k {:mkey {:vwheel -60}}] ; Scroll up |
|
[:l [:km "Google clipboard"]] |
|
;[:l [:km "Google selected word"]] |
|
[:semicolon [:km "Google Searchio selected word"]] |
|
[:quote [:km "Select line and google"]] |
|
[:z {:pkey :button2}] ; Right click |
|
[:v {:pkey :button1}] ; Left click |
|
[:b {:pkey :button3}] ; Middle click |
|
[:n [:km "Open URL in clipboard in Safari"]] |
|
[:m [:km "Google Lucky selected word"]] |
|
[:comma :!TO8] ; Show Launchpad |
|
[:period :!CTO3] ; Mission control |
|
[:spacebar :!CT8]]} ; Selection -> Dictionary (wiki) |
|
{:des "fkey (essential)" |
|
:rules [:f-mode |
|
[:1 [:km "View Sip"]] |
|
[:2 [:km "Go to test macro"]] |
|
[:3 [:km "New global macro"]] ; TODO: create global macro from Test (clear test, focus on naming new macro) |
|
[:tab [:km "Test"]] |
|
;[:q [:km "open: Photos"]] |
|
;[:w [:km "open: Simulator / Xcode"]] |
|
;[:q [:km "open: MindNode"]] |
|
[:q [:km "open: Chrome Canary"]] |
|
[:w [:km "Save clipboard link"]] |
|
[:e :!CO8] ; Alfred clipboard history search |
|
[:r [:km "Centre mouse to active app"]] |
|
[:i :!Treturn_or_enter] |
|
[:o :!Oreturn_or_enter] |
|
[:p :!CTOc] ; Sleep |
|
[:open_bracket :!CT5] ; Turn display on/off |
|
[:caps_lock :!CTOu] ; Sip color picker |
|
[:a [:km "open: Figma"]] |
|
[:s [:km "edit: 2nd iTerm tab"]] |
|
[:d [:km "Save clipboard link (top)"]] |
|
[:h [:km "Make markdown link from selection {link}"]] |
|
[:j [:km "edit: 1st iTerm tab"]] |
|
[:k :return_or_enter] |
|
[:l :!Creturn_or_enter] |
|
[:semicolon [:km "edit: Karabiner"]] |
|
[:quote [:km "Goku Run"]] |
|
[:z :!Ospacebar] ; Switch language (Russian <-> English) |
|
[:n :!Freturn_or_enter] |
|
[:m :!Sreturn_or_enter] |
|
[:comma [:km "Add safari link to selected markdown text"]] |
|
[:period :!CTO4] ; Alfred file action |
|
[:spacebar :!CTq]]} ; Selection -> Web Searches |
|
{:des "gkey (actions)" |
|
:rules [:g-mode |
|
[:q :!CT3] ; Search bartender menu items |
|
[:w :!CSgrave_accent_and_tilde] ; Switch between active windows (go up) |
|
[:caps_lock [:km "Go to KM group of current app from picklist"]] |
|
[:a [:km "Go to KM group of current app"]] |
|
[:s [:km "Dismiss notifications"]] |
|
[:h :!CSOa] ; Move window left |
|
[:j :!Cgrave_accent_and_tilde] ; Switch between active windows (go down) |
|
[:k :!COSf] ; Maximize window |
|
[:l :!CSOd] ; Move window right |
|
[:semicolon :!COSs] ; Move window between different screen & maximize (iPad) |
|
[:z :!CO0] ; Show Dropzone dropdown |
|
[:n :!CTOg] ; Turn on/off notifications |
|
[:m :!COslash] ; Show/hide notification centre |
|
[:period :!COS6]]} ; Toggle Night Shift on/off. |
|
{:des "tilkey (actions + language switches)" |
|
:rules [:tilde-mode |
|
[:w [:alfred "toggle wifi" "nikivi.wifi.tools"]] |
|
[:e :!CTk] ; Turn on/off BTT TouchBar |
|
[:r [:alfred "restart wifi" "nikivi.wifi.tools"]] |
|
[:d [:km "Commit dotfiles"]] |
|
[:f [:km "Commit learning"]] |
|
[:h [:km "Commit home"]] |
|
[:j [[:open "dash://.js:"] ["in-python" 0] ["in-go" 0] ["in-js" 1] ["in-elixir" 0] ["in-rust" 0] ["in-swift" 0]]] ; JS |
|
;[:j [[:open "dash://.jsts:"] ["in-python" 0] ["in-go" 0] ["in-js" 1] ["in-elixir" 0] ["in-rust" 0] ["in-swift" 0]]] ; JS |
|
[:k [[:open "dash://.go:"] ["in-python" 0] ["in-go" 1] ["in-js" 0] ["in-elixir" 0] ["in-rust" 0] ["in-swift" 0]]] ; Go |
|
[:l [[:open "dash://.python:"] ["in-python" 1] ["in-go" 0] ["in-js" 0] ["in-elixir" 0] ["in-rust" 0] ["in-swift" 0]]] ; Python |
|
[:c [:km "Commit code"]] |
|
[:v [:km "Commit wiki"]] |
|
;[:n [[:open "dash://.rust:"] ["in-python" 0] ["in-go" 0] ["in-js" 0] ["in-elixir" 0] ["in-rust" 1] ["in-swift" 0]]] ; Rust |
|
;[:n :!STh] ; Record macro |
|
;[:m [[:open "dash://.swift:"] ["in-python" 0] ["in-go" 0] ["in-js" 0] ["in-elixir" 0] ["in-rust" 0] ["in-swift" 1]]] ; Swift |
|
[:spacebar :!COSn]]} ; Selection -> GitHub |
|
{:des "zkey (chat)" |
|
:rules [:z-mode |
|
[:e [:km "open: Telegram"]] |
|
[:i [:km "open: WhatsApp"]] |
|
[:o [:km "open: Zoom"]] |
|
[:p [:km "open: FaceTime"]] |
|
[:d [:km "New Spark email"]] |
|
[:f [:km "open: Spark"]] |
|
[:g [:alfred "search contacts" "nikivi.search.content"]] |
|
[:h [:km "Create new contact"]] |
|
[:j [:km "w: Element"]] |
|
[:k [:km "open: Telegram"]] |
|
[:l [:km "open: Discord"]] |
|
[:semicolon [:km "open: Slack"]] |
|
[:c [:km "open: Contacts"]] |
|
[:v [:km "open: Tweetbot"]] |
|
[:b [:km "w: Twitter"]] |
|
[:n [:km "New tweet"]] |
|
[:m [:km "New tweet with current URL"]] |
|
[:comma [:km "w: Twitter Search"]] |
|
[:period [:km "open: Textual"]] |
|
[:slash [:km "Search Tweetbot"]] |
|
[:spacebar :!CSOz]]} ; Selection -> Twitter |
|
{:des "xkey (spotify)" |
|
:rules [:x-mode |
|
[:o [:km "Paste current Spotify song link"]] |
|
[:open_bracket [:alfred "twitter_search_current_track" "com.vdesabou.spotify.mini.player"]] |
|
[:close_bracket [:alfred "add_current_track_to" "com.vdesabou.spotify.mini.player" "spotify:playlist:2N82DnDsPGMnpJhN8sVFJu"]] ; Add song to Bliss playlist |
|
[:j [:alfred "show_alfred_playlist" "com.vdesabou.spotify.mini.player"]] |
|
[:k [:alfred "show_current_track" "com.vdesabou.spotify.mini.player"]] |
|
[:semicolon [:alfred "add_current_track_to_alfred_playlist_or_your_music" "com.vdesabou.spotify.mini.player"]] ; Add song to Likes playlist |
|
[:quote [:alfred "add_current_track_to" "com.vdesabou.spotify.mini.player" "spotify:playlist:0ESjwZeTcHOWzY3FYO5zs5"]] ; Add song to Focus playlist |
|
[:n [:alfred "add_current_track_to" "com.vdesabou.spotify.mini.player"]] |
|
[:m [:alfred "remove_current_track_from" "com.vdesabou.spotify.mini.player"]] |
|
;[:comma [:alfred "youtube_search_current_track" "com.vdesabou.spotify.mini.player"]] ; TODO: twitter search |
|
[:comma [:alfred "show_search_online" "com.vdesabou.spotify.mini.player"]] ; TODO: split up further into binds for direct searches of tracks/artists/all |
|
[:period [:alfred "youtube_search_current_track" "com.vdesabou.spotify.mini.player"]] |
|
[:slash [:alfred "reddit_search_current_track" "com.vdesabou.spotify.mini.player"]]]} |
|
{:des "ckey (run + dots)" |
|
:rules [:c-mode |
|
[:tab [:km "proj: Learning"]] |
|
[:u [:km "run: Rust"]] |
|
[:i [:km "run: Julia"]] ; TODO: maybe use Pluto.jl notebook |
|
[:o [:km "run: Deno"]] |
|
[:a [:km "Clone repo to ~/clones and open with VS Code"]] |
|
[:s [:km "Clone repo to ~/clones"]] |
|
;[:d [:km "Clone repo to ~/src/clones and open with VS Code"]] ; TODO: open with Xcode |
|
[:j [:km "run: Bash"]] |
|
[:k [:km "run: Go"]] |
|
[:l [:km "run: Python"]] |
|
[:semicolon [:alfred "search learning" "nikivi.private.directories"]] |
|
[:quote [:km "proj: Go"]] |
|
[:n [:km "run: Node"]] |
|
[:m [:km "run: Swift"]] |
|
[:period [:km "edit: Dotfiles Magefile"]] |
|
[:spacebar :!CSOy]]} ; Selection -> Stack Overflow |
|
{:des "vkey (media)" |
|
:rules [:v-mode |
|
[:q :illumination_decrement] |
|
[:w :illumination_increment] |
|
[:e [:km "Change macOS appearance (dark/light)"]] |
|
[:i :display_brightness_decrement] |
|
[:o :display_brightness_increment] |
|
[:p [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:37i9dQZEVXcMHpP6EcIqNe"]] ; Discover Weekly |
|
[:open_bracket [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:0ERn0U4qZIKC8Dy7RrMMsn"]] ; Likes |
|
[:close_bracket [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:2N82DnDsPGMnpJhN8sVFJu"]] ; Bliss |
|
;[:a [:km "Repeat Spotify song"]] ; TODO: do in background |
|
[:s [:km "Play/pause Spotify"]] |
|
[:d :!CO9] ; Connect/disconnect AirPods |
|
[:h :vk_consumer_previous] |
|
[:j :mute] |
|
[:k :vk_consumer_play] |
|
[:l :vk_consumer_next] |
|
[:semicolon [:alfred "spot_mini" "com.vdesabou.spotify.mini.player"]] |
|
[:grave_accent_and_tilde [:alfred "artist_radio" "com.vdesabou.spotify.mini.player"]] |
|
[:z [:alfred "song_radio" "com.vdesabou.spotify.mini.player"]] |
|
[:b [:alfred "show_playlists" "com.vdesabou.spotify.mini.player"]] |
|
[:n :volume_decrement] |
|
[:m :volume_increment] |
|
[:comma [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:0ESjwZeTcHOWzY3FYO5zs5"]] ; Focus |
|
[:period [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:5QOChSDsvLTtBwXmIn8Pss"]] ; Ambient |
|
[:slash [:alfred "play" "com.vdesabou.spotify.mini.player" "spotify:playlist:5fIL0WiQ79QtgsP4Y4L20V"]] ; Inspired |
|
[:spacebar :!CSOv]]} ; Selection -> Google Images |
|
{:des "bkey (break)" |
|
:rules [:b-mode |
|
[:9 [:alfred "search hn" "com.vitorgalvao.alfred.hackerboard"]] |
|
[:0 [:km "w: HN (show new)"]] |
|
[:q [:km "w: KM forum"]] |
|
[:w [:km "w: Swift forum"]] |
|
[:e [:km "w: Behance"]] |
|
[:r [:km "w: Medium (network)"]] |
|
[:t [:km "w: Medium (bookmarks)"]] |
|
[:u [:km "w: Product Hunt"]] |
|
[:i [:km "w: Dribble"]] |
|
[:o [:km "w: Pinboard"]] |
|
[:p [:km "w: Indie Hackers"]] |
|
[:open_bracket [:km "w: Reddit Saved"]] |
|
[:close_bracket [:km "w: Twitter Bookmarks"]] |
|
[:a [:km "w: HN"]] |
|
[:s [:km "w: Lobsters"]] |
|
[:d [:km "w: Reddit"]] |
|
[:f [:km "w: Reddit (all)"]] |
|
[:g [:km "w: Alfred Forum"]] |
|
[:h [:km "w: Product Hunt (new)"]] |
|
[:j [:km "w: Reddit (new)"]] |
|
[:k [:km "w: GitHub (front page)"]] |
|
[:l [:km "w: Lobsters (new)"]] |
|
[:semicolon [:km "w: HN (new)"]] |
|
[:quote [:km "w: HckrNews"]] |
|
[:z [:km "w: HN (comments)"]] |
|
[:x [:km "w: Lobsters (comments)"]] |
|
[:n [:km "w: Inoreader"]] |
|
[:m [:km "w: Mastodon"]] |
|
[:comma [:km "w: GitHub (trending)"]] |
|
[:period [:km "w: YouTube (subs)"]] |
|
[:slash [:km "w: GitHub (explore)"]] |
|
[:spacebar :!TOSs]]} ; Selection -> DuckDuckGo |
|
{:des "nkey (alfred)" |
|
:rules [:n-mode |
|
[:1 :!O1] |
|
[:2 :!O2] |
|
[:3 :!O3] |
|
[:4 :!O4] |
|
[:5 :!O5] |
|
[:6 :!O6] |
|
[:q [:alfred "search github" "nikivi.search.the.web"]] |
|
[:w [:alfred "search twitter" "nikivi.search.the.web"]] |
|
[:e [:alfred "search subs" "net.deanishe.alfred-reddit"]] |
|
[:r [:alfred "search reddit" "nikivi.search.the.web"]] |
|
[:t [:alfred "ssh" "net.deanishe.alfred-ssh"]] |
|
[:a [:alfred "search shares" "nikivi.ask.create.share"]] |
|
[:s [:alfred "search websites" "nikivi.web.searches"]] |
|
[:d [:alfred "search stack overflow" "net.deanishe.alfred-stackoverflow"]] |
|
;[:d [:alfred "search packages" "com.sindresorhus.npms"]] |
|
[:f [:alfred "search repos" "me.lachlan.githubjump"]] |
|
[:g [:alfred "search godoc" "nikivi.search.the.web"]] |
|
[:h [:alfred "search hn" "nikivi.search.the.web"]] |
|
[:grave_accent_and_tilde [:alfred "search learn anything" "nikivi.learn.anything"]] |
|
[:z [:alfred "search lobsters" "nikivi.search.the.web"]] |
|
[:x [:alfred "search stack" "net.deanishe.alfred-stackoverflow"]] |
|
[:c [:alfred "search wiki" "nikivi.mind"]] |
|
[:v [:alfred "search links" "nikivi.mind"]] |
|
;[:v [:alfred "search pinboard" "nikivi.search.the.web"]] ; TODO: topics/search/more? |
|
[:b [:alfred "search bookmarks" "net.deanishe.alfred.safari"]] |
|
[:spacebar [:alfred "search history" "net.deanishe.alfred.safari"]]]} |
|
{:des "mkey (dash)" |
|
:rules [:m-mode |
|
[:3 [:alfred "search alfred" "nikivi.utilities" "d3 "]] |
|
[:q [:alfred "search alfred" "nikivi.utilities" "tldr "]] |
|
[:w [:alfred "search alfred" "nikivi.utilities" "django "]] |
|
[:e [:alfred "search alfred" "nikivi.utilities" "html "]] |
|
[:r [:alfred "search alfred" "nikivi.utilities" "react "]] |
|
[:t [:alfred "search alfred" "nikivi.utilities" "ts "]] |
|
[:a [:alfred "search alfred" "nikivi.utilities" "man "]] |
|
[:d [:alfred "search alfred" "nikivi.utilities" "docker "]] |
|
[:f [:alfred "search alfred" "nikivi.utilities" "apple "]] |
|
[:s [:alfred "search alfred" "nikivi.utilities" "lodash "]] |
|
[:d [:alfred "search alfred" "nikivi.utilities" "node "]] |
|
[:g [:alfred "search alfred" "nikivi.utilities" "godoc "]] |
|
[:c [:alfred "search alfred" "nikivi.utilities" "css "]] |
|
[:v [:alfred "search alfred" "nikivi.utilities" "vim "]] |
|
[:b [:alfred "search alfred" "nikivi.utilities" "bash "]]]} |
|
{:des "commakey (words)" |
|
:rules [:comma-mode |
|
[:w [:n :i :k :i :v :i]] ; -> nikivi |
|
[:a [:n :i :k :i :t :a :v :o :l :o :b :o :e :v ]]]} ; -> nikitavoloboev |
|
{:des "dotkey (1-3, q-u, caps, tab)" |
|
:rules [:dot-mode |
|
[:1 [:!Sc :l :o :s :e :spacebar :!S3]] ; -> Close # |
|
[:2 [:!Sr :e :f :spacebar :!S3]] ; -> Ref # |
|
[:3 [:!Sf :i :x :spacebar :!S3]] ; -> Fix # |
|
[:q [:!Sa :spacebar :slash :slash :spacebar]] ; -> // (on same line) |
|
[:w [:km "VSCode/XCode/Sublime comment on top of line"]] |
|
[:e [:!St :!So :!Sd :!So :!Ssemicolon :spacebar]] ; -> TODO: |
|
[:r [:km "VSCode/XCode/Sublime comment on top of line with TODO"]] |
|
[:t [:!Sn :!So :!St :!Se :!Ssemicolon :spacebar]] ; -> NOTE: |
|
[:y [:p :l :e :a :s :e :spacebar]] ; -> please |
|
[:u [:u :p :d :a :t :e :spacebar]] ; -> update |
|
[:caps_lock [:!Cf :!St :!So :!Sd :!So :!Ssemicolon :return_or_enter]] ; -> search TODO: in file |
|
[:grave_accent_and_tilde [:!CSf :!St :!So :!Sd :!So :!Ssemicolon :return_or_enter]] ; -> search TODO: globally |
|
[:left_gui [:!St :h :a :n :k :s :spacebar]] ; -> Thanks |
|
[:spacebar [:!St :h :a :n :k :spacebar :y :o :u :period :spacebar]]]} ; -> Thank you. |
|
{:des "jsdot" |
|
:rules [:js-mode |
|
[:tab [:km "w: MDN"]] |
|
[:a [:c :o :n :s :o :l :e :period :l :o :g :!S9 :!S0 :left_arrow]] ; -> console.log() |
|
;[:a [:c :o :n :s :o :l :e :period :w :a :r :n :!S9 :!S0 :left_arrow]] ; -> console.warn() |
|
[:s [:equal_sign :!Speriod :spacebar]] ; -> => |
|
[:d [:r :e :t :u :r :n :spacebar]] ; -> return |
|
[:f [:!Cf :c :o :n :s :o :l :e :period :l :o :g :!S9 :return_or_enter]] ; -> search console.log( in file |
|
;[:f [:!Cf :c :o :n :s :o :l :e :period :w :a :r :n :!S9 :return_or_enter]] ; -> search console.warn( in file |
|
[:g [:right_arrow :spacebar :equal_sign :!Speriod :spacebar :!Sopen_bracket :return_or_enter]] ; -> => {} |
|
[:j [:right_arrow :spacebar :equal_sign :spacebar]] ; -> = |
|
[:k [:right_arrow :spacebar :!Sopen_bracket :return_or_enter]] ; -> { } |
|
[:z [:spacebar :c :l :a :s :s :!Sn :a :m :e :equal_sign :!Squote :!Squote :left_arrow]] ; -> className="" |
|
;[:x [:t :a :c :h :y :o :n :s :spacebar]] ; -> tachyons |
|
;[:c [:spacebar :s :t :y :l :e :equal_sign :!Sopen_bracket :!Sopen_bracket :!Sclose_bracket :!Sclose_bracket :left_arrow :left_arrow]] ; -> style={{}} |
|
[:c [:spacebar :s :t :y :l :e :equal_sign :!Sopen_bracket :!Sclose_bracket :left_arrow]] ; -> style={} |
|
[:v [:j :a :v :a :s :c :r :i :p :t :spacebar]] ; -> javascript |
|
[:b [:t :y :p :e :s :c :r :i :p :t :spacebar]]]} ; -> typescript |
|
{:des "godot" |
|
:rules[:go-mode |
|
[:tab [:km "w: GoDoc"]] |
|
[:a [:f :m :t :period :!Sp :r :i :n :t :l :n :!S9 :!S0 :left_arrow]] ; -> fmt.Println() |
|
[:s [:!Ssemicolon :equal_sign :spacebar]] ; -> := |
|
[:d [:r :e :t :u :r :n :spacebar]] ; -> return |
|
[:f [:!Cf :f :m :t :period :p :return_or_enter]] ; -> search fmt.p in file |
|
[:g [:i :f :spacebar :e :r :r :spacebar :!S1 :equal_sign :spacebar :n :i :l :spacebar :!Sopen_bracket :return_or_enter]] ; -> if err != nil {} |
|
[:j [:grave_accent_and_tilde :j :s :o :n :!Ssemicolon :!Squote :!Squote :grave_accent_and_tilde :left_arrow :left_arrow]] ; -> `json:""` |
|
[:z [:l :o :g :period :!Sp :r :i :n :t :l :n :!S9 :!S0 :left_arrow]] ; -> log.Println() |
|
[:x [:f :m :t :period :!Sp :r :i :n :t :l :n :!S9 :!S0 :left_arrow :!Squote :hyphen :hyphen]] ; -> fmt.Println("--") |
|
[:c [:!STsemicolon]] ; Selection -> Go Playground |
|
[:v [:g :o :l :a :n :g :spacebar]] ; -> golang |
|
[:b [:l :o :g :period :!Sf :a :t :a :l :!S9 :e :r :r :!S0]]]} ; -> log.Fatal(err) |
|
{:des "pydot" |
|
:rules[:py-mode |
|
[:a [:p :r :i :n :t :!S9 :!S0 :left_arrow]] ; -> print() |
|
[:s [:hyphen :!Speriod]] ; -> -> |
|
[:d [:r :e :t :u :r :n :spacebar]] ; -> return |
|
[:v [:p :y :t :h :o :n :spacebar]]]} ; -> python |
|
{:des "swiftdot" |
|
:rules[:swift-mode |
|
[:a [:p :r :i :n :t :!S9 :!S0 :left_arrow]] ; -> print() |
|
[:v [:s :w :i :f :t :spacebar]]]} ; -> swift |
|
{:des "rustdot" |
|
:rules[:rust-mode |
|
[:a [:p :r :i :n :t :l :n :!S1 :!S9 :!S0 :left_arrow]] ; -> println!() |
|
[:v [:r :u :s :t :spacebar]]]} ; -> rust |
|
{:des "elixdot" |
|
:rules[:elixir-mode |
|
[:a [:!Si :!So :period :p :u :t :s :!S9 :!S0 :left_arrow]] ; -> IO.puts() |
|
[:v [:e :l :i :x :i :r :spacebar]]]} ; -> elixir |
|
{:des "spacekey (websites)" |
|
:rules [:spacebar-mode |
|
;[:tab :!CO5] ; TODO: Configure ScreenFlow recording |
|
[:q [:km "open: CleanShot"]] |
|
[:w :!Cw] ;; Cmd+w |
|
[:e :!TO2] ; Screenshot -> Clipboard |
|
[:r :!COS4] ; Screenshot -> CleanShot (cloud) |
|
;[:r :!TOCp] ; Screenshot -> Imgur |
|
;[:r :!TOCp] ; Screenshot -> Imgur (auth) |
|
[:t :!CS4] ; Screenshot -> ~/Desktop |
|
;[:i [:km "w: Google Sheets"]] |
|
[:i [:km "w: GitHub (notifications)"]] ; TODO: jump between GitHub (issues/prs) |
|
[:o [:km "w: Google Docs"]] |
|
[:open_bracket [:km "w: Google Slides"]] |
|
[:close_bracket [:km "w: Beautiful.ai"]] |
|
[:caps_lock :!CTOSg] ; Loom recording |
|
[:a :!TO4] ; CleanShot recording |
|
;[:s :!CO5] ; TODO: Pause/unpause ScreenFlow recording |
|
[:f :!CO5] ; Start/stop ScreenFlow recording |
|
[:h [:km "w: Roam Research"]] |
|
[:j [:km "w: Excalidraw"]] |
|
[:k [:km "w: GitHub"]] |
|
[:l [:km "w: Localhost"]] |
|
[:semicolon [:km "w: StackBlitz"]] |
|
[:quote [:km "w: Learn Anything"]] |
|
[:b [:km "w: Digital Ocean"]] |
|
[:n [:km "w: GCP"]] |
|
[:m [:km "w: AWS"]] |
|
[:comma [:km "w: Diagrams"]] |
|
[:period [:km "w: YouTube"]] |
|
[:slash [:km "w: GitHub PR"]]]} ; TODO: |
|
]}
|
|
|