MacOSX
macos
Sierra

MacBookの解像度を変更する

More than 1 year has passed since last update.

はじめに

MacBookのRetinaディスプレイは綺麗で満足しているけれど、標準の解像度だとスケーリングの選択肢が少なく表示領域が狭く感じることが多々あったので、なんと設定を変えられないか調べた結果をまとめる。

MacBookPro13インチ解像度
2,560 x 1,600

標準で選択可能な解像度の選択肢
1,680 x 1,050
1,440 x 900
1,024 x 640

追加する解像度
1920 x 1200

設定方法

SIPの無効化

OSX El Capitan以降はSIPによってOSのシステムファイルが保護されており、通常であればroot権限でコマンドを実行しても変更が出来ない。
システムファイルを書き換える必要があるため、一時的に無効化するためには起動時に⌘+rでリカバリモードでmacOSを起動させる。
ユーティリティからターミナルを起動させ下記のコマンドでcsrutilを無効化する。

$ csrutil disable

変更対象の情報を取得する

ディスプレイのベンダIDとプロダクトIDが機種ごとに異なるので、ディスプレイ情報を取得するため下記コマンドでを実行します。

$ ioreg -lw0 | grep -e DisplayVendorID |sed -e 's/.*= //g' | xargs printf DisplayVendorID-'%x\n'
$ ioreg -lw0 | grep -e DisplayProductID |sed -e 's/.*= //g' | xargs printf DisplayProductID-'%x\n'
2016_13インチの場合
$ ioreg -lw0 | grep -e DisplayVendorID |sed -e 's/.*= //g' | xargs printf DisplayVendorID-'%x\n'
DisplayVendorID-610

$ ioreg -lw0 | grep -e DisplayProductID |sed -e 's/.*= //g' | xargs printf DisplayProductID-'%x\n'
DisplayProductID-a034

対象のファイルを変更する

取得した情報をもとに対象のファイルを変更します。

$ cd /System/Library/Displays/Contents/Resources/Overrides/
$ cd DisplayVendorID-610
$ vim DisplayProductID-a034

1920 x 1200の解像度を追加したい場合は、
<key>scale-resolutions</key>の次にある<array>の最後に、<data>AAAPAAAACWAAAAAB</data>を追加します。

(※ MacBook 12インチは1680 x 1050までしか認識しなかったので
代わりに<data>AAANIAAACDQAAAAB</data>を追加します。)

DisplayProductID-a034_追記後
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>DisplayVendorID</key>
        <integer>1552</integer>
  <key>DisplayProductID</key>
  <integer>41012</integer>
  <key>DisplayProductName</key>
  <string>Color LCD</string>
  <key>DisplayLeakage</key>
  <real>0.419</real>
  <key>DisplayLowestLevel</key>
  <real>2</real>
  <key>DisplayLowestMeasured</key>
  <real>0.4323</real>
  <key>DisplayBacklight</key>
  <real>575.50</real>
  <key>DisplayDarkReflection</key>
  <real>1.10</real>
  <key>DisplayBrightReflection</key>
  <real>573.10</real>
  <key>IOGFlags</key>
  <integer>4</integer>
  <key>scale-resolutions</key>
  <array>
    <data>AAANIAAACDQA</data>
    <data>AAALQAAABwgA</data>
    <data>AAAKAAAABkAA</data>
    <data>AAAIAAAABQAA</data>
    <data>AAAKAAAABkAAAAABACAAAA==</data>
    <data>AAAKAAAABaAAAAABACAAAA==</data>
    <data>AAAHgAAABLAAAAABACAAAA==</data>
    <data>AAAHgAAABDgAAAABACAAAA==</data>
    <data>AAAFAAAAAtAAAAABACAAAA==</data>
    <data>AAAGcgAABBoAAAAB</data>
    <data>AAAFoAAAA4QAAAAB</data>
    <data>AAAFAAAAAyAAAAAB</data>
    <data>AAAEgAAAAtAAAAAB</data>
    <data>AAAEAAAAAwAAAAAB</data>
    <data>AAADSAAAAg0AAAAB</data>
    <data>AAADIAAAAlgAAAAB</data>
    <data>AAACgAAAAeAAAAAB</data>
    <data>AAANIAAACDQAAAAJAKAAAA==</data>
    <data>AAALQAAABwgAAAAJAKAAAA==</data>
    <data>AAAKAAAABkAAAAAJAKAAAA==</data>
    <data>AAAIAAAABQAAAAAJAKAAAA==</data>
    <data>AAAKAAAABaAAAAAJAKAAAA==</data>
    <data>AAAGcgAABBoAAAAJAKAAAA==</data>
    <data>AAAHgAAABLAAAAAJAKAAAA==</data>
    <data>AAAHgAAABDgAAAAJACAAAA==</data>
    <data>AAAFAAAAAtAAAAAJACAAAA==</data>
    <data>AAAPAAAACWAAAAAB</data>
  </array>
  <key>target-default-ppmm</key>
  <real>10.0699301</real>
  <key>edid-patches</key>
  <array>
    <dict>
      <key>offset</key>
      <integer>72</integer>
      <key>data</key>
      <data>AAAAEAAAAAAAAAAAAAAAAAAA</data>
    </dict>
  </array>
</dict>
</plist>

再起動

再起動後、システム環境設定 > ディスプレイ > 解像度 > 変更 に追加した解像度が増えていれば成功です。

SIPの有効化

システムファイルの保護を無効にしたままだとよろしくないのでSIPを有効な状態に戻す。
無効化したときと同様に、起動時に⌘+rでリカバリモードでmacOSを起動させユーティリティからターミナルを起動させ下記のコマンドでcsrutilを有効化する。

$ csrutil enable