私のMacBook Pro 13inch(Eary 2015)ですが、解像度を変更してスペースを拡大にしても、最大1680×1050までにしかなりません。デスクトップPCのFull HDに慣れれているためかちょっと作業スペースが狭く感じます。
そこでネットの記事を参考に1920×1200の解像度を追加してみましたので、手順を紹介します。
1.SIPを無効化する
SIPとはEl Capitanから導入されたシステムファイルの書き換えを防止する機能らしいですが、今回解像度をいじれるように無効化しておきます(気になる人はあとでdisableに戻してください)。
-1. command + R を押しながら電源を入れ(command + Rを離すと起動します)、日本語を選択します。
-2. ユーティリティからターミナルを起動します。
-3. 以下のコマンドを実行しSIPを無効にしたあと、再起動します。
# csrutil enable --without fs
2. 解像度の追加
-1. ターミナルを起動して、ルートになります。パスワードはルートパスワードではなく自分のアカウントのパスワードです。
$ sudo -i
-2. MacBook ProのモニタのVendorIDとProductIDを取得します。
# ioreg -lw0 | grep DisplayVendorID | | | | | | "DisplayVendorID" = 1552
# ioreg -lw0 | grep DisplayProductID | | | | | | "DisplayProductID" = 41001
-3. 10進→16進変換し、編集すべきファイル名を取得し編集します。念のためcpコマンドで元ファイルをバックアップしておきましょう。
1552 → 0x610 → DisplayVendorID-610
41001 → 0xa029 → DisplayProductID-a029
# cd /System/Library/Displays/Contents/Resources/Overrides/ # cd DisplayVendorID-610 # cp DisplayProductID-a029 DisplayProductID-a029.old # vim DisplayProductID-a029
-4.「i」を押して、DisplayProductID-a029 を編集します。<array>の下に<data>AAA…</data>がたくさん並んでいますが、一番上に1920×1200に相当する「AAAPAAAACWAAAAAB」を足します。追加が終わったら escを押した後、「:WQ」で保存です。
. . . <array> <data>AAAPAAAACWAAAAAB</data> <!-- 1920x1200 Added --> <data>AAANIAAACDQAAAAB</data> <data>AAALQAAABwgAAAAB</data> <data>AAAIAAAABQAAAAAB</data> . . . </array> . . .
※どの解像度がAAA…になるなのか解説してあるサイト。私の検索不足もありますが、情報が少なく日本語はおろか英語サイトも含めここ以外見つけられませんでした(貴重な情報提供に感謝します!!)。
例えば 3840 x 2160 であれば、
3840 → 0xF00
2160 → 0x870
00000F00 00000870 00000001 00200000 をBase64エンコーディングすると、「AAAPAAAACHAAAAABACAAAA==」となるそうです。
ただ、これに今回の1920×1200を当てはめてもうまく一致しませんでした。試しに「AAAPAAAACWAAAAB」をBase64→16進変換後に10進変換してみると、
AAAPAAAACWAAAAB → 00000F00 00000960 00000001 → 3840 x 2400
となりました。00000001はわかりませんが、➗2のRetina解像度みたいな意味でもあるのでしょうかね。さらに00200000をつけるとDot by Dotになるのかな(たぶん)。
3. 再起動して1920×1200を選択する
再起動して、システム環境設定のディスプレイ設定からスペースを拡大を選択すると、「擬似解像度: 1920 x 1200」になっていることが確認できます。
どうやら、<array>内に並んでいる<data>の解像度が高い順に4つ、選択できるようですね。
これでMacBook Pro 13inch の作業領域が広くなりました!
ちなみにRetinaではなくDot by Dotでよければもっと解像度をあげられるようです。たとえば2560×1600解像度は、EasyResなどのアプリを入れると選択できるようになります。ただし、今回追加した1920×1200のRetina解像度はアプリを入れるだけでは出てきませんでした。
追記
いたずらで、Dot by Dot 2560×1600(5120×3200 ➗2)の解像度を足してみようとしましたがシステム環境設定のディスプレイ設定では認識されませんでした。ちゃんとRetinaで表示できる解像度しか出てこないようです。
<data>AAAUAAAADIAAAAAB</data> <!-- 2560x1600 Added Disappear -->
以下、DisplayProductID-a029 全文
少しだけコメントに解像度をつけてみました。デフォルト解像度の1280×800はこのファイル内の記述にないみたいです。
<?xml vçersion="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>41001</integer> <key>DisplayLeakage</key> <real>0.4</real> <key>DisplayLowestLevel</key> <real>4</real> <key>DisplayLowestMeasured</key> <real>0.52</real> <key>DisplayBacklight</key> <real>350</real> <key>DisplayDarkReflection</key> <real>2</real> <key>DisplayBrightReflection</key> <real>355</real> <key>IOGFlags</key> <integer>4</integer> <key>scale-resolutions</key> <array> <data>AAAUAAAADIAAAAAB</data> <!-- 2560x1600 Added Disappear --> <data>AAAPAAAACWAAAAAB</data> <!-- 1920x1200 Added --> <data>AAANIAAACDQAAAAB</data> <!-- 1680x1050 --> <data>AAALQAAABwgAAAAB</data> <!-- 1440x900 --> <data>AAAIAAAABQAAAAAB</data> <!-- 1024x640 Disappear --> <data>AAAGcgAABBoAAAAB</data> <!-- 825x525 Disappear --> <data>AAAKAAAABkAAAAABACAAAA==</data> <data>AAAKAAAABaAAAAABACAAAA==</data> <data>AAAHgAAABLAAAAABACAAAA==</data> <data>AAAHgAAABDgAAAABACAAAA==</data> <data>AAAFAAAAAtAAAAABACAAAA==</data> <data>AAAFoAAAA4QAAAAB</data> <data>AAAFAAAAAyAAAAAB</data> <data>AAAEgAAAAtAAAAAB</data> <data>AAADSAAAAg0AAAAB</data> <data>AAAEAAAAAwAAAAAB</data> <data>AAADIAAAAlgAAAAB</data> <data>AAACgAAAAeAAAAAB</data> <data>AAANIAAACDQAAAAJAKAAAA==</data> <data>AAALQAAABwgAAAAJAKAAAA==</data> <data>AAAKAAAABkAAAAAJAKAAAA==</data> <data>AAAKAAAABaAAAAAJAKAAAA==</data> <data>AAAIAAAABQAAAAAJAKAAAA==</data> <data>AAAGcgAABBoAAAAJAKAAAA==</data> <data>AAAHgAAABLAAAAAJAKAAAA==</data> <data>AAAHgAAABDgAAAAJACAAAA==</data> <data>AAAFAAAAAtAAAAAJACAAAA==</data> </array> </dict> </plist>