¿Cómo puedo escribir un script para ejecutar en Mac que invierte colores de pantalla?Cómo invertir textualmente colores de pantalla en Mac
Similar a How to programmatically invert screen colors in Linux, pero desafortunadamente xcalib funciona en Windows y Linux, pero no Mac, por lo que yo sé.
EDIT: Tengo una solución parcial. He encontrado una manera de volcar todos mis ajustes, antes y después de invertir colores de la pantalla:
$ 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;
Así que ahora sé qué ajustes son responsables de la inversión de la pantalla. Pero cuando intento lo obvio,
$ defaults write com.apple.universalaccess whiteOnBlack -int 1
$ defaults write com.apple.CoreGraphics DisplayUseInvertedPolarity -int 1
No pasa nada. Presumiblemente, cualquiera que sea el programa que use estos valores, se le debe indicar que los vuelva a cargar (ya que los ejemplos de, por ejemplo, dotfiles, necesitan matar el Finder para que tenga efecto). Pero no estoy seguro de qué aplicaciones serían, o si esta es la solución correcta de todos modos.
¿Por qué quiere hacer esto? –
Para recordarme a mí mismo mirar hacia arriba desde mi pantalla a intervalos regulares mientras estoy codificando. Sugerencias? –
Supongo que el proceso de WindowServer necesita un empujón para notar el cambio de configuración, pero no sé cómo. Si realmente matas el WindowServer, creo que también matará todas las aplicaciones de GUI. – JWWalker