Как мне написать скрипт для запуска на 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;
Так что теперь я знаю, какие настройки отвечают за инверсию экрана. Но когда я пробую очевидное,
$ defaults write com.apple.universalaccess whiteOnBlack -int 1
$ defaults write com.apple.CoreGraphics DisplayUseInvertedPolarity -int 1
Ничего не происходит. Предположительно, любые программы, использующие эти значения, должны быть уведомлены для их перезагрузки (поскольку примеры, например, dotfiles , должны уничтожить Finder, чтобы вступили в силу). Но я не уверен, что это будут за приложения, или это правильное решение в любом случае.