是否有可能以编程方式改变XDR显示参考模式(又名预设)在macOS上?



苹果的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

相关内容

  • 没有找到相关文章

最新更新