Apple-ターミナル/アプリを介したアクセシビリティでグレースケールモードを有効/無効にする方法は?



Apple How Enable Disable Grayscale Mode Accessibility Via Terminal App



解決:

これには、ObjectiveCプログラムをコンパイルするための開発者ツールが必要です。プログラムは、このStackoverflowの回答に基づいています。

次の内容のgrayscale.cというファイルを作成します。



// clang -g -O2 -std = c11 -Wall -framework ApplicationServices // https://stackoverflow.com/questions/14163788/how-does-on-screen-color-inversion-work-in-os-x# include #include CG_EXTERN bool CGDisplayUsesForceToGray(void); CG_EXTERN void CGDisplayForceToGray(bool forceToGray); int main(int argc、char ** argv){bool isGrayscale = CGDisplayUsesForceToGray(); printf( 'isGrayscale =%d  n'、isGrayscale); CGDisplayForceToGray(!isGrayscale); printf( 'グレースケールは現在:%d  n'、CGDisplayUsesForceToGray()); 0を返します。 }

次に、次のコマンドを実行してコンパイルします。

clang -g -O2 -std = c11 -Wall -framework ApplicationServices ./grayscale.c -otglog-grayscale

今すぐ実行./toggle-grayscaleこれにより、すべてのアプリケーションで画面が即座にグレースケールになるか、グレースケールになりませんが、システム環境設定の設定は更新されません。



MacOS High Sierra 10.13.6、clangバージョンでテスト済みApple LLVMバージョン10.0.0(clang-1000.10.44.4)。


アクセシビリティパネルによって変更された.plistファイルは次の場所にあります。〜/ Library / Preferencesとそれらはcom.apple.CoreGraphicsとcom.apple.universalaccess。

内のファイルは変更されません〜/ Library / Preferences / ByHost



次のコマンドを実行します。

デフォルトの書き込みcom.apple.universalaccessグレースケール-boolyes

デフォルトの書き込みcom.apple.CoreGraphicsDisplayUseForcedGray -bool yes

次に、アンロードしてリロードすることにより、色をグレースケールに強制的に変更します。ユニバーサルアクセスプロセス:

launchctl undo /System/Library/LaunchAgents/com.apple.universalaccessd.plist

launchctl load /System/Library/LaunchAgents/com.apple.universalaccessd.plist

カラーに戻すには、次のコマンドで同じコマンドを実行します。デフォルトのパラメータはに設定されています番号。

色を瞬時に変更するアクセシビリティパネルとは異なり、この方法では移行に数秒かかる場合があります。


注:サンプルのAppleScriptコードは、現在の最新のmacOS(Mojave)を処理し、コードの改善を追加するように更新されました。以前のバージョンのOSX / macOSでは、削除する必要がある場合がありますコードが機能するために、それを持っている2行のサンプルAppleScriptコードからのグループ1の。


Dockに配置するAppleScriptアプリケーションを作成する場合は、次を使用できます。 コード OS X Yosemite(および後者、私は信じています)。

アプリケーション「システム環境設定」を実行している場合は、アプリケーション「システム環境設定」にエラーで終了するように指示してみてください。シェルスクリプト「killall」「システム環境設定」を終了してください。アプリケーション「システム環境設定」でアンカーを表示「Seeing_Display」の¬ペインID「com.apple.preference.universalaccess」アプリケーション「システム環境設定」でプロセス「システム環境設定」を通知するチェックボックス「Usegrayscale」のグループ1の¬ウィンドウ「アクセシビリティ」遅延0.01終了リピートウィンドウのグループ1の「グレースケールを使用」チェックボックスをクリック「アクセシビリティ」終了通知アプリケーション「システム環境設定」を終了する

スクリプトエディタで、ファイル形式を次のように変更するToggleGrayscaleとして保存します。

コピーしてアプリの[情報を見る]シートのアイコンに貼り付け、アプリバンドルをDockにドラッグアンドドロップすることで、アプリに別のアイコンを与えることができます。

正常に実行するには、システム環境設定の[セキュリティとプライバシー]の[プライバシー]タブの[ユーザー補助]で権限を付与する必要があります。


を使用したい場合 bashスクリプト を使用して コード IconDaemonによって提供され、次の コード 現在の設定に基づいて、カラーとグレースケールの使用を切り替えます。

#!/ bin / bash setGrayscale(){デフォルト書き込みcom.apple.universalaccessグレースケール-bool $ 1デフォルト書き込みcom.apple.CoreGraphicsDisplayUseForcedGray -bool $ 1launchctlアンロード/System/Library/LaunchAgents/com.apple.universalaccessd.plistlaunchctl load /System/Library/LaunchAgents/com.apple.universalaccessd.plist case '$ 1'in'NO')echo '色を使用するように表示を変更します。これには少し時間がかかります... ';; 'YES')echo 'グレースケールを使用するように表示を変更します。これには少し時間がかかります... ';; esac} _bool = '$(デフォルトはcom.apple.universalaccessグレースケール2> / dev / nullを読み取ります)' case '$ _bool' in '0')setGrayscale'YES ';; '1')setGrayscale'NO ';; *)setGrayscale'YES ';; esac

ここに画像の説明を入力してください