macOS 10.3 High Sierra にアップグレードが完了しまして。動作が軽くなったように思います。そんなわけで、High Sierra は今のところ当たりのような気がしています。
しかも High Sierra では、初めから Karabiner-Elements が使え、USキーボードでも入力モードの切り替えが快適です。ありがたや。
しかし毎年恒例になってきておりますが。日本語 (かな) 入力時のスペースが全角になる問題。これは今年もやってきました。いい加減、チェックボタンひとつで設定させてほしいものです。しかも High Sierra では仕様に変更があったようで、ますます面倒くさいことに…。
やりたいこと
とにかく入力モードにかかわらず、スペースは半角で入力したいのです。文書中で特別な理由がないのに、スペースが全角だったり半角だったりしていると気持ちが悪い。特に、ファイル名に全角スペースとか気持ち悪くて仕方がない。
これまでは、日本語 (かな) 入力時に Space キーを押すと全角のスペースが入力され、Shift + Space で半角スペースが入力されるのを。プロパティリストの記述を書き換えて、これをひっくり返すことで。Space = 半角スペース。Shift + Space = 全角スペースとしていました。
これにより基本的には半角スペースしか使わない私は、快適に入力することができたのです。
つまり、かな入力時でもこんな動作。
- Space = 半角スペース (通常は、全角スペース)
- Shift + Space = 全角スペース (通常は、半角スペース)
しかし High Sierra では、この辺りの仕様に変更があったようです。単純に設定を逆にしただけではダメでした。しかもかな入力時も全角だったり半角だったりどっちが入力されるのかいまいち規則性がわからない…。今まで以上に気持ち悪くなりました。
今回は、El Capitan と、Sierra での経験を生かして (?) 自己流でやっちゃいました。
まだあまり情報がなく。でも全角スペースになるのが、本当に気持ち悪いので。ちょっとプロパティリストをいじったくらいで壊れりゃしないだろうと思って、やっちゃいました。
よって参考にしていただく場合は、自己責任でお願いいたします。
もはや Mac のメジャーアップデートにおける恒例行事となっております。
macOS High Sierra の JapaneseIM で日本語 (かな) 入力時もスペースを半角にする方法
この方法が、唯一の方法か、または正しい方法か不明ですが。以下の方法で。かな入力時も Space のみで半角スペースの入力ができるようになります。他の動作に影響があるかもしれませんが。私の環境では、問題なく使えております。
大まかな手順は以下の通りです。
- プロパティリストをバックアップする
- Rootless を無効にする
- プロパティリストを編集する
- Rootless を有効にする
それでは、行ってみます。
1.プロパティリストをバックアップする
かな入力時にも Space だけで半角スペースの入力を実現するためには「KeySetting_Default.plist」もしくは「KeySetting_Windows.plist」というプロパティリストを編集します。
そのため事前にこれらのプロパティリストをどこかにコピーして、バックアップを取っておきます。
これらのプロパティリストは「/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/」にあります。
結構深い階層にあるし、途中「パッケージの内容を表示」で開く必要があったりで。たどり着くのが少し面倒なので、上のパスをコピって Finder の移動メニューから「フォルダへ移動 (Shift + Command + G)」を開いて貼り付けて移動してください。
また「KeySetting_Default.plist」と「KeySetting_Windows.plist」のどちらを編集するかは。キーボードの設定で「Windows風のキー操作」にチェックを入れているか否かにより変わります。
「設定 > キーボード > 入力ソース」を開き。Windows風のキー操作」にチェックが入っていなければ「KeySetting_Default.plist」をバックアップ。チェックが入っていれば「KeySetting_Windows.plist」をバックアップしてください。
2.Rootless を無効にする
バックアップができたら、プロパティリストを編集したいところですが。このままだと編集できません。El Capitan から導入されたセキュリティシステム、SIP (System Integrity Protection)。通称 Rootless を一時的に無効にします。
Rootless を無効にするためには、Mac を リカバリモードで起動します。Command + R を押しながら Mac を起動するとリカバリモードで起動できます。
リカバリモードで起動できたら。メニューバーのユーティリティからターミナルを開きます。
ターミナルが開けたら、以下のコマンドを実行して Rootless を無効にします。
1 | csrutil disable |
ここまでできたら、Mac を再起動して通常起動します。
3.プロパティリストを編集する
Mac を通常起動したら、またターミナルでの作業になるので、
「アプリケーション > ユーティリティ > ターミナル.app」を起動します。
実行するコマンドは以下となります。
キボードの設定で「Windows 風のキー操作」にチェックを入れていない場合
1 | sudo vim "/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist" |
キボードの設定で「Windows 風のキー操作」にチェックを入れている場合
1 | sudo vim "/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Windows.plist" |
実行するとパスワードを求めらるので、Mac のアカウントのパスワードを入力します。入力しても表示はされません。自信を持って入力しちゃってください。
すると。こんなのが開くんですけど、Sierra までと違っています。
Sierra までは。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <key>' '</key> <dict> <key>command</key> <string>direct_input</string> <key>character</key> <string> </string> //全角 </dict> <key>shift+' '</key> <dict> <key>command</key> <string>direct_input</string> <key>character</key> <string> </string> //半角 </dict> |
となっていて、全角と半角を入れ替えてあげればよかったんですけど。
High Sierra では。
1 2 3 4 5 6 7 8 9 10 | <key>' '</key> <dict> <key>command</key> <string>contextual_space</string> </dict> <key>shift+' '</key> <dict> <key>command</key> <string>contextual_space_reverse</string> </dict> |
となっています。
初めに「
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <key>' '</key> <dict> <key>command</key> <string>direct_input</string> <key>character</key> <string> (半角スペース)</string> </dict> <key>shift+' '</key> <dict> <key>command</key> <string>direct_input</string> <key>character</key> <string> (全角スペース)</string> </dict> |
つまり上記の記述に書き換えます。
(コピペする場合は「(半角スペース)」と「(全角スペース)」を消してください)
「i」で編集モードに入り、上記の通り編集し。「esc」でコマンドモードに戻り、「:wq」で編集を保存して終了します。
編集後は、Mac の再起動か、日本語入力プログラムの再起動が必要ですが。Rootless を元に戻す時に再起動しますので、そこは問題ないかと。
Vim の操作を簡単に補足します。
(私も全然詳しくないので、簡単に)
- 編集モードに移行する「i」
- 編集モードからコマンドモードに戻る「esc」
- 変更を保存せずに終了「:q!」(失敗してやり直す時に使ってください)
- 変更を保存して続行「:w」
- 変更を保存して終了「:wq」
今回の作業では、基本的に太字にしたものだけでいけます。
これでかな入力時も Space = 半角スペース、Shift + Space = 全角スペースとすることができました!
4. Rootless を有効にする
ことが済みましたら、セキュリティのため Rootless の設定を元に戻します。
先ほどの手順で Mac をリカバリモードで起動し、ターミナルを起動したら。今度は。
1 | csrutil enable |
を実行します。
心配な方は Mac の再起動後、以下のコマンドで Rootless のステイタスを確認できます。
1 | csrutil status |
「System Integrity Protection status: enabled.」と表示されれば OKです。
まとめ
以上が「macOS High Sierra の JapaneseIM で常に半角スペースを入力する方法」です。
ただ先ほども触れましたが、今のところ問題なく使えていますが。この方法が他に影響がないのかは不明です。もっとよい方法、または正しい方法があれば、コメントいただけると助かります (コメント欄は 1年間開いています)。
いい加減キーボードの設定で、このぐらいのことは設定させて欲しいのです。挙句、ライブ変換のためか、二言語入力のためか。半角と全角のどちらが入力されるのかわからなくなってしまった…。
日本語環境にも積極的に新機能を開発してもらえるのはありがたいが。スペースは、私の自由にさせておくれ。
入力時に自動で選択するようになったということは、今後も設定できるようにするつもりなないのだろうか…。
USキーボードの方はこちらも参考にしてください。