Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Change brightness in unison" doesn't seem to utilize full range of secondary monitor. #424

Closed
ddiggles opened this issue Mar 13, 2023 · 10 comments

Comments

@ddiggles
Copy link

I have a Lenovo laptop with ambient light sensor, W11, and auto-brightness enabled. I love the feature of tying my external/secondary monitor's brightness to the internal display, so that ambient light changes cause the brightness of both monitors to go up and down.

Since the brightness settings on each screen aren't 1:1, I have "change adjustable range" enabled on both, as well as "in unison" enabled on both.

My laptop display automatically changes from brightness levels of 40-100 depending on the room light. If battery saver is on and i'm unplugged, it goes down to 28, however I wouldn't be connected to my secondary monitor in this case.

My external monitor naturally goes from 0-100, however I'd prefer it be more like 20-100. So, laptop 40 = 20 external. And at maximum ambient light, laptop = 100 and external = 100.

I tried changing the adjustable range on both and clicking "in unison" on both, but when my laptop display = 100, the external monitor only goes to like ~70 or so. I can't seem to get it to max out; i.e. completely follow the internal laptop display. This seems possible and maybe I'm clicking things in the wrong order, but any suggestions are appreciated!

@ddiggles ddiggles changed the title "Change brightness in unision" doesn't seem to utilize full range of secondary monitor. "Change brightness in unison" doesn't seem to utilize full range of secondary monitor. Mar 13, 2023
@emoacht
Copy link
Owner

emoacht commented Mar 13, 2023

Could you try to reset the unison?

Uncheck unison of both sliders.
Move both sliders to the minimum.
Re-check unison of both sliders.

@ddiggles
Copy link
Author

Could you try to reset the unison?

Uncheck unison of both sliders. Move both sliders to the minimum. Re-check unison of both sliders.

This seemed to help, however secondary monitor only goes to 89 when laptop monitor is at 100, which is totally weird.

Did it a second time, then secondary monitor maxed at 84.

hmm

@ddiggles
Copy link
Author

@emoacht

If I do what you said, the sliders do work in unison, covering the proper range and proportion on each (like in your demo video) - if windows auto-brightness is disabled.

However once I re-enable windows auto-brightness, they get out of whack. The built-in display covers its range fine, but the secondary display no longer follows its entire range like it did before auto-brightness was on.

So I'm guessing something happens when auto-brightness is re-enabled? (i.e. when doing your procedure, I turn off auto brightness first. I've also tried it with it enabled first, however I have to toggle AB off/on to get the laptop screen to go back to 'normal')

@emoacht
Copy link
Owner

emoacht commented Mar 14, 2023

The automaic adjustment by ambient light sensor is device dependent and I am not sure what happens on your laptop.
Said that, what is the set range of laptop beightness? The range in this app can merely limit the movement inside this app.

@ddiggles
Copy link
Author

The default range of the laptop auto-brightness is 40-100, but goes down to 28 if low battery mode is enabled. (I can verify this by disabling auto-brightness then re-enabling it. This resets the range to default).

If I manually adjust the laptop brightness while auto-brightness is enabled, then that changes the range (seemingly to compensate for user preference). I like the default range though so I leave it alone.

I set the range on your app to match the default, so the brackets are around [40] - [100] for the laptop. For the secondary monitor, I have the range set to [20] - [100], which fairly closely matches the brightness levels on the laptop (i.e. 20 on the secondary display is similar to 40 on the laptop display).

it's just when I enable auto-brightness that things seem to get a little wonky. The laptop display behaves the same, but the external one (unison enabled on both, I think following the laptop display) doesn't seem to hit its full range of [20] - [100]. It just won't go to 100. Sometimes it's 85, 89, 74, etc. (these levels are with the laptop display at 100 - I do this just by putting a flashlight on the brightness sensor and monitoring values). It's strange and variable!

@emoacht
Copy link
Owner

emoacht commented Mar 14, 2023

Thanks for explanation.
I guess the brightness set by automatic adjustment somehow screw the calculation of unison but it is hard to sort out without checking it in person.

@ddiggles
Copy link
Author

Of course. Are there any logs that I could view or post that could help?

@emoacht
Copy link
Owner

emoacht commented Mar 15, 2023

I guess RangeSlider and CompoundSlider have someting to do with this.
But I have not added logging for their internal algorithms so far.

@emoacht
Copy link
Owner

emoacht commented Mar 18, 2023

I thought about unison itself. Its behavior is too comlicated and its link easily gets broken. It is time to simplify it. I am not sure it solve this issue though.
Added #427

@ddiggles
Copy link
Author

Your fix in #427 seems to have fixed this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants