外部ディスプレイとつないでいるMacBook Airで主ディスプレイと拡張ディスプレイを切り替えるスクリプト
以前、以下の記事で書きましたが自分はMacBook Airを外部ディスプレイに接続して使っているのですが、そのディスプレイは仕事中は別のPC(Windwos)でも使っています。
MacBookAirで外部ディスプレイを接続している時のお悩み(ミラーリングした時の解像度設定)
ただ仕事中もMacをちょこちょこ使うですが、ディスプレイにケーブルをつなげたままだと映ってないけど、Mac上で外部ディスプレイが認識されたままになるんですよね。
外部ディスプレイが主ディスプレのままになっていると、アプリを開いた時にその映らない外部ディスプレイにアプリが行ってしまい色々使いづらいわけです。
そのため以前は、本体と外部ディスプレイの表示をミラーリングして、どちらも主ディスプレイとして同じものを表示させ、さらに解像度を変更するということをしてました。
そのためのAppleScriptが先ほどの記事にあります。
ただ、そのスクリプトがMontereyにアップデートしてから動作しなくなってしました。
以前のバージョンでは、環境設定のディスプレイ設定で「ディスプレイをミラーリング」というチェックボックスで切り替えられたのが、以下のようにドラッグが必要に変わっていたんですね…
そのため、ミラーリングではなく主ディスプレイを切り替える方法に変更してAppleScriptを作り直しました。
そのスクリプトが以下です。
tell application "System Preferences" activate set current pane to pane "com.apple.preference.displays" end tell delay 1 tell application "System Events" tell process "System Preferences" delay 1 click button "ディスプレイ設定…" of window 1 delay 1 -- 左サイドの内蔵と外付けディスプレイの選択はselectで行う select row 1 of outline 1 of scroll area 1 of sheet 1 of window 1 tell sheet 1 of window 1 click pop up button 1 -- pop up buttonの判定 if (value of pop up button 1) = "拡張ディスプレイ" then click menu item "主ディスプレイ" of menu 1 of pop up button 1 else click menu item "拡張ディスプレイ" of menu 1 of pop up button 1 end if click button "完了" end tell end tell end tell delay 1 tell application "System Preferences" quit end tell
このスクリプトでやっていることは以下です。
・ システム環境設定から「ディスプレイ」を開いて、更に「ディスプレイ設定」を開く。
・ディスプレイ設定でMacBook Air本体を選択状態にして、使用形態のプルダウンメニューを開いて、「主ディスプレイ」と「拡張ディスプレイ」を入れ替える。
・入れ変えた後はディスプレイ設定を完了して閉じる。
といった内容です。
「主ディスプレイ」が選択されているときは「拡張ディスプレイ」に、「拡張ディスプレイ」が選択されているときは「主ディスプレイ」に切り替わるようになっています。
もし使う場面がありましたらお試しを。