Skip to content

Instantly share code, notes, and snippets.

@rdavison
Last active September 7, 2023 20:51
Show Gist options
  • Save rdavison/290abc3f5fe5db4a81f8f3e7164ac7a5 to your computer and use it in GitHub Desktop.
Save rdavison/290abc3f5fe5db4a81f8f3e7164ac7a5 to your computer and use it in GitHub Desktop.
My GokuRakuJoudo Config
{
:applications {
:codes ["^com\\.microsoft\\.VSCode$" "^com\\.googlecode\\.iterm2$"]
}
:input-sources {
:mtgap {
:input_source_id "org.sil.ukelele.keyboardlayout.graphite.mtgap"
:language "en"
}
}
:devices {
:hhkb-jis [{:vendor_id 1278 :product_id 34}]
:rf-jis [{:vendor_id 2131 :product_id 512}]
:internal [{:vendor_id 1452 :product_id 835}]
}
:main [
{
:des "Fix Ctrl on VSCode and iTerm"
:rules [
[:!T##grave_accent_and_tilde :vk_none [:codes :mtgap]]
[:!T##hyphen :!T##t [:codes :mtgap]]
[:!T##q :!T##hyphen [:codes :mtgap]]
[:!T##w :!T##p [:codes :mtgap]]
[:!T##e :!T##d [:codes :mtgap]]
[:!T##r :!T##semicolon [:codes :mtgap]]
[:!T##t :!T##k [:codes :mtgap]]
[:!T##y :!T##q [:codes :mtgap]]
[:!T##u :!T##r [:codes :mtgap]]
[:!T##i :!T##a [:codes :mtgap]]
[:!T##o :!T##e [:codes :mtgap]]
[:!T##p :!T##w [:codes :mtgap]]
[:!T##open_bracket :vk_none [:codes :mtgap]]
[:!T##close_bracket :vk_none [:codes :mtgap]]
[:!T##backslash :!T##grave_accent_and_tilde [:codes :mtgap]]
[:!T##a :!T##f [:codes :mtgap]]
[:!T##s :!T##l [:codes :mtgap]]
[:!T##d :!T##u [:codes :mtgap]]
[:!T##f :!T##m [:codes :mtgap]]
[:!T##g :!T##comma [:codes :mtgap]]
[:!T##h :!T##j [:codes :mtgap]]
[:!T##j :!T##slash [:codes :mtgap]]
[:!T##k :!T##y [:codes :mtgap]]
[:!T##l :!T##i [:codes :mtgap]]
[:!T##semicolon :vk_none [:codes :mtgap]]
[:!T##quote :!T##c [:codes :mtgap]]
[:!T##z :!T##equal_sign [:codes :mtgap]]
[:!T##x :!T##open_bracket [:codes :mtgap]]
[:!T##c :!T##o [:codes :mtgap]]
[:!T##v :!T##period [:codes :mtgap]]
[:!T##b :!T##n [:codes :mtgap]]
[:!T##n :!T##s [:codes :mtgap]]
[:!T##m :!T##h [:codes :mtgap]]
[:!T##comma :!T##g [:codes :mtgap]]
[:!T##period :!T##v [:codes :mtgap]]
[:!T##slash :!T##close_bracket [:codes :mtgap]]
]
}
{
:des "Window Manager Shortcuts"
:rules [
:window-mode
[:##1 :!TOS1 nil {:afterup ["window-mode" 0]}]
[:##2 :!TOS2 nil {:afterup ["window-mode" 0]}]
[:##3 :!TOS3 nil {:afterup ["window-mode" 0]}]
[:##4 :!TOS4 nil {:afterup ["window-mode" 0]}]
[:##5 :!TOS5 nil {:afterup ["window-mode" 0]}]
[:##6 :!TOS6 nil {:afterup ["window-mode" 0]}]
[:##7 :!TOS7 nil {:afterup ["window-mode" 0]}]
[:##8 :!TOS8 nil {:afterup ["window-mode" 0]}]
[:##9 :!TOS9 nil {:afterup ["window-mode" 0]}]
[:##0 :!TOS0 nil {:afterup ["window-mode" 0]}]
[:##q :!TOSq nil {:afterup ["window-mode" 0]}]
[:##w :!TOSw nil {:afterup ["window-mode" 0]}]
[:##e :!TOSe nil {:afterup ["window-mode" 0]}]
[:##r :!TOSr nil {:afterup ["window-mode" 0]}]
[:##t :!TOSt nil {:afterup ["window-mode" 0]}]
[:##y :!TOSy nil {:afterup ["window-mode" 0]}]
[:##u :!TOSu nil {:afterup ["window-mode" 0]}]
[:##i :!TOSi nil {:afterup ["window-mode" 0]}]
[:##o :!TOSo nil {:afterup ["window-mode" 0]}]
[:##p :!TOSp nil {:afterup ["window-mode" 0]}]
[:##open_bracket :!TOSopen_bracket nil {:afterup ["window-mode" 0]}]
[:##close_bracket :!TOSclose_bracket nil {:afterup ["window-mode" 0]}]
[:!Sa :!TOSz nil {:afterup ["window-mode" 0]}]
[:##a :!TOSa nil {:afterup ["window-mode" 0]}]
[:##s :!TOSs nil {:afterup ["window-mode" 0]}]
[:##d :!TOSd nil {:afterup ["window-mode" 0]}]
[:!Sf :!TOSb nil {:afterup ["window-mode" 0]}]
[:##f :!TOSf nil {:afterup ["window-mode" 0]}]
[:##g :!TOSg nil {:afterup ["window-mode" 0]}]
[:##h :!TOSh nil {:afterup ["window-mode" 0]}]
[:!Oj :!TOSw nil {:afterup ["window-mode" 0]}]
[:!Sj :!TOSq nil {:afterup ["window-mode" 0]}]
[:!CSj :!TOSn nil {:afterup ["window-mode" 0]}]
[:##j :!TOSj nil {:afterup ["window-mode" 0]}]
[:!Ok :!TOSe nil {:afterup ["window-mode" 0]}]
[:##k :!TOSk nil {:afterup ["window-mode" 0]}]
[:!Ol :!TOSr nil {:afterup ["window-mode" 0]}]
[:!Sl :!TOSt nil {:afterup ["window-mode" 0]}]
[:!SCl :!TOSslash nil {:afterup ["window-mode" 0]}]
[:##l :!TOSl nil {:afterup ["window-mode" 0]}]
[:##semicolon :!TOSsemicolon nil {:afterup ["window-mode" 0]}]
[:##quote :!TOSquote nil {:afterup ["window-mode" 0]}]
[:##z :!TOSz nil {:afterup ["window-mode" 0]}]
[:##x :!TOSx nil {:afterup ["window-mode" 0]}]
[:##c :!TOSc nil {:afterup ["window-mode" 0]}]
[:##v :!TOSv nil {:afterup ["window-mode" 0]}]
[:##b :!TOSb nil {:afterup ["window-mode" 0]}]
[:##n :!TOSn nil {:afterup ["window-mode" 0]}]
[:##m :!TOSm nil {:afterup ["window-mode" 0]}]
[:##comma :!TOScomma nil {:afterup ["window-mode" 0]}]
[:##period :!TOSperiod nil {:afterup ["window-mode" 0]}]
[:##slash :!TOSslash nil {:afterup ["window-mode" 0]}]
[:##hyphen :!TOShyphen nil {:afterup ["window-mode" 0]}]
[:##equal_sign :!TOSequal_sign nil {:afterup ["window-mode" 0]}]
[:##spacebar :!TOSspacebar nil {:afterup ["window-mode" 0]}]
[:##return_or_enter :!TOSreturn_or_enter nil {:afterup ["window-mode" 0]}]
[:##delete_or_backspace :!TOSdelete_or_backspace nil {:afterup ["window-mode" 0]}]
[:##left_arrow :!TOSleft_arrow nil {:afterup ["window-mode" 0]}]
[:##down_arrow :!TOSdown_arrow nil {:afterup ["window-mode" 0]}]
[:##right_arrow :!TOSright_arrow nil {:afterup ["window-mode" 0]}]
[:##up_arrow :!TOSup_arrow nil {:afterup ["window-mode" 0]}]
]
}
{
:des "Mouse Keys Mode v4 (rev 1)"
:rules [
[:##i {:mkey {:vwheel -32}} [["mouse_keys_mode_v4_scroll" 1]] ["mouse_keys_mode_v4" 1]]
[:##j {:mkey {:hwheel 32}} [["mouse_keys_mode_v4_scroll" 1]] ["mouse_keys_mode_v4" 1]]
[:##comma {:mkey {:vwheel 32}} [["mouse_keys_mode_v4_scroll" 1]] ["mouse_keys_mode_v4" 1]]
[:##l {:mkey {:hwheel -32}} [["mouse_keys_mode_v4_scroll" 1]] ["mouse_keys_mode_v4" 1]]
:mouse_keys_mode_v4
[:##i {:mkey {:y -3072}}]
[:##j {:mkey {:x -3072}}]
[:##comma {:mkey {:y 3072}}]
[:##l {:mkey {:x 3072}}]
[:##v {:pkey :button2}]
[:##f {:pkey :button1}]
[:##g {:pkey :button3}]
[:##s ["mouse_keys_mode_v4_scroll" 1] nil {:afterup ["mouse_keys_mode_v4_scroll" 0]}]
[:##a {:mkey {:speed 0.5}}]
[:##q {:mkey {:speed 0.25}}]
[:##z {:mkey {:speed 2.0}}]
]
}
{
:des "Internal Overrides"
:rules [
:internal
[:##right_command ["extend-hold" 1] nil {:afterup ["extend-hold" 0]}]
[:##right_option :##right_command]
[:##caps_lock :##left_control]
]
}
{
:des "Realforce JIS Overrides"
:rules [
:rf-jis
[:##japanese_pc_nfer [["oss-mode" 0] :##left_shift] ["oss-mode" 1]]
[:##japanese_pc_nfer :##left_shift nil {:alone ["oss-mode" 1]}]
[:##japanese_pc_xfer ["extend-hold" 1] nil {:afterup ["extend-hold" 0]}]
[:##left_option :##left_command]
[:##japanese_pc_katakana :##left_command]
[:##left_command :##left_option]
[:##caps_lock :delete_or_backspace ["extend-hold" 1]]
[:##caps_lock :##left_control]
]
}
{
:des "Extend (Hold)"
:rules [
:extend-hold
[:left_control :delete_or_backspace]
[:tab :!Odelete_or_backspace]
[:escape :escape]
[:##semicolon :!Fdelete_or_backspace]
[:##h :delete_or_backspace]
[:##j :left_arrow]
[:##l :right_arrow]
[:##n :!Odelete_or_backspace]
[:##m :!Oleft_arrow]
[:##period :!Oright_arrow]
[:##slash :!FOdelete_or_backspace]
[:##comma :##down_arrow]
[:##i :##up_arrow]
[:##o :!Cright_arrow]
[:##u :!Cleft_arrow]
[:##y :!Cdelete_or_backspace]
[:##p :!FCdelete_or_backspace]
[:##k :escape]
]
}
{
:des "One Shot Shift Mode"
:rules [
:oss-mode
[:grave_accent_and_tilde [["oss-mode" 0] :!Sgrave_accent_and_tilde]]
[:1 [["oss-mode" 0] :!S1]]
[:2 [["oss-mode" 0] :!S2]]
[:3 [["oss-mode" 0] :!S3]]
[:4 [["oss-mode" 0] :!S4]]
[:5 [["oss-mode" 0] :!S5]]
[:6 [["oss-mode" 0] :!S6]]
[:7 [["oss-mode" 0] :!S7]]
[:8 [["oss-mode" 0] :!S8]]
[:9 [["oss-mode" 0] :!S9]]
[:0 [["oss-mode" 0] :!S0]]
[:hyphen [["oss-mode" 0] :!Shyphen]]
[:equal_sign [["oss-mode" 0] :!Sequal_sign]]
[:q [["oss-mode" 0] :!Sq]]
[:w [["oss-mode" 0] :!Sw]]
[:e [["oss-mode" 0] :!Se]]
[:r [["oss-mode" 0] :!Sr]]
[:t [["oss-mode" 0] :!St]]
[:y [["oss-mode" 0] :!Sy]]
[:u [["oss-mode" 0] :!Su]]
[:i [["oss-mode" 0] :!Si]]
[:o [["oss-mode" 0] :!So]]
[:p [["oss-mode" 0] :!Sp]]
[:open_bracket [["oss-mode" 0] :!Sopen_bracket]]
[:close_bracket [["oss-mode" 0] :!Sclose_bracket]]
[:non_us_pound [["oss-mode" 0] :!Snon_us_pound]]
[:a [["oss-mode" 0] :!Sa]]
[:s [["oss-mode" 0] :!Ss]]
[:d [["oss-mode" 0] :!Sd]]
[:f [["oss-mode" 0] :!Sf]]
[:g [["oss-mode" 0] :!Sg]]
[:h [["oss-mode" 0] :!Sh]]
[:j [["oss-mode" 0] :!Sj]]
[:k [["oss-mode" 0] :!Sk]]
[:l [["oss-mode" 0] :!Sl]]
[:semicolon [["oss-mode" 0] :!Ssemicolon]]
[:quote [["oss-mode" 0] :!Squote]]
[:z [["oss-mode" 0] :!Sz]]
[:x [["oss-mode" 0] :!Sx]]
[:c [["oss-mode" 0] :!Sc]]
[:v [["oss-mode" 0] :!Sv]]
[:b [["oss-mode" 0] :!Sb]]
[:n [["oss-mode" 0] :!Sn]]
[:m [["oss-mode" 0] :!Sm]]
[:comma [["oss-mode" 0] :!Scomma]]
[:period [["oss-mode" 0] :!Speriod]]
[:slash [["oss-mode" 0] :!Sslash]]
[:return_or_enter [["oss-mode" 0] :return_or_enter]]
[:delete_or_backspace [["oss-mode" 0] :delete_or_backspace]]
[:left_arrow [["oss-mode" 0] :left_arrow]]
[:down_arrow [["oss-mode" 0] :down_arrow]]
[:right_arrow [["oss-mode" 0] :right_arrow]]
[:up_arrow [["oss-mode" 0] :up_arrow]]
]
}
{
:des "Qwerty Mods"
:rules [
[:!C##escape :!C##grave_accent_and_tilde :hhkb-jis]
[:!T##escape :!T##grave_accent_and_tilde :hhkb-jis]
[:!O##escape :!O##grave_accent_and_tilde :hhkb-jis]
[:!C##grave_accent_and_tilde :!C##grave_accent_and_tilde]
[:!T##grave_accent_and_tilde :!T##grave_accent_and_tilde]
[:!O##grave_accent_and_tilde :!O##grave_accent_and_tilde]
[:!C##1 :!C##1]
[:!T##1 :!T##1]
[:!O##1 :!O##1]
[:!C##2 :!C##2]
[:!T##2 :!T##2]
[:!O##2 :!O##2]
[:!C##3 :!C##3]
[:!T##3 :!T##3]
[:!O##3 :!O##3]
[:!C##4 :!C##4]
[:!T##4 :!T##4]
[:!O##4 :!O##4]
[:!C##5 :!C##5]
[:!T##5 :!T##5]
[:!O##5 :!O##5]
[:!C##6 :!C##6]
[:!T##6 :!T##6]
[:!O##6 :!O##6]
[:!C##7 :!C##7]
[:!T##7 :!T##7]
[:!O##7 :!O##7]
[:!C##8 :!C##8]
[:!T##8 :!T##8]
[:!O##8 :!O##8]
[:!C##9 :!C##9]
[:!T##9 :!T##9]
[:!O##9 :!O##9]
[:!C##0 :!C##0]
[:!T##0 :!T##0]
[:!O##0 :!O##0]
[:!C##hyphen :!C##hyphen]
[:!T##hyphen :!T##hyphen]
[:!O##hyphen :!O##hyphen]
[:!C##equal_sign :!C##equal_sign]
[:!T##equal_sign :!T##equal_sign]
[:!O##equal_sign :!O##equal_sign]
[:!C##q :!C##q ]
[:!T##q :!T##q ]
[:!O##q :!O##q ]
[:!C##w :!C##w ]
[:!T##w :!T##w ]
[:!O##w :!O##w ]
[:!C##e :!C##e ]
[:!T##e :!T##e ]
[:!O##e :!O##e ]
[:!C##r :!C##r ]
[:!T##r :!T##r ]
[:!O##r :!O##r ]
[:!C##t :!C##t ]
[:!T##t :!T##t ]
[:!O##t :!O##t ]
[:!C##y :!C##y ]
[:!T##y :!T##y ]
[:!O##y :!O##y ]
[:!C##u :!C##u ]
[:!T##u :!T##u ]
[:!O##u :!O##u ]
[:!C##i :!C##i ]
[:!T##i :!T##i ]
[:!O##i :!O##i ]
[:!C##o :!C##o ]
[:!T##o :!T##o ]
[:!O##o :!O##o ]
[:!C##p :!C##p ]
[:!T##p :!T##p ]
[:!O##p :!O##p ]
[:!C##open_bracket :!C##open_bracket ]
[:!T##open_bracket :!T##open_bracket ]
[:!O##open_bracket :!O##open_bracket ]
[:!C##close_bracket :!C##close_bracket ]
[:!T##close_bracket :!T##close_bracket ]
[:!O##close_bracket :!O##close_bracket ]
[:!C##backslash :!C##backslash ]
[:!T##backslash :!T##backslash ]
[:!O##backslash :!O##backslash ]
[:!C##a :!C##a ]
[:!T##a :!T##a ]
[:!O##a :!O##a ]
[:!C##s :!C##s ]
[:!T##s :!T##s ]
[:!O##s :!O##s ]
[:!C##d :!C##d ]
[:!T##d :!T##d ]
[:!O##d :!O##d ]
[:!C##f :!C##f ]
[:!T##f :!T##f ]
[:!O##f :!O##f ]
[:!C##g :!C##g ]
[:!T##g :!T##g ]
[:!O##g :!O##g ]
[:!C##h :!C##h ]
[:!T##h :!T##h ]
[:!O##h :!O##h ]
[:!C##j :!C##j ]
[:!T##j :!T##j ]
[:!O##j :!O##j ]
[:!C##k :!C##k ]
[:!T##k :!T##k ]
[:!O##k :!O##k ]
[:!C##l :!C##l ]
[:!T##l :!T##l ]
[:!O##l :!O##l ]
[:!C##semicolon :!C##semicolon ]
[:!T##semicolon :!T##semicolon ]
[:!O##semicolon :!O##semicolon ]
[:!C##quote :!C##quote ]
[:!T##quote :!T##quote ]
[:!O##quote :!O##quote ]
[:!C##non_us_pound :!C##non_us_pound ]
[:!T##non_us_pound :!T##non_us_pound ]
[:!O##non_us_pound :!O##non_us_pound ]
[:!C##z :!C##z ]
[:!T##z :!T##z ]
[:!O##z :!O##z ]
[:!C##x :!C##x ]
[:!T##x :!T##x ]
[:!O##x :!O##x ]
[:!C##c :!C##c ]
[:!T##c :!T##c ]
[:!O##c :!O##c ]
[:!C##v :!C##v ]
[:!T##v :!T##v ]
[:!O##v :!O##v ]
[:!C##b :!C##b ]
[:!T##b :!T##b ]
[:!O##b :!O##b ]
[:!C##n :!C##n ]
[:!T##n :!T##n ]
[:!O##n :!O##n ]
[:!C##m :!C##m ]
[:!T##m :!T##m ]
[:!O##m :!O##m ]
[:!C##comma :!C##comma ]
[:!T##comma :!T##comma ]
[:!O##comma :!O##comma ]
[:!C##period :!C##period ]
[:!T##period :!T##period ]
[:!O##period :!O##period ]
[:!C##slash :!C##slash ]
[:!T##slash :!T##slash ]
[:!O##slash :!O##slash ]
]
}
{
:des "HHKB JIS Overrides"
:rules [
:hhkb-jis
[:##japanese_eisuu [["oss-mode" 0] :##left_shift] ["oss-mode" 1]]
[:##japanese_eisuu :##left_shift nil {:alone ["oss-mode" 1]}]
[:##japanese_kana ["extend-hold" 1] nil {:afterup ["extend-hold" 0]}]
[:power :escape]
[:escape [["oss-mode" 0] :!Sgrave_accent_and_tilde] ["oss-mode" 1]]
[:##escape :grave_accent_and_tilde]
[:##left_option :##left_command]
[:##right_option :##left_command]
[:##left_command :##left_option]
[:##caps_lock :##fn]
]
}
{
:des "Global Overrides"
:rules [
[:!SCspacebar ["window-mode" 1] nil]
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment