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