Lưu ý: Ví dụ mã AppleScript đã được cập nhật để xử lý macOS mới nhất hiện tại (Mojave) và thêm các cải tiến mã bổ sung. Trên các phiên bản OS X / macOS trước đó, bạn có thể phải xóa of group 1
khỏi hai dòng mã AppleScript có mã đó để mã hoạt động.
Nếu bạn muốn tạo một ứng dụng AppleScript để đặt vào Dock, bạn có thể sử dụng mã sau đây trong OS X Yosemite (và sau này, tôi tin).
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
Trong Script Editor, lưu nó dưới dạng Toggle Grayscale thay đổi Định dạng tệp: thành: Ứng dụng
Bạn có thể cung cấp cho Ứng dụng một biểu tượng khác thông qua sao chép và dán vào biểu tượng của trang Nhận thông tin của Ứng dụng, sau đó kéo và thả gói Ứng dụng vào Dock.
Bạn sẽ phải cấp quyền theo Trợ năng trên tab Quyền riêng tư của Bảo mật & Quyền riêng tư trong Tùy chọn hệ thống để chạy thành công.
Nếu bạn muốn sử dụng tập lệnh bash bằng mã do IconDaemon cung cấp, đoạn mã sau sẽ chuyển đổi giữa việc sử dụng màu và thang độ xám dựa trên cách đặt hiện tại.
#!/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
delay 1
trước hộp kiểm bấm. Cảm ơn!