如何在Mac上以编程方式反转屏幕颜色

Ell*_*ter 5 macos

如何编写在Mac上运行的脚本以反转屏幕颜色?

类似于如何在Linux中以编程方式反转屏幕颜色,但遗憾的是xcalib可以在Windows和Linux上运行,但据我所知,不适用于Mac.

编辑:我有一个部分解决方案.在翻转屏幕颜色之前和之后,我找到了转储所有设置的方法:

$ mkdir before && mkdir after && cd before
$ for d in $(defaults domains | sed 's/,//g'); do defaults read $d > $d; done
$ cd ../after
$ # System Preferences > Universal Access > Display > White on Black
$ for d in $(defaults domains | sed 's/,//g'); do defaults read $d > $d; done
$ diff -r before after
diff -r before/com.apple.CoreGraphics after/com.apple.CoreGraphics
3c3
<     DisplayUseInvertedPolarity = 0;
---
>     DisplayUseInvertedPolarity = 1;
diff -r before/com.apple.universalaccess after/com.apple.universalaccess
5c5
<     whiteOnBlack = 0;
---
>     whiteOnBlack = 1;
Run Code Online (Sandbox Code Playgroud)

所以现在我知道哪些设置负责屏幕反转.但是,当我尝试显而易见的,

$ defaults write com.apple.universalaccess whiteOnBlack -int 1
$ defaults write com.apple.CoreGraphics DisplayUseInvertedPolarity -int 1
Run Code Online (Sandbox Code Playgroud)

什么都没发生.据推测,无论程序使用这些值,都需要告诉它们重新加载它们(因为例如dotfiles的例子需要杀死Finder才能生效).但我不确定那些应用程序是什么,或者这是否是正确的解决方案.

mic*_*kig 4

Apple 脚本的这段代码可以做到这一点:

tell application "System Events"
    key code 28 using {control down, option down, command down}
end tell
Run Code Online (Sandbox Code Playgroud)

这使用 Control-Option-Cmd-8 快捷键(键码 28 是数字 8)。你必须弄清楚如何从你需要的任何地方调用它......

  • 为此,您必须在“系统偏好设置”&gt;“通用访问”&gt;“启用辅助设备访问”中选中该框 (2认同)