MacOSX
JapaneseIM
HighSierra
Mojave

macOS High Sierra / Mojave で 日本語モード時に スペース <-> 半角 入れ替え

csrutil status
System Integrity Protection status: enabled.

command+R起動してからTerminal

csrutil disable
reboot
sudo vi "/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist"
--- /System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist.orig 2017-09-26 10:34:40.000000000 +0900
+++ /System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist  2017-09-26 10:38:30.000000000 +0900
@@ -11,12 +11,16 @@
            <key>&apos; &apos;</key>
            <dict>
                <key>command</key>
-               <string>contextual_space</string>
+               <string>direct_input</string>
+               <key>character</key>
+               <string> </string>
            </dict>
            <key>shift+&apos; &apos;</key>
            <dict>
                <key>command</key>
-               <string>contextual_space_reverse</string>
+               <string>direct_input</string>
+               <key>character</key>
+               <string> </string>
            </dict>
            <key>delete:</key>
            <dict>
killall JapaneseIM

入力をどこでもいいのので望み通りの動きか確かめて再起動

command+R起動してからTerminal

csrutil enable
reboot

contextual_space_reverse / contextual_space を有効活用したかったが、スペース連打すると半角スペース -> 全角スペース と交互に繰り返したりでうまくいかなかったのでベタ書き

Mojaveでも手順は一緒でした