macOS Big Surで強制的にRGBでモニターやテレビを接続する方法

一部のモニターやテレビではHDMIなどでMacと接続すると色空間がYCbCrやYPbPrになってしまい色相がおかしくなったり、テキストがぼやけたりする場合があるのでmacOS Big Surの環境でモニターを強制的にRGBで接続する方法を紹介。

システムレポートの画面はあまり当てにならない

なおシステムレポートなどの画面ではYCbCrやYPbPrであってもMac側にYCbCrやYPbPrと表示されるわけではないのでYCbCrやYPbPr色空間になっているかどうかは目視での色相の変化を観察したりモニターやテレビ側の情報(例えばDellならカラー設定の入力フォーマット)で確認する必要あり。

また、本記事の方法はApple Silicon搭載Macでは後述のスクリプトが正常に実行できないため無効。

ちなみにCatalina以前の環境ではSIPの無効化やシステム保護をバイパスする必要がある上に管理人の環境では上手くいかなかったため本記事ではmacOS Big Sur限定。

Catalina以前の環境での参考情報は下記参照(英語)。

参考 Force RGB mode in Mac OS X to fix the picture quality of an external monitorMathew Inkson

RGBでモニターを接続する手順

Rubyスクリプトをダウンロード

まず上記ページで「Raw」というボタンを右クリックして「リンク先のファイルをダウンロード(Chromeならリンク先を別名で保存)」をクリックしてRubyスクリプト(patch-edid.rb)をダウンロード。

2. モニター(テレビ)を接続した状態でRubyスクリプトをターミナルで実行

続いてRGBで接続したいモニターやテレビをMacに接続しておく。

ターミナルを開いて「ruby」と入力し、更に半角スペースを入力してダウンロードした「patch-edid.rb」というファイルをターミナル画面にドラッグアンドドロップ。

ターミナルに上記GIF画像のように「patch-edid.rb」へのパスが入力されたらエンターキーを押して実行。

ちなみにこのスクリプトの処理内容はMacに接続されている外部モニターやテレビを参照してRGBモードを強制的に指定したカスタムEDID(Extended Display Identification Data)ファイルを作成するというもの。

3. ホームディレクトにDisplayVendorIDフォルダが作成される

正常にスクリプトが実行されると「Output file〜」と表示され、ホームディレクトに「DisplayVenderID〜」というフォルダが出力される。

なお「DisplayVenderID」フォルダ及び格納されている「DisplayProductID(カスタムEDIDファイル)」の末尾はモニターやテレビによって違う。

4. ライブラリにフォルダを作りDisplayVenderIDフォルダを入れて再起動

続いてMacintosh HD>ライブラリフォルダに上記画像のように「Displays/Contents/Resources/Overrides」という構造の空のフォルダを作成する。

上記構造のフォルダを手動で作るのは面倒なので下記ターミナルコマンドを実行すると便利。

sudo mkdir -p /Library/Displays/Contents/Resources/Overrides

続いて作成した空の「Overrides」フォルダに先ほどのスクリプトで作成した「DisplayVenderID〜」フォルダを入れてMacを再起動。

5. RGB強制モードになっているのを確認して完了

再起動してディスプレイの設定(またはシステムレポート)を開いて「forced RGB mode(EDID override)」(RGB強制モード)と表示されていたら成功。

これでMacは先ほどのスクリプトでRGBモードを強制的に指定したカスタムEDIDを参照してモニターやテレビと接続されたため、あとは色相の異常や文字のぼやけなどが改善されているのを確認して完了。

なお、擬似解像度などの設定が元に戻ってしまっている場合があるので自分好みに再度設定しておこう。

6. 元に戻す場合

元に戻す(RGBモードを強制せずにmacOSで自動判定させる)場合はライブラリに作成した「Displays」フォルダ以下を全て削除して再起動。