
Mac OS Xのコマンドラインから現在の画面解像度を取得する方法
Macユーザーは通常、OS Xのシステム環境設定パネル「ディスプレイ」から接続されたディスプレイの画面解像度を取得します。この方法自体は簡単で迅速であり、確かに問題はありませんが、OS Xのグラフィカルインターフェースを使用するため、スクリプト作成やリモートログイン、SSH接続によるリモート管理には必ずしも役立ちません。このような状況やその他多くの状況では、Mac OS Xのコマンドラインからディスプレイの現在の画面解像度を取得する必要があるかもしれません。
system_profiler コマンドを使用すると、正確な画面解像度を取得できます。このコマンドは、OS X に長くバンドルされている Apple システム プロファイラ ユーティリティのコマンド ライン バージョンとして詳細なシステム情報を取得します。使用する構文は単純なので、おそらく grep を使用して出力をクリーンアップし、解像度だけを表示したほうがよいでしょう。
接続されているディスプレイの解像度のみを取得するための system_profiler コマンドは次のとおりです。通常のコマンド ライン構文と同様に、コマンドが 1 行であることを確認してください。
system_profiler SPDisplaysDataType |grep Resolution
sudo の使用は必須ではありませんが、何らかの理由で必要な場合はコマンドの前に sudo を付けることができます。
出力は簡単に読み取ることができ、次のようになります。
$ system_profiler SPDisplaysDataType |grep Resolution
Resolution: 1920 x 1080
Macで複数のディスプレイを使用している場合は、接続されている各画面の解像度が報告されます。接続された外部ディスプレイがテレビの場合は、テレビ画面の解像度も720pまたは1080pとして報告されます。
このコマンドはMac OS Xのほぼすべてのバージョンで動作するはずですが、現在のYosemiteバージョンでは不要な出力がいくつか出力されるので、スクリプトに使用する場合はawkでクリーンアップする必要があることに注意してください。読みやすい出力ではありますが、少し乱雑です。
必要に応じてコマンドの grep 部分をスキップできることに注意してください。そうすると、拡張表示の詳細がレポートされ、これも役立ちます。
出力はディスプレイの最大解像度ではなく、アクティブな解像度を示すことに注意してください。つまり、Retinaディスプレイでは、ディスプレイの最大解像度ではなく、画面上で現在使用されている解像度が表示されます。