macOS Big Surで1920×1200の疑似解像度を追加するための手順です。
この方法を使えばSIPを無効にせずにディスプレイ環境設定から1920×1200の解像度を選択できるようになります。
手順
必要な設定ファイルをコピー
以下のコマンドで/System/Library/Displaysの中身をすべて/Library配下にコピーします。
sudo cp -R /System/Library/Displays /Library/
Display-IDを確認
ターミナルを開き、以下のコマンドで編集する対象のDisplay-IDを確認します。
ioreg -lw0 | grep DisplayVendorID ioreg -lw0 | grep DisplayProductID
私のMacbook Pro 13 Late 2013だと以下のようになりました。
DisplayVendorID = 1552
DisplayProductID = 40984
取得した値を以下のコマンドで16進数に変更し、変更後の値をメモしておきます。
※<DisplayVendorID>と<DisplayProductID>は取得した値に置き換えてください
printf '%x %x\n' <DisplayVendorID> <DisplayProductID>
私の場合は「610」と「a018」になりました。
設定ファイルを編集
以下のコマンドで取得したDisplay-IDに紐づく設定ファイルが格納されているディレクトリに移動します。
cd /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-<DisplayVendorIDを16進数にした値>/
次に以下のコマンドで設定ファイルを開き、編集します。
sudo vi DisplayProductID-<DisplayProductIDを16進数にした値>
<key>scale-resolutions</key> <array> <data>AAAPAAAACWAAAAAB</data> <!-- 1920x1200(今回追加した値) --> <data>AAANIAAACDQAAAAB</data> <data>AAALQAAABwgAAAAB</data> <data>AAAIAAAABQAAAAAB</data> <data>AAAGcgAABBoAAAAB</data>
追加する値は以下のコマンドで取得することができます。
※値はMacの型番によって桁数が異なるので、一度設定ファイルを開いて桁数を確認してください。
16桁の場合
printf '%08x%08x00000001\n' $((1920*2)) $((1200*2)) | xxd -r -p | base64
12桁の場合
printf '%08x%08x00\n' $((1920*2)) $((1200*2)) | xxd -r -p | base64
最後に
CatalinaのときはSIPを無効にしてSystemディレクトリの中身を直接編集する方法が様々なところで紹介されていましたが、この方法ならSIPを無効にせずに追加することができます。
これは以下のページでAppleの中の人と思われる人が説明しています。
ざっくり読んだところ「/Library/に/System/Library/と同じ構成で格納すればそっちを参照するよ」ということらしいです。
こんな方法があるならどこか公式のドキュメントに書いておいてほしいものですね^^;
コメント
[…] こんな手順は自分でたどり着くことができるわけもなく、毎回Webでの情報に助けられている。macOS Big Surで1920×1200の擬似解像度を追加する | Fantastic Worksとはいえ、自分は色々無知なのでここに書かれていることだけだと設定変更を完遂できないので他にも色々調べていかないといけない(viの操作方法とか)。 […]