AppleScriptで画面を白黒・カラー反転表示する(メニューバーから実行可能)


High Sierra対応。
2018-12-04追記:Mojave対応版

  1. SystemUIServer.appによるコンピュータ制御を許可する。
  2. システム環境設定を操作して画面を白黒反転させるスクリプトを作る。
  3. 1.のスクリプトをメニューバーに登録する。

1. SystemUIServer.appによるコンピュータ制御を許可する

スクリプトによって画面を操作するには,
システム環境設定 -> セキュリティとプライバシー -> プライバシー -> アクセシビリティ
で,「下のアプリケーションにコンピュータの制御を許可」にUIを操作するアプリケーションを追加し有効にしておく必要がある。
メニューバーに登録したスクリプトから制御するため,SystemUIServer.appを登録しておく。
※SystemUIServer.appの場所:/System/Library/CoreServices/SystemUIServer.app

2. システム環境設定を操作して画面を白黒反転させるスクリプト

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.universalaccess"
    tell current pane
        reveal anchor "Seeing_Display"
    end tell
end tell

tell application "System Events"
    repeat 50 times #ハングアップ対策で,最大繰り返し回数を設定
        try
            tell group 1 of window 1 of process "System Preferences"
                click checkbox "カラーを反転"
                click checkbox "グレイスケールを使用"
                click checkbox "コントラストを上げる"
                click checkbox "カラー以外で区別"
            end tell
            exit repeat
        on error errMsg
            log ("ERROR: " & errMsg)
            delay 0.1
        end try
    end repeat
end tell

2018-12-04追記:
High SierraからMojaveになった際に,System Preferencesのメニュー構成が変更されたのか,window 1 of process "System Preferences"ではチェックボックスを取得できず,group1 of window 1 of process "System Preferences"から取り出すように変更しました。
ついでに,画面遷移が間に合っていない場合にエラーで終了していたので,repeatdelayを使って画面遷移を待つように変更しました。(イベントリスナー的な設計にできればベターなのですが…)

3. メニューバーへの登録

  1. スクリプトエディタ.appの 環境設定 -> 一般 で「メニューバーニスクリプトメニューを表示」にチェック
  2. メニューバーのスクリプトメニュー -> スクリプトフォルダを開く -> ユーザ・スクリプト・フォルダを開く で開かれるフォルダ(~/Library/Scripts/)に上記スクリプトを配置する。(※エイリアス可)