我想知道在“系統偏好設置”的“輔助功能”面板中啟用/禁用灰度模式的過程是什麼?
我想通過單擊Dock中的應用程序或通過Terminal命令運行一個簡單的腳本,然後將其從灰度模式切換到常規模式。
有什麼想法嗎?
我想知道在“系統偏好設置”的“輔助功能”面板中啟用/禁用灰度模式的過程是什麼?
我想通過單擊Dock中的應用程序或通過Terminal命令運行一個簡單的腳本,然後將其從灰度模式切換到常規模式。
有什麼想法嗎?
這需要開發人員工具來編譯目標C程序。該程序基於此Stackoverflow答案。
創建一個名為grayscale.c的文件,其內容如下:
// clang -g -O2 -std = c11 -Wall -framework ApplicationServices
// https://stackoverflow.com/questions/14163788/how-does-on-screen-color-inversion-work-in-os-x
#include <stdio.h>
#include <ApplicationServices / ApplicationServices.h>
CG_EXTERN bool CGDisplayUsesForceToGray(void);
CG_EXTERN void CGDisplayForceToGray(bool forceToGray);
整型
main(int argc,char ** argv)
{
bool isGrayscale = CGDisplayUsesForceToGray();
printf(“ isGrayscale =%d \ n”,isGrayscale);
CGDisplayForceToGray(!isGrayscale);
printf(“灰度現在是%d \ n”,CGDisplayUsesForceToGray());
返回0;
}
然後運行以下命令進行編譯:
clang -g -O2 -std = c11 -Wall -framework ApplicationServices ./grayscale.c -o toggle-grayscale
現在運行 ./ toggle-grayscale
,這會立即使屏幕在所有應用程序中都變為灰度或不是灰度,但不會更新“系統偏好設置”中的設置。
在MacOS High Sierra 10.13.6上進行了測試,clang版本為 Apple LLVM版本10.0.0(clang-1000.10.44.4)
。
由“可訪問性”面板修改的.plist文件位於〜/ Library / Preferences
中,分別為 com.apple.CoreGraphics
和 com。 apple.universalaccess
。
在〜/ Library / Preferences / ByHost
執行命令:
默認為com.apple.universalaccess灰度-bool是
默認為com.apple.CoreGraphics DisplayUseForcedGray -bool是
然後通過卸載和重新加載 universalaccessd
過程將顏色更改為灰度:
launchctl卸載/System/Library/LaunchAgents/com.apple.universalaccessd.plist
launchctl加載/System/Library/LaunchAgents/com.apple.universalaccessd.plist
要切換回彩色,請在將 defaults
參數設置為 no
的情況下執行相同的命令。
與“輔助功能”面板(它會立即更改顏色)不同,此方法可能需要花費幾秒鐘來進行過渡。
注意:示例AppleScript代碼已更新為處理當前最新的macOS(Mojave)並添加了其他代碼改進。在OS X / macOS的早期版本中,可能必須從具有示例的AppleScript代碼的兩行示例中刪除組1的
,代碼才能正常工作。
如果要創建一個AppleScript應用程序放入Dock,則可以在OS X Yosemite(我相信還有後者)中使用以下代碼。
如果運行應用程序“系統偏好設置”,則
嘗試
告訴應用程序“系統偏好設置”退出
錯誤
做shell腳本“ killall的“系統偏好設置””
結束嘗試
萬一
運行應用程序“系統偏好設置”時重複
延遲0.01
結束重複
告訴應用程序“系統偏好設置”以顯示¬的錨點“ Seeing_Display”
窗格ID“ com.apple.preference.universalaccess”
告訴應用程序“系統事件”,告訴進程“系統偏好設置”
重複直到存在¬組1的複選框“使用灰度”
窗口“輔助功能”
延遲0.01
結束重複
單擊窗口“輔助功能”的組1的複選框“使用灰度”
結束告訴
告訴應用程序“系統偏好設置”退出
在腳本編輯器中,將其另存為Toggle Grayscale,將文件格式更改為:Application
您可以通過複製並粘貼到應用程序“獲取信息”表的圖標中,然後將應用程序捆綁包拖放到Dock上,為該應用程序提供其他圖標。
您必須在“系統偏好設置”中“安全性&隱私”的“隱私”選項卡下的“可訪問性”下授予權限,才能成功運行它。
如果您想使用IconDaemon提供的 code 的 bash腳本,則以下 code 將在使用顏色和基於當前設置的灰度。
#!/ bin / bash
setGrayscale(){
默認寫入com.apple.universalaccess灰度-bool $ 1
默認寫入com.apple.CoreGraphics DisplayUseForcedGray -bool $ 1
launchctl卸載/System/Library/LaunchAgents/com.apple.universalaccessd.plist
launchctl加載/System/Library/LaunchAgents/com.apple.universalaccessd.plist
案例“ $ 1”在
“沒有”)
echo“正在更改顯示以使用顏色。這將需要一點時間...”
;;
“是”)
echo“將顯示更改為使用灰度。這將需要一點時間...”
;;
埃薩克
}
_bool =“ $(默認讀取com.apple.universalaccess灰度2> / dev / null)”
案例“ $ _bool”在
“ 0”)
setGrayscale“是”
;;
“ 1”)
setGrayscale“否”
;;
*)
setGrayscale“是”
;;
埃薩克