emoacht / Monitorian

A Windows desktop tool to adjust the brightness of multiple monitors with ease
https://www.microsoft.com/store/apps/9nw33j738bl0
MIT License
3.12k stars 152 forks source link

Suggestion: ramp brightness settings #548

Closed Ser-UFL closed 5 months ago

Ser-UFL commented 7 months ago

Thank you for the excellent software. It's very convenient to use synchronous brightness adjustment on two monitors simultaneously. This is exactly what I needed! However, I would like to suggest considering an improvement: implementing non-linear brightness adjustment.

Let me explain the essence of my issue and my thoughts:

I have two monitors, for example, (1) the laptop screen and (2) an external monitor connected via HDMI. In different conditions, these monitors behave differently:

During the day, I am comfortable with both monitors at 100% brightness.

In the evening, I dim the laptop screen (1) to about 90%, while the external monitor (2) needs to be lowered to 80% to achieve comparable brightness.

In complete darkness, I set (1) to 50%, and for (2) it's around 55%.

I would like the ability to manually adjust the brightness curve of the second monitor relative to the first one. Ideally, it could be a customizable ramp that can be adjusted so that when changing the brightness of the first monitor, the second monitor "adjusts" accordingly. This could be a manual configuration or a graphical representation.

For example:

If (1) is at 100%, then (2) should be at 100%. If (1) is at 98%, then (2) should be at 94%. If (1) is at 95%, then (2) should be at 91%. If (1) is at 92%, then (2) should be at 86%. If (1) is at 90%, then (2) should be at 80%. If (1) is at 80%, then (2) should be at 76%. If (1) is at 70%, then (2) should be at 69%. If (1) is at 60%, then (2) should be at 62%. If (1) is at 50%, then (2) should be at 55%. And so on.

Chart ![Monitorian](https://github.com/emoacht/Monitorian/assets/153546449/29122a51-1481-4806-8dd6-040d5830b880)

Thanks

emoacht commented 6 months ago

Thank you for the suggestion. I have been thinking about how to implement it. To give the maximum flexibility to the user, I have decided to add the feature of conditional commands.

A conditional commands consists of the following elements:

A command can set brightness or contrast of a monitor or all monitors. A conditional commands is required for each conditional value of each conditional monitor and thus if you want to set conditional commands for each of 100 brightnesses, you will need to define 100 conditional commands. It should be in the array and in the file of JSON format.

This feature is a part of command-line options. To load a JSON file of conditional commands, /load option is added. This option can be used as follows.

monitorian /load [file path of JSON file enclosed in quotes] (syntax changed)

There are a few remarks.

Please note that the command-line option is one of add-on features that are available for Microsoft Store version.

emoacht commented 5 months ago

Further discussions should be held at #563