czarny / brisync

Control brightness of external display on macOS and OSX automatically
MIT License
241 stars 16 forks source link

Custom setting to match monitors' actual brightness #25

Open alexmartinfr opened 5 years ago

alexmartinfr commented 5 years ago

This soft would be so handy to replace MonitorControl, which I'm using right now, except it can't really in its current state match my monitors' actual brightness.

Here is the problem, with simplified maths:

Full brightness is 300 cd/m2 on my BenQ BL2420, and 400 cd/m2 on my MacBook Pro 2015. If I lower my MacBook Pro brightness to 300 cd/m2, I'm not anymore at 100%, but more like 75%. So now, my BenQ is at 75% brightness, which is 225 cd/m2.

It would be good to have a setting to match manually external and internal at some user selected step. In my example, brightness on my external display would start to lower just after hitting the 75% or lower brightness setting on the MacBook Pro's display.

It still wouldn't be perfect since the MBP can almost shut its screen entirely at lowest brightness, but you could also imagine a reverse setting, like only raise brightness on external screen when MBP's brightness is set at 10% or higher.

PS : The problem will be present depending on external screen and also Mac hardware generation. Maximum display's brightness is even higher on 2016 and newer MacBook Pro, reaching 500 cd/m2. That's why I think a percentage based solution might work.

czarny commented 5 years ago

Hi, please note Brisync calculates external display brightness based on a factor which changes when you adjust brightness by the slider. The factor is equal 1 at the beginning, if you feel that brightness of external display is too low when the macbook brightness is equal 50% incerase it by the slider. From this moment the udpate factor will be higher and brightness should better match.

alexmartinfr commented 5 years ago

I'm not sure what you mean by "slider" ? I don't see any on your app.

Anyway, the problem I'm describing might be easier to grasp with specific examples:

Same problem starting with lowest brightness :

It alls boils down to the fact that Brightness range on a MacBook is like "5 nits - 400 nits", whereas on an external monitor it'll be more like "100 nits - 300 nits".

I guess if you have a 2016-2019 MacBook Pro and an LG UltraFine display, their respective brightness ranges are matching, so you don't have the same problem that I'm reporting.

czarny commented 5 years ago

I know what you are talking about. Slider for adjusting brightness is located in the system status bar item menu.

Zrzut ekranu 2019-07-4 o 20 52 06
alexmartinfr commented 5 years ago

So, I tried during the day and now at night. I can't seem to find any way to make the brightness really match, despite toying with the slider in both ways.

Except by being able to manually match 0% on external monitor to a specific % on internal, and 100% on external to a specific % on internal, I can't think of any way it can work with different monitor having different brightness ranges.

For the moment I find it better to deal with both monitor settings manually & one at a time with another app like MonitorControl, because a difference in brightness at night is really hurting my eyes. I'll keep an eye and try it with another external monitor when I have the chance though, because I really like your idea.

Thanks for putting it out there 👍

andyjw7 commented 4 years ago

I've just started using brisync and it is excellent. However, the feature mentioned here would make it even better.

When my external monitor (a Dell U2419HC) has brightness set to zero it is actually about the equivalent of 50% on my MacBook's built-in display. So some way of configuring that my monitor's brightness will scale from 0 to 100 as my built-in display scales from 50 to 100 would work great. As the built-in display goes below the 50 level (configurable, obviously) the external display would just have to stay at zero, since it can't do anything else.

Hope that makes sense. (In my head it does!)

mrmachine commented 4 years ago

I agree. No matter where I set the slider to adjust the "factor", the external display does not stay in sync with the internal display when it should be possible to (within its range of min/max capability).

If brisync would allow me to store the min internal display brightness at the point where it matches the min external display brightness, and then separately store the max internal display brightness at the point where it matches the max external display brightness, then brisync should be able to accurately match the internal display throughout its entire range of capability.

For example, 3 steps down from 100% on my MBP display is equal to 100% my the external display, and 6 steps up from 0% on my MBP display is equal to 0% on my external display.

If I set the brisync MBP min/max range to 6 steps up (or 37.5%) and 3 steps down (or 81.25%), then brisync should set the external display to 0% when the MBP is <=37.5%, and 100% when the MBP is >=81.25%, and scale linearly in between.

czarny commented 3 years ago

Hi, check out the latest version :)

czarny commented 3 years ago

@AlexMartinFR Can we close the issue?