このところ調子付いてAppleScriptを学習していますが、MacBook ProやiMacのディスプレイのブライトネス値をセットするAppleScriptを紹介します。これは、以前独立したMac版のアプリケーションとして私が公開していたものでやっていた処理です。
導入時の注意
以前私が公開していたアプリは、それなりの体裁はあったのですが、システム環境設定のスライダが連動しない課題がありました。しかし、このAppleScriptではシステム環境設定を直接操作するので、そんな問題も発生しません。ただし、AppleScriptを使った処理のため、macOSのバージョンによっては正常に動作しない可能性が高いです。私の現在の環境であるmacOS12.4では問題ありませんが、今後の更新では動かなくなる可能性があります。また、下位バージョンでも検証できていないので、なんとも言えません。
さらに、完成したアプリケーション形式でのダウンロード配布ではないので、ご自身でのビルドが必要です。アプリでの配布では、Appleのセキュリティ対策の強化により難しいため、このようなAppleScriptのソースでの紹介としました。AppleScriptの多少の知識があればアプリの作成は難しくないと思います。
アプリをビルドした後には、必ずシステム環境設定のセキュリティから、アクセシビリティの追加を行う必要があります。ビルド時の動作検証の時にもこの設定は必要です。Script Editor.appをここに追加しなければなりません。アプリをアクセシビリティに追加した後に、再度ビルドをし直した場合には、必ず再度アクセシビリティの設定が必要になります。ここがちょっと面倒です。
ソースについて
このソースをScript Editor.appにペーストして、Application形式で保存すれば完了です。その前にはもちろん動作確認は必要ですが。ソースでのポイントは、システム環境設定アプリを「activate」するとうまく動作しないことです。私は当初ずっとこの設定をしていたので、動作できませんでした。その他は特に込み入った点はないと思います。すでにシステム環境設定アプリが起動しているとうまく動かないので、一旦終了するようにしています。
初期設定のブライトネス値は「0.35」としていますが、使用される方の好みで初期値は変更してください。セットできる値は、0.1から1.0までとしています。1.0以上は入力できないはずですが、念のため反応させなくしています。0.1未満は画面が暗くなりすぎて操作ができなくなる心配があるので、セットできないようにしました。
property BRIGHTNESS_VALUE : 0.35
on run
tell application "System Preferences" to quit
delay 0.5
tell application "System Preferences"
set current pane to pane "com.apple.preference.displays"
tell application "System Events"
tell group 1 of window of process "System Preferences"
delay 0.5
try
display dialog "ブライトネス値をセットしてください。" default answer BRIGHTNESS_VALUE
set BRIGHTNESS_VALUE to text returned of result as real
if BRIGHTNESS_VALUE > 0.1 and BRIGHTNESS_VALUE ≤ 1.0 then
set value of slider 1 to BRIGHTNESS_VALUE
end if
tell application "System Preferences" to quit
on error
tell application "System Preferences" to quit
end try
end tell
end tell
end tell
end run
情報の公開ありがとうございます。
Brivalを愛用しているんですが、Finder使用時とDavinci Resolve StudioやFinal Cut Pro使用時では、同じ設定値でも輝度が違うのを悩んでいました。
Apple Scriptを試してみようと思います。
こちらで質問してよい内容か分からなかったのですが、Apple Scriptでアプリケーションとして書き出す場合、
オプションはどれにされていますか?
・初期画面を表示
・ハンドラの実行後に終了しない
・実行専用
PHOTOSLACKさん
Brivalご愛用頂きまして、ありがとうございます。
開発を終了していてご面倒おかけしていないことを願うばかりです。
Apple Scriptからの書き出しでは、「実行専用」で書き出すことが私は基本です。ScriptDebuggerというアプリを使っていて、そこからビルドしています。