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

Suggestion: ramp brightness settings #548

Closed
Ser-UFL opened this issue Dec 11, 2023 · 2 comments
Closed

Suggestion: ramp brightness settings #548

Ser-UFL opened this issue Dec 11, 2023 · 2 comments

Comments

@Ser-UFL
Copy link

Ser-UFL commented Dec 11, 2023

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

Thanks

@emoacht
Copy link
Owner

emoacht commented Dec 31, 2023

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:

  • Conditional Device Instance ID: Device Instance ID of a monitor whose brightness is regarded as the condition
  • Conditional Value: Brightness (from 0 to 100) of a monitor which is regarded as the condition
  • Commands: Commands to be executed when the condition is met

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.

  • If the conditional monitor is in unison, conditional commands will not be executed.
  • The brightness set by a conditional commands will not invoke another conditional commands.
  • Loading new conditional commands will overwrite all existing conditional commands, if any.

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

@emoacht
Copy link
Owner

emoacht commented Jan 22, 2024

Further discussions should be held at #563

@emoacht emoacht closed this as completed Jan 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants