Feb 23, 2023
Productivity enhancement - Switch your monitor inputs like a pro with a Streamdeck
I, like many people over the last 2 and a bit years, have been predominantly working from home. I run a triple monitor setup day to day, and have a company issued laptop for my work. I don’t have the option to work from any personal devices.
Typically on a daily bases I use a 28” 4k monitor from V7, a 43” 4k monitor from Dell, and lastly a 29” LG monitor. The latter stays mostly connected to my personal PC 99.95% of the time! The others are what I predominantly use for “work” generally.
It doesn’t take long, but navigating the On-Screen Display (OSD) menu and swapping inputs, whilst not terribly time consuming, it takes maybe 5-6 seconds per monitor to switch inputs, providing I don’t fat finger the buttons and changing something else or selecting the wrong input! Sometimes this is multiple times a day especially if I leave for a period and come back and one or both monitors have decided to switch inputs from my work laptop to my personal PC.
The way this is wired up is my work laptop is connected to a Dell D6000 Dock, the I use the DisplayPort outputs from that and they go into the DisplayPort inputs on the monitors. Likewise, I have HDMI coming from my PC, going into the HDMI inputs.
Whilst not necessary, I also have 2 GPU’s in my system, a AMD Radeon RX580 8GB and a MSI NVIDIA GTX 970 4GB (check out the evolution of my office, although its evolved more, and moved, maybe I should do another write up 😄).
Whilst I have got lucky doing this, it is very much hardware dependent. Not just on your monitor, but also on your GPU, and maybe even your Operating System. This works for me on the hardware I’ve mentioned above, on Windows (10). This is definitely in the realm’s of
Your mileage may vary territory! I do have a 2016 Intel MacBook Pro, maybe I’ll do some more investigation sometime in the future.
It may also be that once your monitor has switched inputs, it won’t listen from the device the Streamdeck is connected to, again, your mileage may very depending on what hardware you have.
First things first, I wouldn’t have been able to do this without a piece of freeware called
ControlMyMonitor from Nirsoft - if you don’t want to look at their site or documentation, here is the direct download link
Once downloaded & unzipped, run the
ControlMyMonitor.exe program and you’ll see a screen like the below
The two main items to pay notice to is the monitor selection dropdown, and
VCP 60 which is the
input select, and the possible values it can have. Now each monitor is different so its very much trial and error to find out what value maps to which input.
Once you have sussed out which number corresponds to which monitor, make a note of them.
Creating a batch file
The ‘secret sauce’ to making this work is the fact we can use this software as a command line tool also, and chain multiple commands to it. For instance, in my use case, to swap two monitors at the same time, I run the following command
C:\path\to\controlmymonitor\ControlMyMonitor.exe /SetValue "\\.\DISPLAY2\Monitor0" 60 18 /SetValue "\\.\DISPLAY1\Monitor0" 60 8465
DISPLAY2 is what you get from the dropdown list,
60 is the VCP code for
Input Select and
18 is the value for HDMI2 input on my machine for my PC. Likewise
8465 is the value for HDMI on the other monitor.
The next step is to then save this command into a
.bat file, open up your text editor, paste the command in and save it as a
Doing the magic with a Streamdeck
If you are the proud owner of an Elgato Streamdeck then the next step is to add a
Open command under
System. Select an icon, give it a title and point to the location of your
Thats it, done!
Here’s a video of it in action (ignore the background audio, that wasn’t related (missus and the 3 year old were in the other room))!
In conclusion, you don’t really need to use a Streamdeck, you could just use your mouse to double click on the
.bat file, setup a keyboard shortcut or macro. You could also potentially use the Streamdeck mobile app. This for me, whilst a tiny one, feels like a small quality of life improvement to easily swap between inputs on my monitors at a push of a button.
Hope someone finds this useful, if you do, reply to the tweet above and let me know 😄