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.3k stars 154 forks source link

Feature request: Adding support to send VCP code over command-line to the monitor #464

Closed ter0lin closed 11 months ago

ter0lin commented 1 year ago

Hi,

it would be awesome to be able to send VCP code over command-line to the monitor.

With this Feature many different thinks can be done, like monitor input switching with the VCP code like 0x60 (is hexadecimal) for input selection with the value like 17 for HDMI or 15 for display port or 27 display port over USB and so forth.

What values are supported is different for every Monitor, but the supported capabilities (VCP code and supported values) can be requested from the monitor.

Some monitors have also custom VCP code for other capabilities like Picture-in-Picture (PiP) or other things. This can all be controlled by it.

Thanks.

emoacht commented 1 year ago

Thank you for suggestion. This app is not a utility to convey VCP code. BTW, have you read #449?

ter0lin commented 1 year ago

Yes, I read it. Brightness is VCP Code 0x10 and in https://github.com/emoacht/Monitorian/issues/449 input switching is VCP code 0x60, but the supported capabilities must be requested from the monitor so that the user has the choice in the user interface of the known capabilities (like there are 3 inputs to choose from) and is presented with for example 3 buttons.

I use PowerShell to request the current brightness of my room from an Arduino and send it with Monitorian to my monitor. What I am missing for example is to change the blue levels or the color temperature of my monitor for the current brightness. Since the feature update of Windows to 22H2, color temperature of the night mode can’t be controlled with the registry change.

If Monitorian had the capability, I could change this on my monitor. My proposal is to have a command /set vcp [Device Instance ID] [vcp code] [value] for users like me who want to do more in the background.

emoacht commented 1 year ago

First, allowing any kind of VCP code is out of question. This app is not for relaying VCP code.

Second, I have doubt about the added value of switching input source to the core functionality of this app. Could you explain it?

ccchiou commented 1 year ago

Looks like there are another people like me want the ability to switch input source. I think most of us have monitor with multiple input sources. and switching them using the default monitor buttons is just a pain.

I know this problem can be solved by just buying hdmi splitter + another cable on Amazon. So there is a value for this feature(10$ for splitter, 10$ for cable) But more cables on my desk us just another level of mess, so I prefer to solve this problem using software.

I'll fork the master locally and just try to play around with it.

emoacht commented 1 year ago

So my question is how switching input source can have added value to this app's core functionality, adjusting or chaninging brightness?

ccchiou commented 1 year ago

I just found code that have this feature. It is calling SetVCPFeature function in DXVA2.dll But based on the function name, Set"VCP"Feature, I believe it is probably not a good solution for Monitorian

ccchiou commented 1 year ago

I think it's about making this app a full monitor control app that are not limited to adjusting or changing brightness. When I open my monitor, I see the following options Picture Color Audio Gaming OSD System So the current functionality that Monitorian all falls under Picture

But I get your point. Monitorian does not need to do every thing, and just focus on what it does best. Maybe this feature should belong to another app.

emoacht commented 1 year ago

I bet over 90% of the users of this app, I mean average users, use this app to change the brightness and sometime need to adjust contrast supplementaly but will never be interested in detailed things. I prefer to focus on maintaining and improving the functions for such majority of users as much as possible, at least in relation to the standard version.

I am quite open to add new features if they provide any added value to core functions. If not, such features will not be part of main functions, I mean the standard version. If they are expected to be useful to some people and not so complicated, they could be covered by add-on features though.

It is why I am repeatedly asking about added value.

emoacht commented 1 year ago

Added command-line options (one of add-on features) for switching input source in Ver 4.4.6. If interested, please refer the help by the following command.

monitorian /help