Ideal Reality

興味の赴くままに

macOSで利用できる擬似解像度を追加する

MacではRetina Displayの搭載されたモデルで適切な表示を行うために、擬似的な解像度でレンダリングを行ってから実際のディスプレイ解像度にスケールする機能があります。

標準で選べるのは5種類ですが、キーボードのOption(Alt)を押しながら「変更」に切り替えることでより多くの解像度を選ぶことができます。

選べる解像度が増える

また、以下のようなサードパーティーのアプリを利用することで更に多くの解像度に変更できます。

avibrazil/RDM

Easily set Mac Retina display to higher unsupported resolutions - avibrazil/RDM

ただし、それでも欲しい擬似解像度が必ずあるとは限りません。そこで、利用できる擬似解像度の追加をします。

※ 2020/12/8 macOS Big Sur用に書き換えました

Contents
スポンサーリンク

環境

今回、自宅のiMacをMacbook Airから遠隔操作しやすいよう、iMacで1680x1050(HiDPI)の擬似解像度を使えるようにします。

  • モデル
    • iMac (Retina 5K, 27-inch, 2019)
  • OS
    • macOS Big Sur 11.0.1
  • 追加する解像度
    • 1680x1050(HiDPI) = 3360x2100

この記事ではiMacの内蔵Retinaディスプレイを例に説明しますが、同様の方法でMacbookや外部ディスプレイでもできるはずです。

SIP・システムボリュームの扱い

Catalinaではシステムディレクトリ内のディスプレイ定義ファイルを書き換えて解像度を追加していました。ところがBig Surではシステムファイルを書き換えることができなくなり困っていたところ、どうやらライブラリディレクトリに配置すればいいみたいで、システムディレクトリを書き換える必要がなくなったので、SIPの無効化やシステムボリュームのリマウントは必要ありません。

スポンサーリンク

ディスプレイファイルの編集

編集するファイルを探す

解像度の一覧が定義されているファイルは/System/Library/Displays/Contents/Resources/Overrides/以下にあるのですが、Vendor IDとProduct IDでファイルが分かれています。 Vendor IDとProduct IDはシステム環境設定ディスプレイカラー[変更したいディスプレイのプロファイル]プロファイルを開くmmodと辿っていくと分かります。

これをもとに編集するべきファイルを探してください。 今回のiMac 5K 2019では/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae27を編集すればいいことが分かります。

ファイルをコピーする

システムファイルは直接編集できないのですが、ディスプレイファイルに関しては/Library以下の同じパスに配置すれば読み込んでくれるみたいなので、そちらにコピーして編集します。

編集したいファイルが/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae27ならば/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae27にコピーして編集すればいいということです。

sudo mkdir -p /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610
sudo cp /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae27 /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610
sudo nano /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae27

なので、上記のようなコマンドでコピー・編集します。

解像度を追加する

<key>scale-resolutions</key>という記載のすぐ下に<data>AAAPAAAACHAAAAABACAAAA==</data>というようなデータが並んでいると思います。 この<data> ~ </data>ひとつひとつが定義されている解像度であり、この末尾に目的の解像度を追加すればOK。

目的の解像度のデータが何なのかってのは以下のディスプレイファイルを生成するツールを使えば分かります。

Scaled Resolutions for your MacBooks external monitor | by codeclou

少しややこしいのですが、入力する解像度はポイントではなくピクセル単位になります。つまり、1680x1050(HiDPI)の解像度にしたかったら、倍の3360x2100を入力してHiDPIにチェックを入れるということ。HiDPIでないならそのまま入力すればいいのですが、そうじゃなければ注意してください。

これを<data> ~ </data>の最後に追加するとこんな感じになるはず。

あとは保存して再起動してください。そうすればRDMから選べるようになってるはずです。

うまくいかない時は

テキストエディタやFinderがファイルに拡張属性を追加してしまうと認識しなくなります。ls -l@で拡張属性がついていないか確認し、もし拡張属性がついているならxattrコマンドで削除してください。

まとめ

今までiMacで設定できる16:10の解像度が低解像度の1920x1200のみで、Macbook Airから画面共有で繋ぐ時はこれを使っていたのですが、今回擬似解像度を追加したので画面共有でもMacbook AirのRetinaディスプレイを活用できるようになり、みやすくなりました。 ちょっとハードル高めで面倒ですが、困ってたら試してみる価値はあると思います。

スポンサーリンク

参考

bbhardin/A-Guide-to-MacOS-Scaled-Resolutions

Contribute to bbhardin/A-Guide-to-MacOS-Scaled-Resolutions development by creating an account on GitHub.

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿

iMac 5K 2019 VESAモデル届きました

iMacの容量を外付けSSDを使って増やした話

Core i9 iMacのターボブーストの挙動

Core i9 iMac 2019の消費電力とベンチマーク