[GH-ISSUE #620] Allow contrast to be adjusted along with brightness #445

Closed
opened 2026-05-05 06:00:40 -06:00 by gitea-mirror · 11 comments
Owner

Originally created by @professorwimpy on GitHub (Sep 24, 2021).
Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/620

Originally assigned to: @waydabber on GitHub.

Before opening the issue, have you...?

  • Searched for existing issues

When I adjust only the brightness of my external monitor, at the dim and bright extremes it looks much more like what I would expect if I match the brightness percent with the contrast percent. I can only set the contrast manually with the menu option, but I would love to be able to control it with the brightness buttons as an option as well.

This is the manual setting for contrast that I'm referring to:
Screen Shot 2021-09-24 at 1 39 07 PM

Describe the solution you'd like

I am requesting an option where the contrast is linked to brightness percentage when the user presses the brightness +/- buttons on the keyboard.

Describe alternatives you've considered

An alternative could be setting a min and max contrast and letting the app interpolate as you increase or decrease brightness.

Anything else?

No response

Originally created by @professorwimpy on GitHub (Sep 24, 2021). Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/620 Originally assigned to: @waydabber on GitHub. ### Before opening the issue, have you...? - [X] Searched for existing issues ### Is your feature request related to a problem? Please describe When I adjust only the brightness of my external monitor, at the dim and bright extremes it looks much more like what I would expect if I match the brightness percent with the contrast percent. I can only set the contrast manually with the menu option, but I would love to be able to control it with the brightness buttons as an option as well. This is the manual setting for contrast that I'm referring to: <img width="253" alt="Screen Shot 2021-09-24 at 1 39 07 PM" src="https://user-images.githubusercontent.com/4362384/134737105-1035b62a-acd7-4308-ae7c-1ff8c0ee7a8f.png"> ### Describe the solution you'd like I am requesting an option where the contrast is linked to brightness percentage when the user presses the brightness +/- buttons on the keyboard. ### Describe alternatives you've considered An alternative could be setting a min and max contrast and letting the app interpolate as you increase or decrease brightness. ### Anything else? _No response_
gitea-mirror 2026-05-05 06:00:40 -06:00
Author
Owner

@JoniVR commented on GitHub (Sep 24, 2021):

I'm just going to put it out here already. I personally don't think we should adopt this as a feature. I can see wanting to be able to control contrast with shortcuts, that seems to be something lots of people want, but linking them seems a bit like a feature barely anyone benefits from, and adds yet another setting/option for us to maintain. At some point we have to start saying "no" to some of these requests for the sake of usability and maintainability.

We can definitely do shortcuts for contrast in the future though.

<!-- gh-comment-id:926911103 --> @JoniVR commented on GitHub (Sep 24, 2021): I'm just going to put it out here already. I personally don't think we should adopt this as a feature. I can see wanting to be able to control contrast with shortcuts, that seems to be something lots of people want, but linking them seems a bit like a feature barely anyone benefits from, and adds yet another setting/option for us to maintain. At some point we have to start saying "no" to some of these requests for the sake of usability and maintainability. We can definitely do shortcuts for contrast in the future though.
Author
Owner

@JoniVR commented on GitHub (Sep 24, 2021):

Shortcuts for Contrast: #621

<!-- gh-comment-id:926911646 --> @JoniVR commented on GitHub (Sep 24, 2021): Shortcuts for Contrast: #621
Author
Owner

@JoniVR commented on GitHub (Sep 24, 2021):

@waydabber thoughts?

<!-- gh-comment-id:926911749 --> @JoniVR commented on GitHub (Sep 24, 2021): @waydabber thoughts?
Author
Owner

@professorwimpy commented on GitHub (Sep 24, 2021):

The goal was not to compromise usability, but more to match my mac's display properties. It appears when I adjust my mac's display with the brightness, some measure of contrast is being adjusted on there as well. I can produce the equivalent effect when I adjust my external monitor's brightness and contrast at the same time, but I can only do that manually (in two operations: button press, slider drag). I was suggesting this to make it be some sort of option to be able to move both values with one button press.

<!-- gh-comment-id:926915470 --> @professorwimpy commented on GitHub (Sep 24, 2021): The goal was not to compromise usability, but more to match my mac's display properties. It appears when I adjust my mac's display with the brightness, some measure of contrast is being adjusted on there as well. I can produce the equivalent effect when I adjust my external monitor's brightness and contrast at the same time, but I can only do that manually (in two operations: button press, slider drag). I was suggesting this to make it be some sort of option to be able to move both values with one button press.
Author
Owner

@JoniVR commented on GitHub (Sep 24, 2021):

I can see how that is pretty annoying, though my point still stands on maintainability, another option barely anyone is going to benefit from is still something we need to maintain long term, and it adds complexity. Perhaps some of the v4.0.0 advanced display options can provide a solution? #596

<!-- gh-comment-id:926917756 --> @JoniVR commented on GitHub (Sep 24, 2021): I can see how that is pretty annoying, though my point still stands on maintainability, another option barely anyone is going to benefit from is still something we need to maintain long term, and it adds complexity. Perhaps some of the v4.0.0 advanced display options can provide a solution? #596
Author
Owner

@professorwimpy commented on GitHub (Sep 24, 2021):

I don't know that I agree that barely anybody would benefit from this option. I have noticed this need with several external monitors that I tried. Just because requests aren't pouring in for a feature, doesn't mean the average user of the app wouldn't benefit from it. If it is out of scope for a release or there isn't a graceful way to add the feature where it would avoid becoming a maintenance nightmare, that is another thing, and I do totally understand that.

<!-- gh-comment-id:926920011 --> @professorwimpy commented on GitHub (Sep 24, 2021): I don't know that I agree that barely anybody would benefit from this option. I have noticed this need with several external monitors that I tried. Just because requests aren't pouring in for a feature, doesn't mean the average user of the app wouldn't benefit from it. If it is out of scope for a release or there isn't a graceful way to add the feature where it would avoid becoming a maintenance nightmare, that is another thing, and I do totally understand that.
Author
Owner

@waydabber commented on GitHub (Sep 25, 2021):

I agree with @JoniVR that this setting would not be useful for 99% of users.

On modern LCD displays, brightness virtually always controls backlighting and contrast controls the panel itself. Contrast is applied as a single linear curve to the intensity of the given color byte. If contrast is set above a certain treshold (usually 50, 70, 75% depending on panel) there is clipping happening (lighter grays and whites become the same - indistinguishable). Contrast was mostly useful on analog VGA connections when intensity was an analog signal and manual calibration was needed - on modern displays with digital connections it is best to leave contrast default or if the default is wrong, then calibrate it using a grayscale calibraiton tool to make both ends of the grayscale (dark and light) bar display separate colors.

Afaik, some Apple displays indeed did use software darkening to compensate for the lower limit of the backlight control to furter darken the dispaly. MC 4.0.0 has this function using gammatable manipulation (so you can reach 0-100% brightness control). MC 3.x.x has a similar thing in the form of "Further lower brightness via software dimming". It is better to use this than contrast adjustment on most displays.

With all this in mind, there might be some displays that don't work like the way I described as there are lots and lots of displays out there. Also, OLED and microLED displays will work differently (as they don't have a separate backlight hardware), as old CRT displays had different meanings for these controls . But since this is now a small minority, I would not add a setting to "Control both brightness and contrast" setting, instead I will add this option silently:

