結局うまくいってないのでご注意ください
M1 Mac買ってたけど、こいつもイマイチ
先日記事を書いたようにMac mini late2014で4k 60hz表示ができず、結局M1 Mac miniを買ってしまいました。
これで無事4k 60hz表示はできました。が、なんとM1 Mac miniでも3008*1692表示ができなかった。
一応Thunderbolt端子からの出力では同解像度が選択できたりするが、Thunderbolt端子は別のことに使いたいのでできればHDMI端子を使いたい(M1 Mac miniはHDMI端子で1画面、Thunderbolt端子で1画面の計2画面が最大。Thunderbolt端子2つから2画面は出せない)。
またBetterDisplayなんかで表示する方法もよく紹介されているが、これはどうしても画質がぼやけて使えたもんじゃない。
過去に紹介したMacの設定を書き換える方法でイケる気がしたので試してみた。
参考記事
過去記事の冒頭にも書いているが、当時の方法はそのままでは使えない。
だが調べたところBig Sur以降では
「/Library/に/System/Library/と同じ構成で格納すればそっちを参照するよ」ということらしい
らしい。(この情報は以下のページより)
今回はMacBookの内蔵ディスプレイではなく外部ディスプレイなので、それの設定方法を調べたらところドンピシャな記事を見つけた。大筋は以下の記事をなぞる。
ただ、Motrey以降では過去記事や上記ページの手法ではVendorID/ProductIDの情報が取得できなくなっている。 そこで、以下のページに記載されている方法を参考にした。
試す
VendorID/ProductIDを取得する。
以下のコマンドをターミナルで実行
ioreg -lw0 | grep DisplayAttributes | tr "," "\n" | grep "ProductName\|LegacyManufacturerID\|ProductID"
すると、以下の結果を得た。
"ProductName"="PHL 278E1" "LegacyManufacturerID"=16652 "ProductID"=49687
「ProductID」が以前の「DisplayProductID」に相当し、 「LegacyManufacturerID」が以前の「DisplayVendorID」になる。
16進数に変換
以下のコマンドで16進数に変換
printf '%x %x\n' <DisplayProductID> <DisplayVendorID>
今回の場合はこう
printf '%x %x\n' 49687 16652
今回は c217
410c
となった。
c217
がProductID、 410c
がVendorID。
/Libraryにディレクトリを準備する
Fiderで/System/Libaryから該当のファイルを/Libaryにコピー。
そして、以下のディレクトリが存在することを確認。
/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c/
なお、最初は手動で/Library以下にディレクトリを作って、後述するplistファイルのみをはいちしたが、認識されなかった。 何がキーなのかわかっていないが、ディレクトリ構成丸コピでうまく行った(たぶんその他のファイル存在しないとダメなのかな?)。
最後の -410c
は前述のVendor-IDより。
plistファイルの作成
参考記事を信じて以下のページでファイルを作成する。
アクセスするとページ左側に入力フォームがあり、右側にはファイルの中身がリアルタイムで表示されていった。
左側の解像度一覧はデフォルトで複数準備があった。希望の3008*1692がなかったので、既存のものはそのまま1つ解像度を追加した。DisplayProductNameはわかりやすいものにした。
最後に右側のダウンロードアイコンからファイルをダウンロードし、ファイルを先の手順で準備したフォルダに格納した。
再起動する
再起動をして改めてディスプレイ設定を見ると、ディスプレイの名称が自分がPlistファイルで指定した名称に変更されている。
が、解像度のリストに変更はない、、、
休戦
ということでうまくいかなかった。 自分には原因がよく分からなかったので、誰かが解決策を見つけてくれることを祈って記事を公開しておく。