BetterDisplay icon indicating copy to clipboard operation
BetterDisplay copied to clipboard

Feature: Force RGB color space

Open firko-learnin opened this issue 3 years ago • 13 comments

With the new option to convert displays to HiDPI without mirroring would it be possible add an option to force an RGB color space?

Certain monitors default to YPbPr resulting in blurry text and inaccurate colors, the current workaround for this is: https://gist.github.com/GetVladimir/c89a26df1806001543bef4c8d90cc2f8

It seems pretty hit and miss at times however, especially when using multiple monitors and trying to identify the correct monitor to change (and persisting the change on restart).

firko-learnin avatar Jun 29 '22 11:06 firko-learnin

Yes, I was aware of the issue as I had to use this workaround with my other LG display on earlier Monterey versions and also wrote a quick tutorial about it on macrumors back in the day - https://forums.macrumors.com/threads/mbp-m1-and-lg-27uk850-w-washed-out-colors.2270452/post-30262233

I guess I could add a feature to automate this. I honestly thought this is not a problem anymore but apparently it is.

waydabber avatar Jun 29 '22 16:06 waydabber

I can confirm this is very much still a problem on M1 macbook, USB-C <-> DisplayPort cable and a certain 1440p LG monitor.

This is definitely still an issue on the M1 Pro as well through both the built in HDMI port and a USB-C -> HDMI adapter.

ajkuftic avatar Aug 18 '22 23:08 ajkuftic

There are now some scripts based on GetVladimir's work, can you have a look? This would definitely be a feature I'd be willing to pay for.

hyperknot avatar Sep 13 '22 11:09 hyperknot

Certainly, the feature can be added to the app (it's simple property list processing/editing, should be straightforward to do in Swift). I am planning to implement it, but want to finish all the DDC stuff first. Sorry about the rather slow progress. 😮‍💨

waydabber avatar Sep 15 '22 17:09 waydabber

That's great to hear. FYI, there is a 30 page thread about RGB mode on MacRumors forum, I guess you'd have a lot of customers if this becomes a 1-click story.

hyperknot avatar Sep 15 '22 20:09 hyperknot

Certainly, the feature can be added to the app (it's simple property list processing/editing, should be straightforward to do in Swift). I am planning to implement it, but want to finish all the DDC stuff first. Sorry about the rather slow progress. 😮‍💨

You're doing great. Keep up the great work!

ajkuftic avatar Sep 15 '22 21:09 ajkuftic

I also still have this issue with my M1 Mac mini and Dell U3014 with USBC to miniDP cable

PaemaHare avatar Sep 21 '22 20:09 PaemaHare

Just a quick question regarding this. If I have configuration override enabled for a monitor and I do the RGB fix manually in the plist file, I have found that when my machine goes to sleep and then wakes up the RGB setting is lost. Is this to do with the override or some other setting that is removing the RGB?

Ezzahhh avatar Nov 08 '22 06:11 Ezzahhh

The override should not affect his. It might be that a different layout is activated for some reason upon wake. Did you apply the RGB settings to all relevant entries in the plist file? You can also try doing it all over again (delete all plist files and set up a new one). If you have a notebook, you'll need to create a layout both for clamshell and non-clamshell mode and apply the forced RGB settings to both.

waydabber avatar Nov 08 '22 08:11 waydabber

I used the sudowork m1 fix rgb script...It works on monterrey on my macmini m1 and lg c1 but when I choose hdr in display options to watch hdr content I can't go back to rgb mode without running the script again and rebooting....is there a way to automate switching between the two modes?

law94air avatar Nov 21 '22 22:11 law94air

@law94air - honestly I don't know, I'll spend some more time on this in the future, but it's just not an area I am working on. Upon switching to HDR it seems like the display layout is changed and the data in the config file is overwritten.

btw, you can get the supported modes (how macOS interprets the EDID and how it sets up color encodings) in the IO Registry tree. Run the following command in Terminal:

ioreg -r -t -c AppleCLCD2 | grep TimingElements > timings.txt

if you open the timings.txt created, you'll see what is the Pixel Encoding, EOTF, color depth data and other info for each interpreted mode.

waydabber avatar Nov 23 '22 12:11 waydabber

@law94air - honestly I don't know, I'll spend some more time on this in the future, but it's just not an area I am working on. Upon switching to HDR it seems like the display layout is changed and the data in the config file is overwritten.

btw, you can get the supported modes (how macOS interprets the EDID and how it sets up color encodings) in the IO Registry tree. Run the following command in Terminal:

ioreg -r -t -c AppleCLCD2 | grep TimingElements > timings.txt

if you open the timings.txt created, you'll see what is the Pixel Encoding, EOTF, color depth data and other info for each interpreted mode.

Great thank you.. Will try out the commands

law94air avatar Nov 23 '22 13:11 law94air

I am not sure I'll add this feature but a probably better solution is to simply disable YCrCb in the display's EDID so only RGB remains as an option:

You should be able to this:

  1. Export the EDID via the app:
Screenshot 2023-02-07 at 17 49 50
  1. Edit and save the EDID binary with an EDID editor (like the free AW EDID Editor):
Screenshot 2023-02-07 at 18 03 55 Screenshot 2023-02-07 at 18 06 46
  1. Upload and apply the altered EDID via the app:
Screenshot 2023-02-07 at 18 18 24

I am not sure if this works (I don't currently have a display with the issue) but technically it should.

waydabber avatar Feb 07 '23 17:02 waydabber