
How I built a keyboard/video/mouse switch for my two 4k monitors - car
https://haim.dev/posts/2020-07-28-dual-monitor-kvm/
======
ohazi
Okay, let's talk about that USB switch [1], because I was looking for one a
few days ago and discovered something ghastly about the majority of the ones
available on Amazon:

Most of them use a USB Type-A to Type-A cable for the link between the switch
and PC.

This cable violates the USB spec, and is the moral equivalent of an electrical
cord with prongs on both ends. It should never, ever be made or used, because
plugging one of the ends into the wrong receptacle can destroy both USB ports.

The correct cable to use here would be a standard Type-A to Type-B or Type-A
to Micro-B cable, but for some reason a very small minority of these switches
do that [2].

WTF is going on here?

[1]
[https://www.amazon.com/gp/product/B01N6GD9JO/](https://www.amazon.com/gp/product/B01N6GD9JO/)

[2]
[https://www.amazon.com/gp/product/B083JKDNRJ/](https://www.amazon.com/gp/product/B083JKDNRJ/)

~~~
vidanay
I've used this one [1] for the last four years. The cables from device to the
PCs are hard wired, so I have no idea if it conforms to spec. I do know I have
had zero problems with it.

[1]
[https://www.amazon.com/gp/product/B00BD8I3EI](https://www.amazon.com/gp/product/B00BD8I3EI)

~~~
codetrotter
I have the same switch that you have, but I have a bit of trouble with mine.
Not sure if it’s an issue with the switch or with the way my computer boots or
with my mouse or something else but when I boot my desktop computer which runs
FreeBSD, the keyboard and mouse work during the initial stage of the boot
process but then still during boot I think FreeBSD disconnects and reconnects
all USB devices or something as part of the boot process, and when it does
that the USB mouse which is connected via the switch stops working and then I
have to press the button on the switch twice, if the other computer is on, or
I have to unplug the switch from the desktop computer and plug it back in.

------
ElCapitanMarkla
I know this isn’t the same but if you don’t need to switch the monitor inputs
and only need mouse / keyboard support. I’ve been using
[https://github.com/debauchee/barrier](https://github.com/debauchee/barrier)
for the last few years.

It works surprisingly well, no noticeable lag even when gaming.

~~~
scrooched_moose
If it's multiple Windows machines, Microsoft also has the Mouse without
Borders "PowerToy"

[https://www.microsoft.com/en-
us/download/details.aspx?id=354...](https://www.microsoft.com/en-
us/download/details.aspx?id=35460)

It works very well too.

~~~
buybackoff
For Windows to Windows, InputDirector works flawlessly and is free (but not
OSS) for home usage. Barrier works OK, works between MacOS and Windows (where
it's the only free choice), but not so stable, has issues with non-English,
and latest binary is not signed and no checksum is given on GH. The PowerToy
thing just didn't work for me, it's not a finished product but a toy.

Have been using InputDirector to combine a desktop and a laptop everyday for
the last 6+ months and am very happy with it.

~~~
franga2000
> where it's the only free choice

Doesn't Synergy do the same thing, is open source and works on basically all
platforms? (I'm talking about Synergy 1, Synergy 2 is a shitshow and I don't
know how it's licensed)

~~~
buybackoff
Isn't Barrier a free OSS Synergy? The Synergy I know is paid, 49 for the
option with encryption. I even wanted to buy, but rebooted my MacBookAir back
in Windows (which I use 99% of time). For the 1% of time Barrier is fine.

------
zachrose
Would somebody like to help me understand why KVM switches are so
sophisticated? A DisplayPort cable has 20 pins, so why can't it just be a 20
pole switch? (Or 30 pole for two USBs and a headphone jack, etc.)

~~~
formerly_proven
Using a literal switch or multiplexer would have the link disappear, so
switching causes ~5-10 seconds of delay, assuming the machine doesn't crash or
hang because somehow that's okay behavior for computers in 2020...?!

Additionally: The DisplayPort spec mandates that operating systems have to
throw a huge temper tantrum and garble your desktop and windows when you
disconnect or turn off a display. (Yes, nVidia and Microsoft consistently deny
implementing an option to turn this utterly braindead behavior off, saying
that it's not a bug, but intended behavior because DisplayPort and VESA say
so).

What KVMs instead contain is similar to the rescaler ASICs found in a monitor,
they receive multiple streams of display data and mix/forward/scale one of
these. But since they constantly receive all of the streams, switching can be
instant, or at least as quick the monitor can modeswitch (which, for some
reason, takes screens at least a second).

~~~
ardy42
> What KVMs instead contain is similar to the rescaler ASICs found in a
> monitor, they receive multiple streams of display data and mix/forward/scale
> one of these. But since they constantly receive all of the streams,
> switching can be instant, or at least as quick the monitor can modeswitch
> (which, for some reason, takes screens at least a second).

Do you know of a DisplayPort KVM switch that actually does that? I tried one a
few years ago (it was one of the first ones I saw for a reasonable price), but
I returned it immediately because I got the brain-dead window-rearranging
behavior you described whenever I switched. I've been reluctant to try another
until I know it solves that issue.

I still use one of these HDMI switches
([https://www.iogear.com/product/GCS62HU/](https://www.iogear.com/product/GCS62HU/)),
because it's EDID support actually does make it transparent to the PCs, so I
can switch instantly like I want to.

~~~
buzer
ConnectPRO claims that their switches pass EDID information to all systems.
They have some examples of it being in use in Youtube
[https://www.youtube.com/user/rexwu168/videos](https://www.youtube.com/user/rexwu168/videos)

I finally ordered one a while ago after I couldn't find anything cheaper with
similar functionality, but it's currently on backorder so it will take some
time to arrive & see how well it works in reality.

~~~
Borealid
I have a ConnectPro UDP2-12AP, and can confirm that systems connected to it do
not see the monitor go away on switch.

There is an interruption if you press the KVM reset button, but that's not
something you should often do.

------
zargon
The disadvantage of this arrangement, which may not be obvious until you try
it, is the delay in switching time. You have to wait for the monitor to re-
sync on the new signal and for the USB to enumerate on the new host. I guess
most people can tolerate this? For me that delay is intolerable. Quality KVMs
(ConnectPRO is the one I remember off the top of my head) maintain both
connections at all times and switching is instantaneous.

~~~
jwalton
I bet it's a lot shorter than the delay involved in me using the touch
sensitive not-buttons on the front of my monitor to switch inputs, which is
what I do now. :P

~~~
IshKebab
But not as good as an actual KVM switch. I use this one:
[https://www.amazon.co.uk/gp/product/B07F8NVMH7](https://www.amazon.co.uk/gp/product/B07F8NVMH7)

It also does 4K at 60 Hz. You can switch via the keyboard (uses scroll lock as
a shortcut). It has worked flawlessly for me and is only £86.

The only real downside is that it is yet more wires, and it can only switch
one video signal. If I had two monitors I'd probably go with this guys
solution.

~~~
driverdan
Also it's only USB 2, not USB 3. So it's fine for a keyboard and mouse but
nothing with a decent data rate.

~~~
IshKebab
I suspect a USB 3 KVM switch does not exist. His solution also doesn't help if
you want to switch a USB 3 device between computers. So that isn't really a
con.

------
D13Fd
I like it! Thank you for sharing the code!

By the way, I have that same USB switch. I have tried a number of them, and
that is the fastest I've found. The only major flaw is the status lights --
they are too hard to see from far away.

To fix that issue, I drilled a hole in the top of the case, over the lights,
about the same size as the adjacent power button. I put a small piece of foam
inside to separate the two lights, and covered it with tape. It works
perfectly now and it's so much easier to see the status from a typical usage
angle.

The whole modification took maybe 15 minutes, and I didn't even bother
disassembling it first.

~~~
haimgel
This is an interesting hack, thanks for sharing! I agree the status lights are
hard to see...

------
nkrisc
This is perfect. The software competent is exactly what I was missing from my
setup. I use a USB switch to switch my peripherals but I've been manually
changing the input on my monitor like a caveman.

~~~
Freak_NL
I'll have to have a go at this DDC/CI stuff as well. I too have a USB switch
that just works (click button, two seconds later other computer has keyboard
and mouse, and whatever else is on it, click again, back to the other one).
It's simple, it's foolproof, and I can do it with my eyes closed if I so
wanted to.

Now, switching the monitor however…

This involves clicking the six buttons on the rear of the monitor in an arcane
sequence (your fingers sort of curl around the side, the buttons have labels
on the front of the monitor on the right-side bezel, and yes, that works as
well as you can imagine). Which then switches the monitor:

* Button 1: activate menu

* 1 again: select _input_

* 2: move down list of three inputs

* 2: move down list of three inputs

* 3: select _mini display port_

A somewhat similar sequence exists for going back to its HDMI input.

But hold on! It gets better if you turn off the computer you have live at the
moment. The monitor then goes blank, and until it throws its 'no signal found'
message, it won't respond to anything. If you are lucky, you can switch inputs
before the current computer is shut down completely and the monitor blanks
itself.

I do feel like a caveman.

~~~
nkrisc
Unfortunately it looks like my monitor does support DDC but _does not_ support
VPC Code 96 (0x60) meaning I can't programmatically change the input. What a
bummer.

Monitor is ASUS PG348Q.

~~~
Freak_NL
That's a shame. I had more luck it seems — BenQ PD2700Q:

    
    
        Feature: 60 (Input Source)
            Values:
               0f: DisplayPort-1
               10: DisplayPort-2
               11: HDMI-1
    
        sudo ddcutil setvcp 60 0x11 # To HDMI
        sudo ddcutil setvcp 60 0x10 # To DisplayPort 2
    

Nice! Installing ddcutil¹ was a breeze too. No extra configuration needed on
Ubuntu Linux. Although a few tweaks are needed to give the local user access
instead of root.

1: [http://www.ddcutil.com/](http://www.ddcutil.com/)

~~~
marcosscriven
My LG 38WN95C says it supports 0x60, but then doesn't nothing when I set it
(whereas other controls work, such as volume and brightness).

I wonder if there's any hope of hacking a solution to this, as it seems
unlikely the LG would actually fix it.

------
doctorhandshake
There was a comment here yesterday[1] about DDC/CI writes being finite on some
hardware — is that a concern with this approach?

[1] top comment -
[https://news.ycombinator.com/item?id=24344045](https://news.ycombinator.com/item?id=24344045)

~~~
jwalton
100K switches is switching your input 4 times a day for 68 years. You'll
probably want a new fancy 32K monitor by then anyways. ;)

Also, if your monitor stores the current input in EEPROM, changing it via the
OSD will also write to EEPROM, so it's not like you're saving the EEPROM by
doing it manually (buying a real KVM is another story, obviously).

------
dkersten
Hah, I use a low tech solution: I have a HDMI extension cable that reaches the
front of the monitor that I just plug the device I want active into (and a usb
splitter similar to what he uses for keyboard and mouse). It’s not quite as
seamless as the solution described here but it took no time to set up.

~~~
evanweaver
You can get a physical HDMI button so you don't even have to unplug anything:
[https://www.amazon.com/gp/product/B01L8LLP2G/](https://www.amazon.com/gp/product/B01L8LLP2G/)

~~~
andechs
Does something like this exist for USB-C devices? I have to plug and unplug a
certain device to change it between machines.

Not full emulation and remaining "connected" \- just the ability to press a
button and change what the device is plugged into.

~~~
kingosticks
Would the one in the article work for you?
[https://www.amazon.ca/gp/product/B01N6GD9JO](https://www.amazon.ca/gp/product/B01N6GD9JO)

~~~
dkersten
That doesn’t look like USB-C

~~~
kingosticks
It doesn't. Sorry, what was I smoking.

Edit: the only ones I could find with usb c were full KVMs and far more
expensive. I would guess a female usb c to male usb 3 adapter might be a cheap
workaround.

------
salex89
I hoped for the actual switch schematics :) .

Offtopic: I wanted to buy this USB switch, but it's hard to get on the current
market in my country (or available for an absurd price). So I started trying
to build my own... which was fun, but then I understood I need a some USB/MAX
chips that are also hard to find, and started to cause me frustration instead
of fun, because I'm not really that good with low-level electronics,
university was a long time ago. And I was still without my switch/hub. So at
the end I just chose a 3-pole double-throw toggle switch and a couple of USB
connectors and wired them up. I only need to switch my keyboard, because my
mouse is multi-device. If I need more, I'll just wire a hub to it. Work is in
progress, but it can't get simpler than that.

If you're wondering what got complicated, well as far as I read and
understood, actually breaking a USB connection with solid state logic is kind
of a pain in the neck if you want to stay within the USB parameters, at least
for an inexperienced designer like me. And you need to build the power supply
for the circuit, and I didn't want to introduce an external power supply, I
wanted to piggyback of the USB source. Something this ugreen product does not
do. So I left this project for another time, when I freshen up on my perished
knowledge. A mechanical switch just switches the lines and that's it.

~~~
deorder
I opened the same ugreen switch up and plan to attach some wires from the
button pins to my RaspberryPI. This way I will be able to use my RaspberryPI
to switch between the two USB hosts and use the RaspberryPI's built-in CEC
support to switch between video inputs.

What the board looks like:
[https://imgur.com/lX1uZ7Q](https://imgur.com/lX1uZ7Q)

------
Fannon
The Dell U3219Q monitor has a (rather rare) feature that gets rid of the need
for a KVM switch for me entirely.

It has both an USB-C input and an USB3 upstream that can be combined with
either DisplayPort or HDMI. It also has signal auto detection.

When I'm starting up my PC, it will use the USB connection from my PC via USB3
upstream. When I power up my work laptop, it will take USB from its USB-C
connection.

That even eliminates the need to push a button to switch. I'm really happy
with this setup.

~~~
oblio
What do you do if both are turned on? Or does it figure it out?

------
justaguy88
for those who have less time than money,
[https://store.level1techs.com/?category=Hardware](https://store.level1techs.com/?category=Hardware)

~~~
stoobs
Another option is the Aten CS1944DP - 4 input dual 4K60 USB3 KVM switch - I
have it and it's rather wonderful given I now have my work laptop here due to
covid - not cheap, but it's really, really good.

~~~
wasmitnetzen
Not cheap is quite the understatement. I could easily just get another screen
for less money.

~~~
stoobs
Depends on your use-case - I already have two screens but I need them
switching between multiple computers - there are very few options for dual
display multiple input KVMs which can support 4K60 and USB3

------
dasloop
I have an MX Keys keyboard that can connect to up to three devices (with three
special keys). Unfortunately, the operating system does not see the key
pressed. But if it was, I could activate the display input switching using
your app (thanks!). I have filled a support request at Logitech, maybe one
day...

~~~
OJFord
Are other keys (e.g. Fn) mappable to the special keys? Maybe you could work
around it by setting e.g. F1-3 to F1-3 + Special1-3, and then input switching
on F1-3.

~~~
wasmitnetzen
Or the other way around? Map the special keys to F13 or something. (Normal
keyboard only have up to F12, but I believe the standard allows up to F24.)

------
bijant
The Headline hit me right in the stomach because it was just yesterday that I
was pondering whether to build or to order a USB Switch. With much to do
currently, I wussed out and just ordered it. I didnt pay 38$ though:
[https://de.aliexpress.com/item/1005001274095928.html](https://de.aliexpress.com/item/1005001274095928.html)
USB 2 is more than enough for mouse and keyboard and it has the additional
advantage of having an extension button to switch.

~~~
hnick
I don't always trust tech from Aliexpress but sometimes it's worth a gamble. I
had a look at that brand and they also do a KVM (HDMI, 2 USB ports for K/M)
for USD $16. That seems way too cheap but I don't really understand the tech
enough to know for sure.

------
voltagex_
DDC/CI seems like an absolute crapshoot - I've got some 10 year old Dell
monitors that don't seem to support it at all, but someone with the same
monitors reported brightness control.

I just checked my 2019 Acer XB27HU, which reports brightness control but it
doesn't seem to work - it then got stuck in Factory Test mode. It doesn't
support input selection and doesn't do any kind of hotplug detection. I've
never seen a monitor review mention these kind of features, either.

~~~
bohuim
Agreed, I was also looking into DDC/CI for input switching my 2017 XB271HU,
and mine works for brightness but definitely not input switching. Meanwhile my
2019 HP Z27 supports the full protocol, so I had to drop the idea

------
cellular
There are full software solutions that just show the screen over the network
and relay your mouse/keyboard to whichever machine is on focus.

It worked well enough that I'd forget which pc the kvm s were actually
connected to. But I was only programming, not gaming, so maybe the 60Hz would
be a problem. no hurt to try. It was free and there were a couple software
solutions.

~~~
Polylactic_acid
The latency would probably make it a shitty experience. I got a displayport
switch when I started working from home this year and the thing works so well
I forget it exists. There is no latency at all and it automatically switches
inputs based on which one is active so I never have to touch the thing.

~~~
TylerE
Why?

At 60dps that is one frame every 16.7ms.

Sub-ms latency is easy on a local network. Heck I can get a few states away
and back in 16ms.

~~~
vmednis
There's encode and decode latency as well, but I've been able to get the total
latency to a data center about 200km from me to around 30ms or so with some
solutions. Was good enough for some non-competitive gaming for me.

------
mmsimanga
I have similar setup without the software to automatically switch inputs. I
use the physical buttons on the monitor to switch input. Not efficient but I
get a better resolution than pushing display through a cheap KVM switch. Will
be trying software in article. Anyone know of software that runs on Linux to
switch display the input? OP lists Windows and Mac OS support.

~~~
pedrocr
In Linux you can probably do it with a script that calls ddcutil:

[http://www.ddcutil.com/](http://www.ddcutil.com/)

------
renewiltord
Haha, this is clever and I like it. You turned what is usually solved on the
physical layer to something solved on the logical layer - which is almost
always better because you can express conceptual changes much better when you
don't need hardware.

It's a small taste of the stuff that software-defined networks have added to
networking.

------
globular-toast
Since working from home I've had the exact same use case. I thought a KVM
would be perfect, but was really surprised that they are incredibly expensive
and don't really seem very good anyway. It's odd because switching the
keyboard/mouse seems easy, while switching the monitor inputs is something
that is done by AVR receivers which can be found for less than a KVM.

I've resorted to having both machines plugged into my monitors and switching
inputs using the monitor front panel. Not ideal. For the keyboard/mouse I
currently just have two of each on my desk. Also not ideal, although I must
admit it provides some semblance of work/life separation. I'm going to look
into one of the software solutions for switching the keyboard/mouse.

------
vaillancourtmax
Neat!

I use a similar setup where I literally have a single USB cable that gives me
access to everything: monitor, keyboard, mouse, lighting, camera, microphone.

I just need to plug the cable in the computer I want to use. However, I do
need to change the input on the monitor as one of the them is connected via
HDMI.

~~~
bluGill
USB connectors have a terrible plug/unplug lifespan.. I have a few computers
where the USB ports can't be used because they have been unplugged too often.

Might just be USB-A, I haven't looked at the other specs

------
desdiv
While we're on the subject on KVMs, what do you guys do about audio?

Currently I have one computer connected to the AV receiver via TOSLINK
(optical audio). The other computer is connected to the receiver via coaxial
S/PDIF. When I switch computers I have to physically go to the receiver and
switch between the two input channels. This presents two problems:

P1: Manual action required

P2: Only one computer can play sound at any given time

Ideally, I would want a S/PDIF mixer that can decode the two S/PDIF streams,
add each constituent channel together, and then output that as a single S/PDIF
stream to the receiver. But I can't seem to find this anywhere.

Most mixers I've found are:

1\. Analog mixers

2\. Pro audio mixing consoles that have a dozen input channels and 50 dials on
it, with a price tag to match

~~~
Bedon292
I have played with Voicemeter for this. You can stream the audio back and
forth between machines. And one of them is always connected to the speakers.
And you can mix between the two as well.

[https://www.vb-audio.com/Voicemeeter/vban.htm](https://www.vb-
audio.com/Voicemeeter/vban.htm)

~~~
desdiv
Thank you! This is great.

------
m0shen
This is great! I did something very similar using AutoHotKey and Synergy :
[https://moshen.net/posts/virtual_kvm/](https://moshen.net/posts/virtual_kvm/)

~~~
nly
Please support Barrier[0] (FOSS) or, perhaps, just buy ShareMouse[1] or
download Input Director[2] (free but closed source) rather than supporting
Synergy.

I worked for Symless for 2 years and I can tell you first hand that the owner
had little interest in fixing or improving the core functionality, the code
for which has remained largely unchanged for 12-15 years.

Most of the input bugs in the software are a decade old, and unless a
community patch comes along that can be merged, the owner only has interest in
keeping it working on new OS versions, and tarting up the UI/UX to support
Symless as a lifestyle business.

In the 2 years since I left I've seen exactly 3 bugfix releases, one of which
broke TLS, and none of which seemed to contain any significant original work.

Supposedly Synergy 3 is in the works, after Synergy 2 (which I worked on) was
scrapped, but this will almost certainly only be a proprietary Electron UI for
the FOSS CLI instead of a Qt/QML UI for the FOSS CLI (as v2 was).

Major versions of Input Director (v2.0) and ShareMouse (v5.0) have been
announced in the last few months, and it looks like significant work has taken
place on both projects. Both of these products need better marketing.

Unfortunately none of the alternatives to Barrier/Synergy seem to want to
support Linux, which remains its moat. The days for that are numbered due to
Wayland though (Synergy uses the X11 XTest extension to inject input).

[0]
[https://github.com/debauchee/barrier](https://github.com/debauchee/barrier)

[1] [https://www.sharemouse.com/](https://www.sharemouse.com/)

[2] [https://www.inputdirector.com](https://www.inputdirector.com)

~~~
m0shen
That's good to know. I certainly haven't seen progress made on Synergy in the
years I've been using it. Barrier wasn't forked when I initially made and
wrote about my setup either, but I think I will make the switch and write a
follow up.

The issue I repeatedly ran into with these solutions is that they want to have
a "hot" edge and both systems up on independent screens at the same time. I
really only want a hot key and one system on my single monitor at a time.
Which I could configure with Synergy 1 (not 2).

------
AntiRush
This is awesome!

I've often dreamed about doing this with a keyboard shortcut ala switching
layouts in a tiling WM (or 'real' kvm switches from the CRT + ps2 era).

Is there a good usb hub that supports switching outputs via software?

~~~
bertjk
Some of the IOGear KVMs do provide hotkey functionality.

------
yfiapo
That's cool. As another alternative, this is the one I bought at start of
lockdown which does everything but the USB-C:
[https://smile.amazon.com/gp/product/B0851CMHP2/](https://smile.amazon.com/gp/product/B0851CMHP2/)

Not particularly cheap but at least no longer back-ordered. I've been pretty
happy with it switching 2x4K monitors, keyboard and mouse between a Mac and a
PC laptop. Both corporate laptops where custom software is more difficult.

~~~
Bedon292
You like this one? I have been looking for a while, but didn't find one I felt
was trustworthy in that price range. For instances 11 reviews on this one.

------
narrowtux
I had the same problem, and one of my displays is insanely picky when it comes
to switching sources. It seems like it will only attempt a handshake once, and
when the source is not ready for it, it will switch back.

I bought HDMI/DisplayPort switches which are capable of 4k60 and are very
cheap. Only these combined KVMs have outrageous prices, but if you're fine
with using multiple switches it can be achieved quite cheaply.

------
mercora
ive done the same on Linux using udev rules and a simple usb switch. i use it
for a VM with a physical GPU attached and it worked great ever since.

~~~
zwayhowder
To paraphrase the internet. Sample configs or it didn't happen!

Seriously, I'd love to see this. I have had mixed results with udev and no
idea where to start to send an input switch command to my monitor.

~~~
mercora
sure, i used this[0] for the hotpluging part and these[1] are the udev rules
:) in order to switch inputs you should take a look at ddcutil...

[0] [https://github.com/olavmrk/usb-libvirt-
hotplug/blob/master/u...](https://github.com/olavmrk/usb-libvirt-
hotplug/blob/master/usb-libvirt-hotplug.sh)

[1]
[https://gist.github.com/4ab23675ab69162934ce75b52bd1d290](https://gist.github.com/4ab23675ab69162934ce75b52bd1d290)

~~~
zwayhowder
Thank you.

------
PiMaker
Did something similar a while back in C#. Registers itself as a system service
so it can even switch displays when no user is logged in (i.e. you're on the
Windows login screen). Also has a web GUI for configuration.

[https://github.com/PiMaker/DDCKVM](https://github.com/PiMaker/DDCKVM)

------
trissylegs
Thanks for this. I was thinking about doing something like this. Because:

1\. I have 4k 144hz monitor. Not many devices or even display protocals can
handle that (I won't be able to even fully utilize it until I upgrade my
desktops graphics card).

2\. The amount of cambes I have for my current KVM swicth (for my second,
1080p, monitor). Is getting unweildy.

------
aloer
I recently bought a Philips 346b1c (34" UWQHD with built-in USB C hub + KVM)
and the use of DDC/CI to tell the monitor what input to switch to could come
in super handy here.

The display is very good at automatically switching KVM based on the selected
input, but the selection still has to be done with the little buttons
underneath the screen

------
NKosmatos
Reminds me of a similar post in HN in order to switch inputs on a single
monitor, between mac and PC, via software only. Ideally a shortcut on the mac
desktop in order to switch to HDMI and another shortcut on the PC desktop to
switch to DisplayPort. For sure I’m going to give a go at the code of this
soft/hard KVM.

------
TehCorwiz
This would probably work great for running VMs with a hardware pass-through
GPU. Can't wait to try this out.

------
car
The author of this project is on HN. I hope he reads this and makes a top-
level post, in case anyone has a question, suggestion or thanks for him.

[https://news.ycombinator.com/user?id=haimgel](https://news.ycombinator.com/user?id=haimgel)

------
milofeynman
I have been using a KM switch and manually switching the monitor for the last
few months. I was wishing there were a way to programmatically change the
input, and apparently there is! But I assume this is only supported by some
monitors. I will try it out tonight. Thank you

------
joshu
I use the IOGear switch between windows/pc and like 1/5 times it doesn't
switch correctly (it'll end up holding the option key down or something.)

are there any keyboard switches that emulate a keyboard correctly instead of
just unplugging and replugging the usb connection?

~~~
duskwuff
> are there any keyboard switches that emulate a keyboard correctly instead of
> just unplugging and replugging the usb connection?

StarTech's KVMs have a rather robust USB stack which handles this situation
very well.

~~~
joshu
thank you! any particular products you have experience with?

------
brian_herman
[https://store.level1techs.com/products/kvm-switch-dual-
monit...](https://store.level1techs.com/products/kvm-switch-dual-monitor-
model) A little more expensive. But gets the job done!

------
c0smic
Big fan of the Level 1 Tech KVMs, both the hardware and support are quite
good. You're way more likely to run into issues with docks/monitors/usb
devices etc than something actually wrong with the KVM itself.

------
dugmartin
I use a combination of a cheap USB switch and the remote for my 4K monitor
(really a 43" TV) to switch inputs. Not as nice as one button press but much
cheaper than a high end KVM.

~~~
Polylactic_acid
The KVM I got is actually even simpler than a button press. It detects the
active input and uses that so when I turn off my work laptop and turn on my
desktop it switches. Its totally seamless.

------
crisopolis
Wow, I use this same USB switch and also use two monitors for everything.
Right now I manually switch my main monitor and just gave up on switching the
monitor above it.

But this is friggin awesome.

------
mandeepj
I was searching for it couple weeks ago. The cheapest KVM for two monitors at
ebay starts from $80. So, good job.

------
j45
It would be great if it was possible to extend this into a kvm over ip.

------
keithnz
depending what you are doing, I find remote desktop solutions to be pretty
good. However, multi monitor can be problematic.

~~~
Bedon292
I experimented with Windows Remote Desktop for a couple days, it worked fine
for coding, even with multi monitor. It was definitely a noticeable lag but
didn't bug me too much. But I probably should have remoted into the desktop
from the laptop instead of the other way around.

------
Splendor
Very cool. Will this only work over HDMI?

~~~
moolcool
I imagine it will work on any input your display supports

------
thefz
> for my two 4k monitors

Weird flex, but okay.

------
haram_masala
[https://www.amazon.com/gp/aw/d/B0817YFJKW](https://www.amazon.com/gp/aw/d/B0817YFJKW)

$60 shipped.

~~~
D13Fd
That's USB 2 and one monitor. He is looking for USB 3.

Also, I can tell you it's harder than you'd think to find good hardware in
this area, so I don't think the software effort is wasted.

------
Havoc
> I wrote some software.

And my heart sank.

Zero chance of getting that past corporate laptops that are way too locked
down for actual code anything beyond VBA

~~~
smabie
Then just have corporate buy you a real KVM switch?

