LoginSignup
12
5

More than 3 years have passed since last update.

macOS Big Sur で 日本語 IM のスペースを常に半角にする

Last updated at Posted at 2021-04-06

目次

⚠️ 注意

Big Sur でも Catalina 以前と同じように KeySetting_Default.plistKeySetting_Windows.plist を編集することで、スペースを常に半角にすることができました。
しかし、副作用として SIP と SSV 認証が無効な状態でしか起動できなくな (るのと、恐らく FileVault の有効化をしたらまずいことにな) ります。
なにか続報があったら追記します。
また、情報をご存知の方がいたらコメント頂けると嬉しいです。

環境

PC: MacBook Pro (13 インチ, 2019)
CPU: 2.8 GHz クアッドコア Intel Core i7
OS: macOS Big Sur 11.2.3

手順

1. FileVault をオフにする

  1. システム環境設定アプリを起動する
  2. セキュリティとプライバシー > FileVault に移動する
  3. 「FileVaultをオフにする...」 をクリックする
  4. 「暗号化をオフにする」をクリックする
  5. シャットダウンする

2. System Integrity Protection (SIP) を無効にする

  1. Command + R キーを押しながら電源を入れ (M1 Mac の場合は電源ボタンを長押しし) て macOS復旧を起動する
  2. メニューバーの ユーティリティ > ターミナル をクリックして、ターミナルを起動する
  3. 以下のコマンドを実行して SIP を無効にする
bash
# csrutil disable

3. Signed System Volume (SSV) 認証を無効にする

  1. 続けてターミナルで以下のコマンドを実行して SSV 認証を無効にする
bash
# csrutil authenticated-root disable

2. Mac を再起動する

4. システムファイルを書き込み可能としてマウントする

  1. 通常のユーザーでログインする
  2. ターミナルを起動する
  3. システムボリュームのデバイス ID を確認する (私の場合は disk1s5 でした)
zsh
% diskutil list | grep Macintosh
   1:                APFS Volume ⁨Macintosh HD - Data⁩    199.0 GB   disk1s1
   5:                APFS Volume ⁨Macintosh HD⁩           15.1 GB    disk1s5

4. マウントポイントを作成する

$MOUNT_POINT は任意のパスに置き換えてください。

zsh
% mkdir $MOUNT_POINT

ホームディレクトリに mount という名前で作成する場合は以下。

zsh
% mkdir ~/mount

5. システムボリュームをマウントする

$DEVICE_NODE/dev/システムボリュームのデバイス ID に、 $MOUNT_POINT はマウントポイントのパスに置き換えてください。

zsh
% sudo mount -o nobrowse -t apfs $DEVICE_NODE $MOUNT_POINT

システムボリュームのデバイス ID が disk1s5 で、マウントポイントを ~/mount とする場合は以下。

zsh
% sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount

5. 設定ファイルを編集する

  1. ディレクトリごと一応バックアップする

$MOUNT_POINT はマウントポイントのパスに置き換えてください。

zsh
sudo tar acvf ~/Resources.tar.gz $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources

マウントポイントを ~/mount とした場合は以下。

zsh
sudo tar acvf ~/Resources.tar.gz ~/mount/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources

2. KeySetting_*.plist ファイルを開く (私は code (VSCode) を使用しましたが vim でも nano でもお好きなエディタでかまわないです)

日本語 IM の設定で「Windows 風のキー操作」にチェックをつけていない場合は以下。

zsh
sudo code $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist

日本語 IM の設定で「Windows 風のキー操作」にチェックをつけている場合は以下。

zsh
sudo code $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Windows.plist

3. スペースの設定を書き換える

KeySetting_Default.plist
   <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>

4. ファイルを保存して閉じる

6. SSV を更新する

  1. ターミナルで以下のコマンドを実行して、システムボリュームの新しいスナップショットを取得する
zsh
sudo bless --folder $MOUNT_POINT/System/Library/CoreServices --bootefi --create-snapshot

2. 再起動する

問題

以上の手順をすべて行った後に macOS復旧のターミナルで csrutil enablecsrutil authenticated-root enable を実行し、再起動したところ

Mac 起動 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> ...

というループに陥ってしまいました。
再度 csrutil disablecsrutil authenticated-root disable を実行すると起動できたので、ひとまず SIP と SSV 認証は無効のまま使うしかなさそうです。
なお、SIP だけ有効で SSV 認証は無効、なども試してみましたが起動できませんでした。

参考文献

  1. macOS Catalina (Mojave, High Sierra, Sierra)で日本語入力時に常にスペースを半角に
  2. macOS 11.0 Big Surの署名済みシステム・ボリュームはセキュリティ保護を強化
  3. Big Sur’s Signed System Volume: added security protection
  4. macOS High Sierra の JapaneseIM で常に半角スペースを入力する方法
  5. ビッグサーで書き込み可能なルートとしてマウント
  6. How to make root volume writeable in Big Sur?
  7. Can I mount the root (system) filesystem as writable in Big Sur?
12
5
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5