Screen Shot 2021-09-25 at 7 49 21

4.0.0 alreaddy has a setting to override the VCP code for the given command. I'll make this field a comma spearated list - if the user enters more than one hex value (10 is brightness, 12 is contrast) then the app will iterate through them and send both commands to the display with the same value. This way this special need can be addressed without adding any additional complexity to the already complex UI. We can then add this info away in a Q&A item in Discussion for future reference for users who have a display that needs this kind of hack.

<!-- gh-comment-id:927016452 --> @waydabber commented on GitHub (Sep 25, 2021): I agree with @JoniVR that this setting would not be useful for 99% of users. On modern LCD displays, brightness virtually always controls backlighting and contrast controls the panel itself. Contrast is applied as a single linear curve to the intensity of the given color byte. If contrast is set above a certain treshold (usually 50, 70, 75% depending on panel) there is clipping happening (lighter grays and whites become the same - indistinguishable). Contrast was mostly useful on analog VGA connections when intensity was an analog signal and manual calibration was needed - on modern displays with digital connections it is best to leave contrast default or if the default is wrong, then calibrate it using a grayscale calibraiton tool to make both ends of the grayscale (dark and light) bar display separate colors. Afaik, some Apple displays indeed did use software darkening to compensate for the lower limit of the backlight control to furter darken the dispaly. MC 4.0.0 has this function using gammatable manipulation (so you can reach 0-100% brightness control). MC 3.x.x has a similar thing in the form of "Further lower brightness via software dimming". It is better to use this than contrast adjustment on most displays. With all this in mind, there might be some displays that don't work like the way I described as there are lots and lots of displays out there. Also, OLED and microLED displays will work differently (as they don't have a separate backlight hardware), as old CRT displays had different meanings for these controls . But since this is now a small minority, I would not add a setting to "Control both brightness and contrast" setting, **instead I will add this option silently:** <img width="803" alt="Screen Shot 2021-09-25 at 7 49 21" src="https://user-images.githubusercontent.com/37590873/134760129-6a10fe4e-19b3-454e-8943-cd72c3df1d7c.png"> 4.0.0 alreaddy has a setting to override the VCP code for the given command. I'll make this field a comma spearated list - if the user enters more than one hex value (10 is brightness, 12 is contrast) then the app will iterate through them and send both commands to the display with the same value. This way this special need can be addressed without adding any additional complexity to the already complex UI. We can then add this info away in a Q&A item in Discussion for future reference for users who have a display that needs this kind of hack.
Author
Owner

