I have two monitors BENq rl2450h and Soniq.

I want to be able to change the source of the input for these two monitors.

Would a piece of software be able to change this?

Are there open-source alternatives to do this?

I'm happy to code if there is no alternative.

Use Case

2 different cables connected to 1 Monitor eg. 1 could be hdmi the other a VGA source.

I want to be able to let the software decide which input source to be used on a particular monitor...

  • Are you okay with any operating system, or do you have one in mind? – RockPaperLizard Jun 1 '15 at 5:32
  • Indeed, you can make your question a bit clearer. Do you have one computer plugged to the two screens and wishing to change the screen you output to? If so, yes, a piece of software could exist. If you have several sources for each screen and wish to switch from PC to laptop or any other source, this is controlled on the monitor, and I do not think you can find a way to control this from your computer but then again, I've been known to be wrong. – Chop Jun 1 '15 at 5:37
  • If you are looking to switch between using 2 different computers on these two monitors, and possibly keyboards and mice at the same time, then D-Link make hardware switches that can do this sort of thing in response to a button on the box and to a keyboard shortcut. – Steve Barnes Jun 1 '15 at 5:40
  • @SteveBarnes ... Looking for a software approach as I have a few limitations... Thanks though... – J-D Jun 2 '15 at 3:49
  • @Izzy OS wouldn't matter as long as I am using a cross platform language like JAVA / Python.. Also Use Case Posted – J-D Jun 2 '15 at 3:49

It is possible that some monitors may implement HDMI control of which input is selected and that could be triggered from software via the CEC, part of the HDMI standard, command set - often called something different in each vendors documentation - this does have a couple of issues:

  • Not all vendors implement it all properly
  • Once you switch to VGA your monitor(s) may not listen to the HDMI port for some or any commands.
  • The level of support for it in graphics cards is variable to poor so depending on your graphics card you may need a USB to CEC adapter, they do exist, that allow a computer to control CEC-enabled devices.

There are some libraries that allow you to send CEC commands, once you have some appropriate hardware, such as the dual licensed libCEC. This comes with C++, C and .NET interfaces, and a CLI utility called cec-client.

Disclaimer: I have nothing to do with any of the vendors, or suppliers, mentioned and have not tested to see if your specific use case is fully/partly/un-supported.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.