Nota: El código de ejemplo de AppleScript se actualizó para manejar la última versión actual de macOS (Mojave) y agregar mejoras adicionales al código. En versiones anteriores de OS X/macOS es posible que tengas que quitar de group 1
de las dos líneas de código de ejemplo de AppleScript que lo contienen, para que el código funcione.
Si deseas crear una aplicación de AppleScript para colocar en el Dock, puedes utilizar el siguiente código en OS X Yosemite (y posteriores, creo).
if running of application "System Preferences" then
try
tell application "System Preferences" to quit
on error
do shell script "killall 'System Preferences'"
end try
end if
repeat while running of application "System Preferences" is true
delay 0.01
end repeat
tell application "System Preferences" to reveal anchor "Seeing_Display" of ¬
pane id "com.apple.preference.universalaccess"
tell application "System Events" to tell process "System Preferences"
repeat until exists checkbox "Use grayscale" of group 1 of ¬
window "Accessibility"
delay 0.01
end repeat
click the checkbox "Use grayscale" of group 1 of window "Accessibility"
end tell
tell application "System Preferences" to quit
En Editor de Script, guárdalo como Alternar Escala de Grises cambiando el Formato de Archivo: a: Aplicación
Puedes darle a la app un icono diferente mediante copiar y pegar en el icono de la hoja Obtener Información de la App y luego arrastrar y soltar el paquete de la App al Dock.
Tendrás que dar permiso en Accesibilidad en la pestaña de Privacidad de Seguridad y Privacidad en Preferencias del Sistema para ejecutarlo con éxito.
Si deseas utilizar un script bash utilizando el código proporcionado por IconDaemon, el siguiente código alternará entre el uso de color y escala de grises basado en cómo está actualmente configurado.
#!/bin/bash
setGrayscale () {
defaults write com.apple.universalaccess grayscale -bool $1
defaults write com.apple.CoreGraphics DisplayUseForcedGray -bool $1
launchctl unload /System/Library/LaunchAgents/com.apple.universalaccessd.plist
launchctl load /System/Library/LaunchAgents/com.apple.universalaccessd.plist
case "$1" in
"NO")
echo " Cambiando la pantalla para usar color. Esto tomará un momento..."
;;
"YES")
echo " Cambiando la pantalla para usar escala de grises. Esto tomará un momento..."
;;
esac
}
_bool="$(defaults read com.apple.universalaccess grayscale 2>/dev/null)"
case "$_bool" in
"0")
setGrayscale "YES"
;;
"1")
setGrayscale "NO"
;;
*)
setGrayscale "YES"
;;
esac