Remarque : L'exemple de code AppleScript a été mis à jour pour gérer la dernière version actuelle de MacOS (Mojave) et ajouter des améliorations supplémentaires au code. Sur les versions antérieures d'OS X/MacOS, il se peut que vous deviez supprimer l'option of group 1
des deux lignes de l'exemple de code AppleScript qui l'ont, pour que le code fonctionne.
Si vous souhaitez créer une application AppleScript à placer dans le Dock, vous pouvez utiliser la méthode suivante code dans OS X Yosemite (et plus tard, je crois).
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
Dans l'éditeur script, sauvegardez-le en tant que Toggle Grayscale en changeant le Format de fichier : en : Application
Vous pouvez donner à l'application une icône différente en faisant un copier-coller dans l'icône de la fiche d'information de l'application, puis en faisant glisser le paquet d'applications sur le Dock.
Vous devrez donner votre autorisation sous Accessibilité, dans l'onglet Confidentialité de Sécurité et confidentialité des Préférences système, afin de pouvoir l'exécuter avec succès.
Si vous souhaitez utiliser un bash script en utilisant le code fourni par IconDaemon, les éléments suivants code basculera entre l'utilisation de la couleur et des niveaux de gris en fonction de la façon dont il est actuellement défini.
#!/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 " Changing Display to use color. This will take a moment..."
;;
"YES")
echo " Changing Display to use grayscale. This will take a moment..."
;;
esac
}
_bool="$(defaults read com.apple.universalaccess grayscale 2>/dev/null)"
case "$_bool" in
"0")
setGrayscale "YES"
;;
"1")
setGrayscale "NO"
;;
*)
setGrayscale "YES"
;;
esac