Last active
September 7, 2023 20:51
-
-
Save rdavison/290abc3f5fe5db4a81f8f3e7164ac7a5 to your computer and use it in GitHub Desktop.
My GokuRakuJoudo Config
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
{ | |
: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