概要
GUIに設定項目がないため、/System/Library/Input Methods/JapaneseIM.app/Contents/Resources
配下にある設定ファイルを編集します。
El CapitanからはSystem Integrity Protection (SIP, 通称rootless)により、該当の設定ファイルの書き換えが行えなくなっています。
そのため、一度rootlessを無効化してからファイルを書き換え、再びrootlessを有効化します。1
rootlessの無効化
リカバリーモードで起動
rootlessを無効化するにはリカバリーモードで起動する必要があります。
リカバリーモードで起動するには、Macを再起動して起動時に⌘+R
キーを押したままにします。
しばらく待つと言語の選択画面が表示されますので、英語の場合は「Use English for the main language」、日本語の場合は「主に日本語を使用する」を選択して次に進みます。
その後、「OS X Utilities」が表示されます。上部の「Utilities」メニューから「Terminal」を起動します。
csrutilコマンドによるrootless無効化
次のコマンドを実行し、rootlessを無効化します。
# csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
通常モードで再起動
「」メニューから「Restart」を選択して再起動します。
KeySetting_*.plistの書き換え
再起動後、/System/Library/Input Methods/JapaneseIM.app/Contents/Resources/KeySetting_Default.plist
を編集します。
(「Windows-like shortcuts」にチェックを入れている場合は/System/Library/Input Methods/JapaneseIM.app/Contents/Resources/KeySetting_Windows.plist
)
$ sudo vim "/System/Library/Input Methods/JapaneseIM.app/Contents/Resources/KeySetting_Default.plist"
16行目(1)と23行目(2)のstring
要素の内容が、それぞれ全角スペース、半角スペースになっているので入れ替えます。
...
<key>before_typing</key>
<dict>
<key>' '</key>
<dict>
<key>command</key>
<string>direct_input</string>
<key>character</key>
<string> </string> <!-- (1) -->
</dict>
<key>shift+' '</key>
<dict>
<key>command</key>
<string>direct_input</string>
<key>character</key>
<string> </string> <!-- (2) -->
</dict>
...
rootlessの有効化
リカバリーモードで起動
再び、Macを再起動してリカバリーモードになり、Terminalを起動します。
csrutilコマンドによるrootless有効化
次のコマンドを実行し、rootlessを有効化します。
# csrutil enable
Successfully enabled System Integrity Protection. Please restart the machine for the changes to take effect.
通常モードで再起動
「」メニューから「Restart」を選択して再起動します。
これで日本語入力時にSpace
を入力すると半角スペースになり、Shift+Space
で全角スペースになります。
参考
-
rootlessの有効/無効を切り替えるには再起動が必要です。無効化後の再起動をリカバリーモードにすれば、再起動回数を減らせると思いましたが、リカバリーモードのターミナルで該当の編集ファイルを開くと文字化けが起こるので、通常モードで起動するのが無難です。 ↩