@Muirium commented on GitHub (Sep 25, 2021):

I appreciate the various arguments being made in the discussion. For my Dell P2415Q, varying both Brightness and Contrast controls in unison is not much good. Instead, I often have to hand-tune the Contrast level after setting a desired Brightness. This is especially true for videos, which can vary widely; and the monitor's own Contrast control is profoundly more powerful than tweaking video settings in the player app, such as IINA in my case.

Is a (user definable) keyboard shortcut for Contrast up and down (#603) a significant maintenance burden? I'm not looking for anything "smart" at all, no heuristics, no user defined matrices of values! Just + and -, on a button each. These awkward outlier displays are all likely different in their own way. Just let the user (who cares) handle it with a keystroke. It's an edge case which needn't get in the way of the software's core design.

<!-- gh-comment-id:927110195 --> @Muirium commented on GitHub (Sep 25, 2021): I appreciate the various arguments being made in the discussion. For my Dell P2415Q, varying both Brightness and Contrast controls in unison is not much good. Instead, I often have to hand-tune the Contrast level *after* setting a desired Brightness. This is especially true for videos, which can vary widely; and the monitor's own Contrast control is _profoundly_ more powerful than tweaking video settings in the player app, such as [IINA](https://iina.io) in my case. Is a (user definable) keyboard shortcut for Contrast up and down (#603) a significant maintenance burden? I'm not looking for anything "smart" at all, no heuristics, no user defined matrices of values! Just + and -, on a button each. These awkward outlier displays are all likely different in their own way. Just let the user (who cares) handle it with a keystroke. It's an edge case which needn't get in the way of the software's core design.
Author
Owner

@JoniVR commented on GitHub (Sep 25, 2021):

@waydabber Seems like a great solution!

@Muirium Shortcuts for contrast are definitely something we can do. See #621 for this. The big question there will be what a "sensible default" is for it. In the future we also plan on adding fully custom shortcuts as well, see #118 for that.

No idea on when this will be added though, might possibly be for 4.1.0 already.

<!-- gh-comment-id:927112012 --> @JoniVR commented on GitHub (Sep 25, 2021): @waydabber Seems like a great solution! @Muirium Shortcuts for contrast are definitely something we can do. See #621 for this. The big question there will be what a "sensible default" is for it. In the future we also plan on adding fully custom shortcuts as well, see #118 for that. No idea on when this will be added though, might possibly be for 4.1.0 already.
Author
Owner

@waydabber commented on GitHub (Sep 27, 2021):

Hi @professorwimpy

The latest 4.0.0 has this option. You can download the unsigned preview build - see the bottom of the opening post of #596

You need to enter the codes 10, 12 to control brightness and contrast at the same time as seen on the screenshot below.

Screen Shot 2021-09-27 at 18 42 44
<!-- gh-comment-id:928061689 --> @waydabber commented on GitHub (Sep 27, 2021): Hi @professorwimpy The latest 4.0.0 has this option. You can download the unsigned preview build - see the bottom of the opening post of #596 You need to enter the codes `10, 12` to control brightness and contrast at the same time as seen on the screenshot below. <img width="803" alt="Screen Shot 2021-09-27 at 18 42 44" src="https://user-images.githubusercontent.com/37590873/134950968-168c1378-3a68-403d-8f89-89af03063ebd.png">
Author
Owner

@micbblom commented on GitHub (Oct 15, 2022):

This is flawed unfortunately. It doesn't respect DDC max for brightness. My idea would be that you define an increment for each keyboard hit, like 1 Brightness up = +5 units brightness, +5 units contrast.

The implementation right now looks like it's setting brightness and contrast to the same value, which is a big mess on my side. Also you don't see the changes on the contrast anymore. You might also want to refer to ClickMonitorDDC for Windows for a cross reference. This has a perfect implementation on that (and other settings).

Thanks for the effort, great work so far, please continue developing. I'd be fine with a commercial solution.

<!-- gh-comment-id:1279761281 --> @micbblom commented on GitHub (Oct 15, 2022): This is flawed unfortunately. It doesn't respect DDC max for brightness. My idea would be that you define an increment for each keyboard hit, like 1 Brightness up = +5 units brightness, +5 units contrast. The implementation right now looks like it's setting brightness and contrast to the same value, which is a big mess on my side. Also you don't see the changes on the contrast anymore. You might also want to refer to ClickMonitorDDC for Windows for a cross reference. This has a perfect implementation on that (and other settings). Thanks for the effort, great work so far, please continue developing. I'd be fine with a commercial solution.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/MonitorControl#445
No description provided.