苹果的XDR显示器,如Pro Display XDR和Liquid Retina Display XDR支持显示参考模式,也称为预设。这些可以在系统偏好设置中更改。显示在显示设置>预设(选择XDR显示后)。
是否有一种方法可以获得可用预设列表并以编程方式更改当前预设?是通过脚本还是通过API?似乎ColorSync是用来改变/设置颜色配置文件,但我没有看到任何参考在ColorSync中设置预设。
参考模式的文档:https://support.apple.com/en-us/HT210435如果你还没有成功,你可以从这些Applescript行开始:
tell application "System Preferences" to activate
tell application "System Events"
delay 0.2
click button "Displays" of scroll area 1 of window "System Preferences" of application process "System Preferences"
end tell
一旦你这样做了(希望成功)移动你的光标到下一个按钮或弹出按钮,按下Cmd-Shift-4和:
>的坐标([X], [Y])。
这个脚本将显示它的"结果"部分显示了这个(弹出式)按钮的定义(必须是可见的)。
将定义附加在第一个"click"-line(上面)之后,并在开始处补充click
(减去:of application "System Events"
)和delay
。
你的目标所需要的选择。
(我建议您在每个附录之后测试脚本…)
是的,它可以通过编译私有MonitorPanel.framework
来完成,CC_5是系统设置用来更改分辨率和预设的。
这是一个简单的Swift文件,可以列出和更改预置以及编译所需的头文件。我还提供了一个编译二进制和苹果快捷方式支持在月球。为方便起见。
下面是一些示例代码,用于列出具有活动预设的显示,然后激活"Design &打印(P3-D50)">预设第一次显示
presets.swift
guard let mgr = MPDisplayMgr(), let display = mgr.displays.first(where: .hasPresets) else {
exit(1)
}
print("(display.displayName!): "(display.activePreset!.presetName!)"")
if let preset = display.presets.first(where: { $0.presetName == "Design & Print (P3-D50)" }) {
print("Activating preset "Design & Print (P3-D50)" for (display.displayName!)")
display.setActivePreset(preset)
}
Bridging-Header.h
#import <MonitorPanel/MPDisplayPreset.h>
#import <MonitorPanel/MPDisplay.h>
#import <MonitorPanel/MPDisplayMgr.h>
#import <MonitorPanel/MPDisplayMode.h>
编译器命令:
swiftc -F$PWD/Headers
-F/System/Library/PrivateFrameworks
-framework MonitorPanel
-import-objc-header Bridging-Header.h
presets.swift -o presets
./presets