Shifty icon indicating copy to clipboard operation
Shifty copied to clipboard

Set Apple XDR Display Reference Mode (aka Preset) via Shifty

Open edgariscoding opened this issue 2 years ago • 3 comments

Apple XDR Displays like the Liquid Retina Display XDR in the new MacBook Pros and the Pro Display XDR offer the ability to set a display reference mode (also known as preset) from the control center or from within system preferences > displays.

These presets are custom tailored for specific workflows, there's a preset for photography (P3-D65), there's one for cinema, one for design & print, etc and you can even make your own.

Enabling a preset automatically disables Night Shift, True Tone, Auto Brightness, and sets the brightness to the value specified in the preset.

It would be awesome if Shifty could set the current preset based on the application in use, such as Lightroom or Photoshop.

https://support.apple.com/en-us/HT210435

https://support.apple.com/guide/mac-help/create-custom-reference-modes-mchl50ecf3c4/mac

edgariscoding avatar Oct 29 '21 01:10 edgariscoding

Interesting, I didn't know about this feature!

Unfortunately I don't have an XDR monitor to test it on. If you or someone else would like to take a crack at this feature, I think it'd make a great addition to Shifty!

thompsonate avatar Oct 29 '21 02:10 thompsonate

I was actually just researching it! I’m a junior .NET developer and I’m just now taking an intro to Swift course so I’m not super familiar with Swift projects. I cloned the repo and was looking through the code, I’m gonna have to set some time aside this weekend to understand all the logic.

Do you happen to have any advice on where to find the relevant macOS developer documentation on how to change the display reference mode? I’m looking through the Apple Developer docs but I don’t see anything related to it.

In case anyone else wants to take a stab at it and need someone to test, I can certainly do so.

edgariscoding avatar Oct 29 '21 04:10 edgariscoding

That would be the tricky part. Maybe it's the same API that does color profiles? ColorSync, I think.

If not, I wouldn't be surprised if the API for this is private. That doesn't mean it's impossible though. The Night Shift API is private too and we use a custom header (CBBlueLightClient.h) to call it. The main problem is actually figuring out what to call.

thompsonate avatar Oct 29 '21 04:10 thompsonate