My Goku file as of Dec 9th.
{:default
:alone 500
:delay 200
:held 500
:sim 200
:simlayer-threshold 222
:modifiers {;
:super-hyper [:command :shift :control :option :fn]
:hyper [:command :shift :control :option]
:cos [:command :shift :option]
:cst [:command :shift :control]
:co [:command :option]
:cs [:command :shift]
:ct [:command :control]
:to [:control :option]
:ts [:control :shift]
:os [:option :shift]
;
}
:layers {
:launch-mode {:key :f24 :alone {:key :spacebar :modi :left_option}}
}
:simlayers {
:snippet-mode {:key :quote}
:tab-mode {:key :tab}
:hyphen-mode {:key :hyphen :alone {:key :hyphen}}
:alt-mode {:key :a}
:alt-shift-mode {:key :s}
:d-mode {:key :d}
:movement-mode {:key :f}
:cursor-mode {:key :g}
:delete-mode {:key :j}
:equals-mode {:key :equal_sign}
:slash-mode {:key :slash}
:semicolon-mode {:key :semicolon}
:backslash-mode {:key :backslash}
:launch-mode {:key :spacebar}
:emoji-mode {:key :z}
:open-mode {:key :o};
}
:froms {
:-a {:key :a}
:-b {:key :b}
:-c {:key :c}
:-d {:key :d}
:-e {:key :e}
:-f {:key :f}
:-g {:key :g}
:-h {:key :h}
:-i {:key :i}
:-j {:key :j}
:-k {:key :k}
:-l {:key :l}
:-m {:key :m}
:-n {:key :n}
:-o {:key :o}
:-p {:key :p}
:-q {:key :q}
:-r {:key :r}
:-s {:key :s}
:-t {:key :t}
:-u {:key :u}
:-v {:key :v}
:-w {:key :w}
:-x {:key :x}
:-y {:key :y}
:-z {:key :z}
:open_paren {:key :9 :modi :shift}
:close_paren {:key :0 :modi :shift}
}
:tos {
:return {:key :return_or_enter}
:tilde {:key :grave_accent_and_tilde}
;shortcuts
:autocomplete {:key :spacebar :modi :control} ;!Tspacebar
:command_palette {:key :t :modi :command}
:cursor_find_match {:key :d :modi :command}
:cursor_above {:key :up_arrow :modi :co}
:cursor_below {:key :down_arrow :modi :co}
:acejump {:key :j :modi :cos}
:acejump_line {:key :l :modi :cos}
:acejump_selection {:key :s :modi :cos}
:acejump_multi {:key :m :modi :cos}
:delete_line {:key :k :modi :cs} ;!CSk
:find_in_project {:key :f :modi :cs} ;!CSf
:focus_git {:key :g :modi :ts} ;!TSg
:focus_editor {:key :e :modi :control}
:focus_explorer {:key :e :modi :cos} ;:!CSOe
:focus_terminal {:key :j :modi :command}
:new_terminal {:key :grave_accent_and_tilde :modi :ts}; !TS`
:open_next_editor {:key :right_arrow :modi :co}
:open_prev_editor {:key :left_arrow :modi :co}
:go_back {:key :hyphen :modi :control}
:go_forward {:key :hyphen :modi :ts}
:replace {:key :f :mode :co}
:split_window {:key :backslash :modi :command}; !Cbackslash
:toggle_sidebar {:key :b :modi :command} ;!Cb
:expand_selection {:key :right_arrow :modi :cst}
:shrink_selection {:key :left_arrow :modi :cst}
:go_to_file {:key :p :modi :command}
:insert_line_below {:key :return_or_enter :modi :command} ;!Creturn_or_enter
:insert_line_above {:key :return_or_enter :modi :cs} ;!Creturn_or_enter
:wrap_emmet {:key :p :modi :hyper}
;named symbols
:open_brace {:key :open_bracket :modi :shift}
:close_brace {:key :close_bracket :modi :shift}
:open_paren {:key :9 :modi :shift}
:close_paren {:key :0 :modi :shift}
:less_than {:key :comma :modi :shift}
:greater_than {:key :period :modi :shift}
:emoji_picker {:key :spacebar :modi :ct} ;!CTspacebar
:open_1password {:key :p :modi :hyper} ;!OCbackslash
:take_screenshot {:key :6 :modi :cs} ;!CS6
:take_screenvideo {:key :5 :modi :cs}
}
:applications {
:code ["com.microsoft.VSCode"]
:screenflow ["net.telestream.screenflow9"]
:slack ["com.tinyspeck.slackmacgap"]
}
:templates {
:alfred "osascript -e 'tell application \"Alfred 4\" to run trigger \"%s\" in workflow \"%s\" with argument \"%s\"'"
:code-project "osascript -e 'tell application \"Visual Studio Code\" to activate' &&
open -a 'Visual Studio Code' %s -g %s
"
:launch "osascript -e 'tell application \"%s\" to activate'"
:open "open \"%s\""
:paste "osascript -e '
set the clipboard to \"%s\"
tell application \"System Events\"
keystroke \"v\" using command down
end tell
'"
:open-brave "osascript -e '
set address to \"%s\"
tell application \"Brave\"
activate
if not (exists window 1) then reopen
repeat with w in windows
set i to 1
repeat with t in tabs of w
if URL of t contains address then
set active tab index of w to i
set index of w to 1
return
end if
set i to i + 1
end repeat
end repeat
open location \"http://\" & address
end tell
'"
:type "osascript -e 'tell application \"System Events\" to keystroke \"%s\"'"
}
:main [{:des "taps"
:rules [[:##left_shift :left_shift nil {:alone :delete_or_backspace}]
[:right_shift :right_shift nil {:alone :delete_forward}]
[:caps_lock :left_control nil {:alone :escape}]
]}
{:des "delete"
:rules [:delete-mode
[:hyphen :delete_line :code]
[:hyphen :!Cdelete_or_backspace]
[:a :!Odelete_or_backspace]
[:s :delete_or_backspace]
[:d :delete_forward]
[:f :!Odelete_forward]
[:g :!Cdelete_forward]
]}
{:des "emoji"
:rules [:emoji-mode
[:-a [:paste "✨"]] ;spArkle
[:-b [:paste "😊"]] ;blush
[:-c [:paste "👏"]] ;clap
[:-d [:paste "🧐"]] ;dignified
[:-f [:paste "🔥"]] ;fire
[:-g [:paste "😬"]] ;grimace
[:-h [:paste "😍"]] ;heart-eyes
[:-i [:paste "👀"]] ;I
[:-j [:paste "😂"]] ;joking
[:-k [:paste "🤞🏻"]] ; krossed
[:-l [:paste "❤️"]] ;love
[:-m [:paste "🤯"]] ;mind blown
[:-o [:paste "💩"]] ;pOop
[:-p [:paste "🎉"]] ;party
[:-q [:paste "🤫"]] ;quiet
[:-r [:paste "🏎"]] ;racecar
[:-s [:paste "😢"]] ;sad
[:-t [:paste "🤔"]] ;thinking
[:-u [:paste "🤷♂️"]] ;shrUg
[:-v [:paste "👋🏻"]] ;waVe
[:-w [:paste "😉"]] ;wink:
[:-x [:paste "😵"]] ;x-eyes
[:-y [:paste "😅"]] ;sweatY
[:left_command [:paste "👍"]]
[:left_option [:paste "👎"]]
]}
{:des "launch"
:rules [:launch-mode
[:-b [:launch "Brave"]]
[:-d [:launch "Discord"]]
[:-e [:launch "Spark"]]
[:-i [:launch "iTerm"]]
[:-k "goku && launchctl kickstart -k org.pqrs.karabiner.karabiner_console_user_server"]
[:-l [:launch "Local"]]
[:-m [:launch "Insomnia"]] ;insoMnia
[:-n [:launch "Notion"]]
[:-o [:code-project "/Users/kevin/Dropbox/dendron/dendron.code-workspace"]]
[:-s [:launch "Slack"]]
[:-v [:launch "VLC"]]
[:-z [:launch "Visual Studio Code"]];viZ
]}
{:des "open files"
:rules [:open-mode
[:-b [:open "~/.Trash"]]
[:-c [:code-project "~/.config"]]
[:-k [:code-project "~/.config/karabiner.edn"]]
;
]}
{:des "homerow movement"
:rules [:movement-mode
[:##y :!Cleft_arrow]
[:##o :!Cright_arrow]
[:##h :left_arrow]
[:##j :down_arrow]
[:##k :up_arrow]
[:##l :right_arrow]
[:semicolon :autocomplete]
[:return_or_enter :insert_line_below]
[:left_shift :expand_selection]
]}
{:des "homerow shift"
:rules [:d-mode
[:##y :!Shome]
[:##o :!Send]
[:##h :!Sleft_arrow]
[:##j :!Sdown_arrow]
[:##k :!Sup_arrow]
[:##l :!Sright_arrow]
[:##u {:key :left-arrow :modi :os}]
[:##i {:key :right-arrow :modi :os}]
[:left_shift :shrink_selection]
[:return_or_enter :insert_line_above]
[:semicolon :expand_selection]
[:quote :shrink_selection]
;
]}
{:des "snippets"
:rules [:snippet-mode
[:-c [:type "console.log()"]] ;console.log()
; [:-n [:c :l :a :s :s :!Sn :a :m :e :equal_sign :!Squote :!Squote :left_arrow]] ;className=""
[:-e [:type "kevin@kevincunningham.co.uk"]]
]}
{:des "tab-mode"
:rules [:tab-mode
;open urls
[:-b [:open-brave "bbc.co.uk/news"]]
[:-e [:open-brave "egghead.io"]]
[:-f [:open-brave "feeder.co"]]
[:-g [:open-brave "localhost:8000"]]
[:-j [:open-brave "js.new"]]
[:-k [:open-brave "github.com/search?q=extension%3A.edn+filename%3Akarabiner.edn&type=Code&ref=advsearch&l=&l="]]
[:-l [:open-brave "localhost:3000"]]
[:-m [:open-brave "myanonamouse.net"]]
[:-n [:open-brave "localhost:3000"]]
[:-r [:open-brave "app.restream.io/titles"]]
[:-s [:open-brave "sega.local/wp-admin"]]
[:-t [:open-brave "twitter.com"]]
[:-u [:open-brave "egghead.io/lessons/new"]]
[:-x [:open-brave "next.egghead.io"]]
[:-y [:open-brave "youtube.com"]]
]}
{:des "semi-colon-mode"
:rules [:semicolon-mode
[:-n {:key :f11 :modi :co}]
[:-r {:key :f12 :modi :co}]
[:-s [:take_screenshot]]
[:-v [:take_screenvideo]]
]}
{:des "screenflow"
:rules [:screenflow
; mouse
[{:pkey :button2}
[{:pkey :button1 :modi :left_shift} :!Cdelete_or_backspace]]
]}
]}
;; rule [:period ["media-mode" 1] nil {:afterup ["media-mode" 0] :alone :period}]
;; |_____| |ti| |_| tinhhhiihhiihh|_________________________________________|
;; <from> <to> <conditions> <other options>
;; ! | 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
;;