return to table of content

Show HN: Multi-monitor KVM using just a USB switch

gizmo
42 replies
1d5h

Good KVMs, specifically the ones from Level1Tech[1], are smart enough to keep all monitors connected virtually so all your windows stay in place when you switch back and forth between machines. There is no delay of plugging devices in because from the perspective of the client PCs the USB/display port devices were never gone. Of course you can connect a bunch of peripherals to a dock and switch the upstream thunderbolt connection, but that doesn't work correctly.

Crappy KVM solutions are easy. Good ones are hard.

[1] https://www.store.level1techs.com/products/hardware (no affiliation)

bmitc
12 replies
1d4h

Most newer Dell monitors have built -in KVMs and hubs. It's nice, becuase with wireless peripherals that USB receivers, it's a cableless setup. With a laptop, it's just a single cable to hookup everything.

Neikius
10 replies
1d3h

Bought one such monitor.

2 years later switched from m1 to m2 and it no longer works well enough (may also be the Sonoma upgrade stil gotta verify that). The devices get disconnected and glitch etc.

Went to check with dell and monitor is "not supported" on macos.

I am at a loss for words.

bmitc
6 replies
1d2h

I also had hell even with an Intel Macbook Pro. This whole just works thing Apple has been able to project is unfortunate. I have refused using Apple products from work because of how poorly their products integrate. It's not Dell. It's Apple. Any other monitor manufacturer will have the same issues.

Apple also refuses to implement a protocol that allows controlling the brightness and volume of a non-Apple monitor from the keyboard or even macOS itself. It's infuriating. The only monitors it works with are Apple's and the two overpriced Apple-sanctioned LG monitors sold in the Apple Store.

a2tech
2 replies
1d

This kind of whining is basically trolling. 'I've tried nothing and I'm angry it doesn't work!'

dns_snek
0 replies
5h48m

"I don't want to tinker with anything and have everything work out of the box" is Apple's entire value proposition.

That's the one justification that consistently gets upvoted to the top any time someone questions Apple's pricing structure. Please don't change the tune when someone reports a serious ongoing problem.

bmitc
0 replies
23h49m

A 16" Macbook Pro starts at $2,499. I do expect it to just work with basic peripherals and protocols for them.

I'm just explaining how it doesn't just work, and that I'm perfectly happy not using their products. My comment was also a correction that it's on Apple, and not Dell, as to why Apple products don't work well with non-Apple devices. This is a tactic that Apple uses to try and denigrate non-Apple products and get people to come back to Apple's "premium" versions of those products.

There are clear and easy steps Apple could take, but they won't.

mjcohen
1 replies
22h12m

I use an app called MonitorControl on a M1 16" MBP running Sonoma that adjusts both the MBP screen and external HP 25f monitor. It adjusts the brightness and contrast of whichever screen the cursor is in.

bmitc
0 replies
21h49m

Right, but that's part of the point. Apple should just have this inside macOS.

From MonitorControl's GitHub README, emphasis mine:

Most modern LCD displays from all major manufacturers supported implemented DDC/CI protocol via USB-C, DisplayPort, HDMI, DVI or VGA to allow for hardware backlight and volume control.

And a blog entry by the author of Lunar, an app mentioned elsewhere for this problem: https://alinpanaitiu.com/blog/journey-to-ddc-on-m1-macs/

These are not examples of "just works". Apple intentionally does these things to cripple integration into non-Apple products.

phubbard
0 replies
1d2h

I've had good luck with the Lunar app - it manages my Dell and LG monitors on an M2. (No affiliation) https://lunar.fyi

pxc
0 replies
1d3h

macOS has either always lacked (like Display port MST) or later broken/crippled (like DisplayLink support) some important features for multi-monitor setups. I wonder if those things or similar things are somehow implicated in these KVM-enabled monitors.

loloquwowndueo
0 replies
1d3h

How about “apple get your act together with those m2s”? :)

Disclaimer: meant to be humorous.

kanisae
0 replies
1d

I have an Intel Macbook 2019 for work. I've tried a couple different kvm solutions but they all had issues, always on the Mac side. The best I got was <1 sec switching from Mac to Linux and 10-15 seconds switching from Linux to Mac for everything to stabilize.

I ended up going with the nuclear option of an IP KVM https://www.raritan.com/support/product/dominion-kx-iv-101 that will do all the resolutions I want at 60hz. It was very expensive, but on the bright side it lets me keep work laptops completely unmodified and easily swappable.

jonathanlydall
0 replies
6h55m

I'm a little interested in one of these as an option to eventually replace my Dell WD19 USB-C DP-alt mode dock for my Dell notebook and my Desktop PC which connects by HDMI cables.

One question I couldn't see an answer to is whether or not the I can make the network port "sticky" to my Dell notebook (plugged in over USB-C), or will it "move" to my Desktop PC when I switch to it?

I read last year how recent standard made higher wattage delivery over USB-C now standard (I think it was the latest Thunderbolt one), so I'm waiting until these monitors can do that.

jetster735180
9 replies
1d4h

I bought the Level1Tech KVM and they do no support EDID emulation. I switch between a Mac and a Linux box (Gnome):

- Mac goes to sleep

- Gnome will default back the default monitor configuration and move the windows around

They do have a 1.2 DP KVM with EDID emulation, but you loose all the benefits of the 1.4 DP.

Its all on their FAQ forums

https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...

drakenot
7 replies
1d3h

Do you know of any solid KVMs with EDID emulation and 1.4 DP?

whompyjaw
2 replies
1d3h

Replying to follow (idk if there is a way to follow a thread). I have an Apple Display and would need 1.4 DP

dfc
1 replies
1d2h

You can "favorite" a comment and then access your favorite comments from your profile. Replying to a comment with a noop just to "follow" it lowers the snr for everyone else.

To favorite the comment click on the time the comment was posted and then on the following page click favorite.

Narushia
0 replies
10h17m

TIL, thanks. I think they should make that doable in one click, though.

oooyay
2 replies
1d

Yeap! This is my setup for MacOS and Linux with display port: KVM Switch Dual Monitor DisplayPort 1.4 8K@30Hz 4K@144Hz 2 in 2 Out,DP1.4 KVM Switch and 4 USB3.0 for 2 Computers,Backnward Compatible DP1.2 with DP+UBS Cables and Wired Controller https://a.co/d/5A3IG5P

sinfulprogeny
1 replies
23h8m

Under the Extend mode, it says it requires dual-graphics card. What does that mean? Guessing it's an odd translation.

breather
0 replies
22h56m

I think it just means if you want to kvm with two monitors over DP you need two DP ports on each computer.

jpk
0 replies
1d

The only ones I know of are the ConnectPRO ones. I have a UDP2-14AP, but it's really finicky. It works great with some systems and monitors, even at high resolutions and refresh rates. But other systems (for me, my MacBook) involve several blank-and-move-all-your-windows-around cycles before it settles and becomes usable after switching to it. I suspect this might be a monitor compatibility thing with the Mac, but I'm not sure.

Anyway, it's pricey and picky about compatibility, so it's hard to recommend, but I'm not aware of anything comparable in terms EDID emulation and support for high res/refresh modes.

Edit: Based on a sibling comment, the situation may have changed and there may be comparable ones around!

indrora
0 replies
23h10m

Rextron (the OEM behind Level1Techs' kVMs) has a version with EDID emulation, but it only supports usb1.1, not 3.0 or above. I sent a casual question to their contact to see what getting a branded one looks like and the Level1Techs ones are not sold at a huge markup, only about 20% or so.

EDID emulation done right is expensive.

theideaofcoffee
4 replies
1d1h

I have had great success with a generic KVM I found on amzn [0], but it now appears to be unavailable, which is a shame because I wanted to buy another. Perhaps I can find it somewhere else. It has never failed to switch between sources and the only delay, as some others are pointing out, is the HDMI handshake process inherent to the monitors themselves.

I did have a considerably more expensive TESmart [1] but couldn't use it because it had some weird incompatibility between it, thunderbolt docking station [2] I used with it (which also work flawlessly), and the MBPs connected to it. I could never figure out why, even raising the issue to support with no luck.

My two cents.

[0] https://www.amazon.com/gp/product/B088WGKFZH

[1] https://www.amazon.com/gp/product/B08N494N7X

[2] https://www.amazon.com/gp/product/B08HR3T837

kevin_thibedeau
1 replies
1d1h

For HDMI you have lots of options that provide EDID emulation. For DP there's only one game in town and it costs more than most computers.

Aardwolf
0 replies
4h55m

Given that GPU cards tend to have more DP ports than HDMI ports, why might that be? Why don't makers of KVM switches follow the same preference as GPU's do? (or vice versa. Why do we have two standards anyway)

mostlysimilar
0 replies
1d

You don't feel skeptical of products from a company called "GREATHTEK-More Convenient"? I am far too paranoid to plug random technology like that into my computers. It makes shopping for such things on Amazon nearly impossible.

Beijinger
0 replies
22h58m

PWAY Brand. Seems to be available on Aliexpress. just FYI

simfoo
3 replies
1d4h

Also got the Level1Tech one last year, very expensive but worth it imho. I use it to switch between my work and home PC many times a day, and it has worked flawlessly so far with two monitors (4k60hz+2k144hz) using Linux on both machines. USB audio, mic, 4k camera, printer and keyboard+mouse peripherals

whompyjaw
2 replies
1d3h

How is the latency with these devices? I produce music as a hobby and have many connections to deal with and as low latency as possible is ideal. I am looking for something I can switch between 3 different devices basically. Work laptop, MacBook Pro, and custom Linux PC. The 2 latter ones I produce on. Would this device work for that?

sunshowers
0 replies
23h41m

The added latency, if any, is not noticeable on 120-160Hz monitors. The KVM isn't doing any processing.

simfoo
0 replies
1d

I haven't noticed any additional latency, but my workload isn't particularly latency critical (I do sometimes game in the 144hz display and it's as smooth as it was before I got the KVM). They don't have a 3-computer version afaik so you'd need to go with this one probably: https://www.store.level1techs.com/products/p/14-display-port...

rjzzleep
3 replies
1d4h

Does that impact the time how long the monitor takes from switching between display off and showing something on the screen?

gizmo
2 replies
1d4h

You still have to do a handshake (determine resolution, refresh rate, etc) before you get a picture, and that takes maybe 3 seconds. Some monitors can handshake a bit faster, but not by much.

Tyr42
1 replies
1d2h

Still faster than my monitor. It can take long enough to turn on that my laptop goes to sleep (from the password entry screen). And since I'm using the monitor as the KVM, I can't even mash the keyboard to keep it awake, I got to reach over and keep touching the laptop.

kirubakaran
0 replies
1d1h
Hamuko
1 replies
1d4h

I really want one but I just can't justify paying like 800-900€ for a dual-monitor four-computer one when I have a USB switcher and can just switch inputs on my monitors.

Bagged2347
0 replies
22h50m

I came to this conclusion myself recently. I have the Cable Matters 4 port USB switch and it works just fine for my purposes.

https://www.amazon.com/dp/B083JKDNRJ

I was hopeful and tried using this Monoprice KVM switch (linked below), but it just wasn't worth it in my experience. Despite supporting Display Port 1.4, I could not use my monitor to its full ability with my PC (3440x1400 @165Hz w/ 10 bit color). Dropping the connection when switching inputs was also incredibly annoying; every time I switched away from my Macbook it would go to sleep.

https://www.amazon.com/dp/B093N1DR8Y

I'm happy to switch inputs on both the USB switch and my monitor separately because it's not actually too large of a hassle, and the monitor doesn't "disconnect" when switching video inputs on my monitor so my Macbook doesn't immediately go to sleep.

If anyone is in the market for a KVM switch, consider a USB hub first. You might find yourself satisfied. They're much less of a hassle and cost very little in comparison to a full featured KVM switch.

Aardwolf
1 replies
1d

Crappy KVM solutions are easy. Good ones are hard.

In this case what's crappy is those desktops rearranging windows when you turn off a monitor. I'd rather have my PC not know whether a monitor is connected or not, like used to be with vga.

toast0
0 replies
23h55m

VGA always had means for detecting a monitor. Originally, a vga monitor would pull down at least one of the id pins, and edid replaced that.

A lot of software didn't really care and just sent signals into the void, but it's possible to do that with DVI or DP, too.

RVuRnvbM2e
0 replies
1d1h

The windows not staying in place bug only occurs with crappy window managers. Decent ones are smart enough to put the windows back where they were when the monitors come back.

12345hn6789
0 replies
1d3h

Big+1 to the level 1 techs kvm. Ive had a little over a year and it's flawless.

2 2.5k/1440p monitors both 144hz and it switches every time. Highly recommend. Albeit a bit pricey.

cactusplant7374
15 replies
1d8h

This is nice. I know some digital nomads are using KVM to evade detection by their employers.

bitcharmer
5 replies
1d8h

What does remote work have to do with "evading detection" via KVM? This makes zero sense.

popcalc
3 replies
1d5h

They have multiple full time jobs. My friend knows a Hungarian guy who had 5 full-time remote US tech jobs during COVID. You can only really do this with American employers since they don't see your other jobs.

bitcharmer
1 replies
1d1h

It still doesn't make much sense to me. Ok, so he's working remotely doing 5 jobs. How does KVM help conceal this fact?

popcalc
0 replies
18h52m

Because they give you 5 laptops.

cactusplant7374
0 replies
12h49m

It has nothing to do with multiple jobs. A lot of companies don’t want their employees working abroad.

vidarh
0 replies
1d6h

I'm guessing avoiding non-work activities on their work machine.

Kluggy
3 replies
1d8h

detection of what exactly?

joking
1 replies
1d8h

Overemployment probably

pmontra
0 replies
1d8h

Or also doing their own personal activities.

cactusplant7374
0 replies
12h49m

Being abroad.

karolist
2 replies
1d8h

digital nomad sorta implies remote, non-office work, I fail to understand how KVM is helping simulate work as you imply? It just makes switching computers easier, nothing more. You can switch manually or you can just use separate work and personal machines as well.

cactusplant7374
1 replies
12h51m

Because they leave their laptop in their home country. Not all companies approve of remote work.

karolist
0 replies
12h9m

VPN/VNC/RDP, nothing to do with KVM

y-c-o-m-b
0 replies
1d1h

I'll explain. You can use a KVM like PiKVM to remotely log in from another location. For example if your employer requires that you work within the US, you can have a PiKVM device installed locally at a family or friend's home in the country and connect to it from outside the US and it would appear as if you're doing your work domestically.

It's basically a hardware remote-desktop at that point though, so the "KVM" part only applies to the KVM device being connected to another physical device on location.

EDIT: To clarify further, the advantage of this is PiKVM is undetectable by work laptops. Nothing is installed on the work laptop, it's strictly HDMI + USB cables going to the KVM. I know this because I use one for my FAANG job.

ndsipa_pomu
0 replies
1d8h

How do they do that? Is it the case that their boss walks by them and can see what's on their screen so they're switching away from minesweeper?

MichaelMug
10 replies
1d8h

After researching KVMs I also came to the same conclusion that ddc is the solution.

My use case is a bit different. I have two Windows machines and a dual monitor setup. I use NirSoft ControlMyMonitor which has a CLI and a Elgato Stream Deck.

In a normal KVM approach both monitors are showing only one computer. My use case is a bit odd- I want one computer on monitor A and the other on monitor B. I may also want to flip that. I use a portrait and landscape setup. Then I want to be able to switch mouse/keyboard independently of monitor configuration.

Each computer runs the Stream Deck software and the Stream Deck is connected to the USB switch.

webdevver
7 replies
1d7h

what does ddc stand for?

fiddyschmitt
4 replies
1d7h

Display Data Channel... it's the signal that your video card uses to communicate with yours monitors to do things like adjust brightness.

https://en.wikipedia.org/wiki/Display_Data_Channel

Aardwolf
3 replies
20h53m

Does there exist any hardware knob that you can put between display and displayport cable to adjust brightness? I hate the fiddly menus in monitors and in linux no ddc utils work for me (some "leds" that should include monitor brightness only has keyboard leds)

wtallis
2 replies
13h41m

If you can't control the brightness from Linux when using proper software tools, then it's likely your monitor simply doesn't support the brightness control commands and inserting another device between your GPU and monitor won't achieve anything.

lloeki
0 replies
8h34m

your monitor simply doesn't support the brightness control commands

Or it does but the state of DDC/CI (and HDMI-CEC) is very sad as implementation is inconsistent and subpar to say the least (from order of commands to timing to subtle difference in required payloads that would make the display reject commands).

A dedicated device would cut the GPU out of the equation, but most likely patching ddc tools can be equally fruitful.

Aardwolf
0 replies
4h58m

I have an Aten KVM switch in-between, maybe that one is doing something wrong, but it's a good KVM switch otherwise imho

argsnd
0 replies
1d7h

Display data channel

MichaelMug
0 replies
20h26m

Apologies. I hate when people do that as well.

In addition to the other links posted, ddcutil.org has some more good info: https://www.ddcutil.com/#introduction

fiddyschmitt
1 replies
1d8h

Cool setup. Is it all working nicely with the Stream Deck & associated bindings?

MichaelMug
0 replies
20h19m

Yes it works well.

The only issue I found was random disconnects when using a backlit LED keyboard and the stream deck on the same non-powered USB switch. I switched to a powered USB switch and that issue is gone.

The switch I'm using is IOgear 2x4 with a USB 5v 2a power brick. https://www.iogear.com/product/GUS402/

poisonborz
9 replies
1d6h

Haha, just writing a "me too here", I just came to the same conclusion, but I think my setup is better and cheaper, if a tiny bit more complex. For example, the above would need to install to all computers which is a no go for me. Also this is dependent on the USB switching, cannot be triggered fully remotely.

- DDC commands for monitor input switching

- USB KVM that has only one button to switch - mine was 25$, there are plenty of models out there

- Stream deck or prebuilt macropads are super expensive (80$+) for what they are - a few buttons. Get a cheap AliExpress macropad, they go for 5-10-15$ and have all kinds of layouts. They are also much smaller, you can get just one, or 2-3-4 buttons. Don't use the crappy software they ship with, there are github projects to program them. https://github.com/rOzzy1987/MacroPad

- FingerBot 16$ (if you already have HomeAssistant, Zigbee+BT it's faster) or Switchbot 28$ (bluetooth, has a bit more delay) to press the USB KVM button.

- Then an AHK switch to watch for keyboard shortcuts, and trigger both the DDC commands and the USB switch button.

It has a few seconds delay, but it's controlled from one source only, and can be also fully triggered remotely.

sesm
2 replies
1d4h

I'm sure your setup has extra advantages over regular KVM switch and was an enjoyable hacking project for you. But from a price perspective, it's possible to buy a 4-way 4K HDMI KVM switch with a control pad on AliExpress for 29.25$. I don't know how much shipping to US will cost though, shipping to Europe was 15$.

poisonborz
1 replies
1d4h

I researched a lot for KVMs before. The problem is the video output is hard to get right. What about 120hz+, multi-monitor, how stable the thing is long term. I also thought this is a long solved problem but it isn't. Looking at Ali there isn't a model with too many reviews that can do the above.

At the end of the day this is what I would recommend, it is pricey but everyone swears to it: https://www.store.level1techs.com/products/p/14-kvm-switch-d...

CTDOCodebases
0 replies
8h52m

It gets expensive too when you have > 2 monitors.

layer8
1 replies
1d3h

the above would need to install to all computers which is a no go for me.

With your solution, one needs to install the AHK script on all computers though?

poisonborz
0 replies
1d2h

No. The macropad would be connected to one PC which would be the controller, so you press that regardless which output is selected, maybe this wasn't clear. But this is only needed to trigger - theorietically it could be triggered by a third device (eg RasPi connected to the display(s) via HDMI).

Maybe to add, this is also better than a KVM because it supports any number of display outputs which you can connect between the two devices. It's more practical to use a USB-C dock though.

alanbernstein
1 replies
1d2h

I want something like this, but my monitor doesn't support enough DDC commands for it. Any monitor suggestions?

poisonborz
0 replies
1d2h

You only need input source set. I think most mainstream brands support it - you don't need DDC directly, the easiest way is using the included driver which usually provides a utility console commands. Most common suggestion is something from Dell (with its Dell Display Manager).

legojoey17
0 replies
1d2h

Seems like we all have! I ran into quite a few hiccups when I tried to automate this with a Windows and MacOS machine with just a USB switch (bad DDC values, detecting device events, etc). https://nokappa.notion.site/Making-a-software-KVM-using-only...

I ended up mostly giving up because it was a bit janky and I always had something else in more disarray.

Sweet idea on the macropad! I haven't used them before and placement of the USB switch is always a pain.

fiddyschmitt
0 replies
1d5h

Nice one!

kthxb
7 replies
1d8h

I found even these simple USB Switchers to be quite expensive, and sometimes they require drivers that don't work on Linux. I quickly sketched a simple circuit board with USB hubs and a switch and ordered them assembled (!) from one of those DIY-fabs (JLCPCB or PCBWay). They cost 25€ for 5 pcs, each with one 2-to-1 switch. I don't have any experience in circuit design and didn't have to solder anything, and they work perfectly.

These would go pretty well with this software, maybe I'll give it a try.

azalemeth
2 replies
1d8h

That sounds awesome -- Please post the designs somewhere accessible! My experience of kvms is that they're either cheap and don't work in weird ways or expensive and do work, but with quirks. I think no small part of it is earthing and the avoidance of ground loops at different potentials.

SOLAR_FIELDS
1 replies
1d7h

After doing a bunch of research I eventually bought a monitor with a KVM built in and I’ve had almost no issues with it. It does imply if you go this route that you are stuck with a single monitor setup, but if that is how you work anyway it’s totally fine and great.

Otherwise some KVM that is decent is as you imply not going to be cheap. The one that I have seen recommended on here before is https://www.store.level1techs.com/products/p/14-kvm-switch-d...

The manufacturer themselves even outright says it’s not perfect, but from what I can tell it’s probably the best one on the market right now

MayeulC
0 replies
1d3h

It does imply if you go this route that you are stuck with a single monitor setup

Not if you use DP-MST (DisplayPort Multi-Stream Transport, to "daisy-chain" monitors).

thefz
0 replies
1d6h

They don't require software as everything happens physically. And they go for around 20€ on Amazon, I'd say less expensive than having a custom one made.

jonathanlydall
0 replies
7h3m

I bought this one [1] for USD 13 in 2019 and still use it with display-switch (which the OP mentions) to this day.

It's as "dumb" as is possible, according to one of the reviews the ports can be a little iffy if you've plugged things into it too many times, but it's still working perfectly for me for my 2x Dell P2419H monitors.

I chose this one due to all the wires being on the back, but I'd also be happy with the one with the remote in the OP's GitHub page.

[1]: https://www.amazon.com/gp/product/B01HV1N674

fiddyschmitt
0 replies
1d8h

That is so cool!!

Yes I noticed prices had increased a bit over the last couple of years. Perhaps there's a market for yours.

Interesting to hear that some USB switchers don't quite work in Linux. I had assumed they were just very basic USB hubs so no special drivers required. I know some USB switches have fancier things like inter-PC file transfer or mouse sharing like this one (https://www.aliexpress.com/item/1005006202631772.html), and that often requires special software and drivers.

HumblyTossed
0 replies
1d6h

TA linked to a few that are quite reasonable in price. I’ve owned a couple while searching for a similar set up and not a single one that I researched or bought required drivers.

karolist
6 replies
1d8h

Before settling back to one computer, I've done the cable replug thing manually, then used the urgreen USB switch as in the README then settled to using a monitor with built-in KVM switch, and it was the best. The problem is when you want one monitor for work and gaming - 4K (and/or high-refresh) KVM switches are incredibly expensive and tend to be unreliable, so what you usually do is use USB switches and switch input source on the monitor manually, the software here saves you clicking the "change input source" button, but seems to be Windows only, so unless both machines run Windows it'll be a one way switch and you'll have to resort to manual switch back.

The monitor that is suitable for gaming and has high DPI high refresh and built-in KVM switch is Gigabyte M28U, clicking one button switches input source and USB peripherials, works quite nicely, there's also M32U but with less DPI.

Kluggy
2 replies
1d8h

Do the other computers detect the lack of a display when they're switched on the monitor?

vladvasiliu
0 replies
1d8h

In my experience, this seems to depend on the monitor. On my LG, the computers think the monitor is still connected.

karolist
0 replies
1d8h

The monitor remains connected to the machine, the machine is unaware monitor is no longer using it as input source, but I assume this part, maybe there's some CEC notification firing.

klohto
1 replies
1d6h

the gigabyte m27u is even better panel and looks great with macOS due to high DPI

karolist
0 replies
1d

Ah, good to know, I think it was not available when I bought mine. I would have preferred 27" to 28" due to DPI.

fiddyschmitt
0 replies
1d8h

Nice one. Yes built-in KVMs are great. Btw - if you only have two computers, you can get away with running SimpleKVM on just one of them. Because it can detect a USB device being removed (ie. gone to the other computer) and inserted (arrived at this computer).

dizhn
6 replies
1d6h

There's a blog post about a similar thing but without any extra hardware. It uses barrier and a few simple scripts. (monitor does have to support switching via dcc).

It's not perfect especially since the input switching for the display is quite slow but there's leg in hardware kvms too.

https://xpufx.com/posts/hundred-percent-software-kvm-switch/

fiddyschmitt
2 replies
1d5h

Yes Barrier is very nice. I would use it except for the fact that my work laptop is VPN'd and therefore on a different network to my home LAN.

PinkSheep
0 replies
18h50m

You can override the default route of the VPN for the LAN.

0lde
0 replies
1d4h

Barrier uses all IPs, so I use it with my VPN active but via my cross over cable at the library. If my USB WLAN devices supported ad Hoc mode, it would be over a permanent wireless link between the thinkpads.

fud101
1 replies
1d2h

I'm using this solution atm. Works quite well except the barrier server on Linux is buggy and I need to frequently restart it.

dizhn
0 replies
9h57m

Some ex barrier people cloned (as opposed to forking) the barrier repo and are continuing development on it. It's called input-leap.

liftm
0 replies
16h1m

My monitor doesn't have dcc. I've worked around that part by activating automatic input selection and xset dpms force off'ing on the device I want to switch away from.

avodonosov
6 replies
1d6h

Why is it callled a "KVM"? What does it stand for?

cloogshicer
3 replies
1d6h

Keyboard-Video-Mouse Switch:

https://en.wikipedia.org/wiki/KVM_switch

avodonosov
2 replies
1d6h

Thanks. I was confused because the only KVM I heard of is https://en.m.wikipedia.org/wiki/Kernel-based_Virtual_Machine

sokoloff
0 replies
1d4h

It’s amusing to see the mirror comment of this one on a “that other kvm” thread a few days ago: https://news.ycombinator.com/item?id=39300551

em3rgent0rdr
0 replies
1d1h

Same here. This is why it is important to define an abbreviation when it is first used in a document.

franky47
0 replies
1d6h

Keyboard, Video and Mouse. Usually you would switch both the input devices (keyboard and mouse) and the output (display), allowing to use a single set of peripherals to control and monitor multiple computers.

TIL KVMs existed before the mouse, which explains the odd order.

Secretmapper
0 replies
1d6h

Keyboard Video and Mouse

abraae
5 replies
1d9h

To clarify (the first thing I wondered) each computer needs its own HDMI cable plugged into its own input on the monitor. So not true KVM as many people would think of it, but this saves you from having to use the monitor's input selector.

At least one of the computers must be on and running Windows, but maybe only one?

fiddyschmitt
3 replies
1d8h

Yes only one computer needs to have Windows and run the program.

If it detects the USB device being inserted, it changes monitor inputs to the Windows computer. If it detects the USB device being removed, it changes monitor inputs to the Linux computer.

daveidol
1 replies
1d6h

Would you consider making a macOS port?

fiddyschmitt
0 replies
1d5h

For sure :)

layer8
0 replies
1d3h

This doesn’t seem to work on all setups, see https://news.ycombinator.com/item?id=39333869.

mkl
0 replies
1d8h

ddcutil can do input switching on Linux, so it would be easy to do something similar there. I already do a similar thing with xrandr for monitor rotation, running a script when I press a hotkey.

wslh
3 replies
1d8h

Just in time project! Do you know if it is possible to just switch a Thunderbolt dock? I mean: you have, fir example, four computers all supporting Thunderbolt and you just switch a USB-C between those comouters?

I have not tried because I am concern with affecting the hardware. Based on your inspiration I just found Thunderbolt KVMs such as [1] and [2].

[1] https://sabrent.com/products/sb-tb4k

[2] https://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw...

serf
0 replies
1d7h

I would suspect problems, all of my thunderbolt docks seem to have a 'boot-up' period when powered-on and switched to.

It would probably work if you were okay with the delays.

fiddyschmitt
0 replies
1d7h

oooh, not sure. I suspect Thunderbolt has very specific requirements, and switches would be consequently expensive.

MezzoDelCammin
0 replies
1d7h

Wouldn't count on that. Thunderbolt is USB-C just visually. It's probably better to think of it as PCIe that coincidentally has the shape of a USB connector.

m463
3 replies
1d6h

I have always found that KVM switches have side effects on USB devices.

So I use mechanical USB switches.

for keyboard and mouse, I use two of these:

https://www.amazon.com/dp/B01I0Y3GEE/

They have no extra keyboard/mouse latency, and no weird side effects like boot keys that don't work or modifier keys that are in the wrong state.

Issues I've had before with mouse/keyboard:

- hotkey conflicts

- mac boot keys break (hold down <key> for <some boot function>)

- modifiers stick in wrong state

- weird delays

- combinations with mouse+keyboard break

k8svet
1 replies
11h17m

Don't use the HID port on the KVM. Aka don't plug mouse and keyboard into the mouse and keyboard port on the KVM.

Pro: you shouldn't have the issues you listed. Con: you'll lose the hot key commands for the KVM.

m463
0 replies
2h29m

Many KVMs do not have a "raw" port like you mention. But manufacturers are becoming more enlightened.

The other thing is, many KVMs will add a hub between your keyboard/mouse and the system you're connected to. This is convenient because you have just one cable to each system. But sometimes this is a source of incompatibility. I think the hub requires the system to be able to enumerate devices one-level removed, and the enumeration might be the source of delay. It also might be beyond bios-level firmware, which is less capable than many OS usb stacks. I believe this might have been the problem with mac boot keys.

I know a mechanical usb switch is not very elegant, but I find the reliability it adds is worth it to me.

fiddyschmitt
0 replies
1d4h

Yes I know exactly what you mean - I've experienced the same. I haven't tried a mechanical one before. I'll have to try it out

iLoveOncall
3 replies
1d9h

Any advantage over Synergy?

skykooler
0 replies
1d9h

All computers use the same monitor. This may be an advantage or disadvantage depending on your setup.

rafamvc
0 replies
1d5h

I use barrier and it is a lot better than synergy.

fiddyschmitt
0 replies
1d8h

Synergy is awesome, but unfortunately I can't install it on my work computer due to policy & VPN.

The benefit of SimpleKVM is that I just have to run it on my home PC, and I can switch between work and home.

freewizard
3 replies
1d3h

Nice project.

I wrote sth similar for myself, without requirement of USB switch or other hardware. it sends DDC command to HDMI/USB-C monitor and HID++ byte code to Logi MX keyboard and mouse.

Code is too messy to share but here's snippet if anyone want to write their own:

    hid_devices = [
        {
            'name': 'Logi Bolt Receiver',
            'receivers': hid.enumerate(0x046D, 0xC548),
            'command': [  # MX Keys Mini as first device on the receiver
                bytes([0x11, 0x01, 0x09, 0x1A, 0x00] + [0] * 15),  # change host to 1
                bytes([0x11, 0x01, 0x09, 0x1F, 0x01] + [0] * 15),  # change host to 2
                bytes([0x11, 0x01, 0x09, 0x1D, 0x02] + [0] * 15)]  # change host to 3
        }, {
            'name': 'Logitech Unified Receiver',
            'receivers': hid.enumerate(0x046D, 0xC52B),
            'command': [  # MX Anywhere 3 as first device on the receiver
                bytes([0x11, 0x01, 0x0A, 0x1A, 0x00] + [0] * 15),  # change host to 1
                bytes([0x11, 0x01, 0x0A, 0x1E, 0x01] + [0] * 15),  # change host to 2
                bytes([0x11, 0x01, 0x0A, 0x19, 0x02] + [0] * 15)]  # change host to 3
        }, {
            'name': 'MX Keys Mini Bluetooth',
            'receivers': hid.enumerate(0x046D, 0xB36E),
            'command': [
                bytes([0x11, 0xFF, 0x09, 0x1E, 0x00] + [0] * 15),  # change host to 1
                bytes([0x11, 0x01, 0x09, 0x1F, 0x01] + [0] * 15),  # change host to 2
                bytes([0x11, 0xFF, 0x09, 0x1D, 0x02] + [0] * 15)]  # change host to 3
        }, {
            'name': 'MX Anywhere 3 Bluetooth',
            'receivers': hid.enumerate(0x046D, 0xB025),
            'command': [
                bytes([0x11, 0xFF, 0x0A, 0x1A, 0x00] + [0] * 15),  # change host to 1
                bytes([0x11, 0x01, 0x0A, 0x1E, 0x01] + [0] * 15),  # change host to 2
                bytes([0x11, 0xFF, 0x0A, 0x19, 0x02] + [0] * 15)]  # change host to 3
        }
    ]

HankB99
1 replies
1d1h

Where could I explore this further? Are these sequences specific to the device?

My current setup includes two Dell monitors (U2415 with 2x HDMI "MHL" inputs and built in USB-3 hubs.) I'm using these with a Linux X86_64 desktop. I also use Logi vertical mouse and ATK (A.JAZZ) keyboard, both on Bluetooth and both also have dongles.

I would dearly love to use the keyboard/monitor/mouse on a Raspberry Pi 5 (BT and two micro-HDMI ports) with a pure S/W based solution rather than spending $$$ for a H/W KVM switch.

Thanks!

Edit: WRT messy code - no judgement, no shaming here. BTDT.

jespern
0 replies
6h6m

This works for me:

  import hid

  VID = 0x046D
  HID = 0xB023 # 0xB35B

  if __name__ == "__main__":
      h = hid.device()
      h.open(VID, HID)
      h.set_nonblocking(1)

      # this works for keyboard
      # h.write([0x11, 0x01, 0x09, 0x1F, 0x01] + [0] * 15)

      # this works for mouse
      h.write([0x11, 0x01, 0x0A, 0x1E, 0x01] + [0] * 15)
      h.close()

fiddyschmitt
0 replies
20h26m

Nice!!

dukoid
3 replies
1d2h

I have been doing this for years without any additional software: just make sure your monitor goes to blank when locking the screen:

1. lock screen

2. Switch USB switch to the other source

3. Press space to activate the other PC

4. Monitor should automatically sitch to the "new" active source.

alanbernstein
2 replies
1d2h

What monitors have worked for this for you? My Samsung monitor seems to have a hard time finding the source I want.

starkparker
0 replies
1d1h

BenQs have it (look for "Input Auto Switch").

dukoid
0 replies
1d1h

Philips Briliance BDM4350UC

atomize
2 replies
1d3h

My mid-range LG monitor has a built in KVM as well as PBP (picture by picture??) --- Whatever it stands for, I am able to split my 34 inch wide screen between my work Macbook and my personal computer (Linux) - I use an app that I've had forever called Synergy to share my mouse and keyboard between them seamlessly. You can even copy/paste across machines. I personally am hooked on my PBP widescreen+Synergy combo.

starkparker
0 replies
1d1h

Yeah, PBP was a gamechanger. I got a Samsung with it without realizing and now use it almost exclusively.

bonton89
0 replies
4h43m

I believe there are HDMI splitters on amazon that let you do this with any TV, although I'm not sure how great the quality of output is. I was looking at them once to see about doing split screen gaming with two different consoles.

tim--
1 replies
20h13m

With my COVID obsession of live streaming while writing code, I ended up building something a little more elaborate. https://github.com/timgws/kvm-switch

It doesn't use DDC commands direct to the monitor(s), instead swapping it for a HDMI matrix combined with a traditional KVM for swapping around inputs smoothly when you roll your mouse over the edge of different operating systems.

The switching client runs on Windows, MacOS and Linux (if you use X).

k8svet
0 replies
11h23m

I'm reading and I'm wondering where the lede is... it seems the matrix device in question is 1000+USD

nottorp
1 replies
1d

Looks pretty useful if you don't want to spend more on your KVM switch than you spent on your monitors combined!

Well not for me because my boxes run multiple operating systems, but for someone with just multiple windows computers it would be great.

fiddyschmitt
0 replies
8h6m

Thanks! Even just one instance running on Windows can be used for a Windows+Linux setup

mattfrommars
1 replies
16h41m

For this to work, does my primary computer need to be on all the time? The way I understand this, the 'host' computer will be running this piece of software and fires the event for the monitor to switch inputs.

fiddyschmitt
0 replies
8h9m

Correct

joantune
1 replies
1d5h

Would a USB bluetooth adapter to connect to wireless keyboards and mouses work with this??

fiddyschmitt
0 replies
1d5h

I think it should. When you do the setup it asks you to unplug and replug the device, and choose it out of the list. So it should trigger the change.

g1sm
1 replies
1d3h

I’ve been using display-switch[0] for this for a while now. No problems whatsoever. Works on windows/mac/linux.

[0] https://github.com/haimgel/display-switch

jglamine
0 replies
1d2h

Same! The fact that it's cross platform helps a lot to ensure commands aren't missed. If I'm switching while one computer is off, the other can still send the command.

fiddyschmitt
1 replies
1d5h

If you only have two PCs, you only need to run the program on one of them.

When it detects a USB device being plugged in, it changes the monitor input to this computer. When a USB device is removed, it changes the monitor input to the other computer.

layer8
0 replies
1d3h

Doesn’t necessarily work, see https://news.ycombinator.com/item?id=39333869.

PikachuEXE
1 replies
1d7h

For software KVM you can use https://github.com/debauchee/barrier

I use it between a Windows PC & a Macbookpro (Linux version available but I don't have Linux)

fiddyschmitt
0 replies
1d7h

Love it.

Unfortunately I can't install it on my work computer due to policy & VPN.

The benefit of SimpleKVM is that I just have to run it on my home PC, and I can switch between work and home.

DeathArrow
1 replies
1d7h

How would this work if your monitor uses HDMI?

fiddyschmitt
0 replies
1d5h

Yep HDMI works well. It also works on DisplayPort, DisplayPort Mini, VGA and DVI.

zadwang
0 replies
1d4h

I use DDC and synergy. So no hardware. It is mostly working OK.

tjoff
0 replies
1d8h

One thing to note here with these kind of tools, on displayport they typically only allow commands on the active input. Once you switch to another you can't switch back (unless you do it from the other computer). Which is kind of a hassle.

HDMI on the other hand typically allows the ddc-commands even on ports that are not the active input.

Not sure if the above must be the case but it has been the case for all displays I've used.

thefz
0 replies
1d2h

Cool project!

synergy20
0 replies
1d3h

I have a posix script does the same thing but after a few months the screen was dead, somehow I feel manual switch screen input is safer.

soldeace
0 replies
5h12m

Only after I've got my ham radio license that I learned how these USB switches are annoying sources of RFI, even the more expensive ones. KVM switches are fine though.

segasuperstar
0 replies
1d2h

This is genius

peter_d_sherman
0 replies
1d1h

I haven't reviewed the code for this -- but I like this idea a lot!

I would love to see a future piece of software, one that could use any number of USB KVM's like this software does -- but could also serve as the main GUI for any number of local VM's and/or remote VM's -- connected over USB or Ethernet or software-controllable "smart" hardware KVM switch or some other intermediary layer.

In other words, abstract:

a) VM GUI;

b) Connection medium to that VM (USB, Ethernet, Smart Hardware KVM Switch, Firewire, ?, ???)

c) How/where the a given VM GUI is displayed on the local monitoring computer, i.e., be able to shrink screen, display on a multi-row, multi-column display (like a Zoom meeting!), group various related VM GUI's, have a local directory and search for VM (for example, if I've got a software development environment of various x86 Windows VM's and various ARM Android VM's -- then I might want to group by CPU or Operating System or software stack version, etc., etc.)

Now, probably all of this software infrastructure exists in one form or another.

For example, in QEMU, local or remote VM's can be created and then they can be connected to via TCP/IP...

But, to centrally manage all of those QEMU VM's and non-QEMU ones as well, as well as regular PC's running any OS on "bare metal" over any connection medium (a heterogenous network of computing machines) -- that would be the goal of this software!

VNC, or something like it, could be used on the client-side of bare-metal PC's, but wouldn't be necessary for VM's...

Anyway, KVM over USB (the original article), is a great idea!

oldgradstudent
0 replies
1d4h

There are pretty reasonable 4-port KVM switches on Aliexpress that support 60Hz 4K and USB-3 for $55 or even less.

I got this https://www.aliexpress.com/item/1005002941646654.html a year ago. It has some minor compatibility problems with my Macbook Pro (or Apples' multiport adapter) which require me to remove and reinsert the USB-C cable from the Macbook once in a while, but it otherwise works very well.

A year later, there are multiple such devices starting from $30, or even less.

nemetroid
0 replies
1d2h

I use udev for this purpose (send a DDC command when the USB switch appears):

  ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"

moystard
0 replies
1d6h

After trying many hardware and software solutions for easily switching between my rigs, I settled on something much simpler: a monitor with a KVM built-in. It does not have to cost you an absolute fortune. I personally chose the Gigabyte 34" M34WQ; it's probably one of the very best purchases I made in the past two years, and it simplified moving between my work and personal rigs an absolute breeze.

mandeepj
0 replies
1d5h

This is great, but currently very limited; partial support for Windows. Seems inclined more towards Apple.

https://github.com/feschber/lan-mouse

maCDzP
0 replies
1d7h

I have a Mac and Windows hooked up the same monitor and keyboard/mouse. I used a USB-switch and connected the monitors separately with USB-C and VGA. Then I don’t have to route the video though the USB-switch.

jwells89
0 replies
1d3h

What I ended up doing is making sure all my computers support Thunderbolt 3/4 (or USB 4 at minimum), getting a single good Thunderbolt dock (CalDigit TS4+) and just swap out which computer’s TB cable is plugged into the dock. To ease this I have a little magnetic pad stuck to my desk next to the dock which holds each computer’s cable when not in use.

It works great for my needs. Perfectly for switching between Macs or PCs with Intel iGPUs. It almost works perfectly with my gaming PC (which sometimes does double duty as a Windows/Linux workstation) but its Nvidia GPU can get cranky when used with Thunderbolt GPU passthrough for some reason under both operating systems. I think the issue is actually in drivers, but good luck getting Nvidia to care about this use case. I’m considering putting an old AMD GPU in the second slot on the PC and using that for passthrough duty.

hk1337
0 replies
6h35m

It’s not really a switch but I just simplified my connection to just a single thunderbolt cable on the computer. With that, they all get the same two monitors, keyboard, mouse, and anything plugged into the dock.

craigkilgo
0 replies
23h8m

Does this work? This would be amazing.

consumer451
0 replies
14h38m

I realize it’s not the use case in OP, but if each of your machines has a display, Barrier is like a super power.

Also allows copy-paste across OSes.

https://github.com/debauchee/barrier

chrsig
0 replies
1d2h

I've been pretty happy with a monitor acting as a kvm, where the usb output (usb-c or usb-3) can be mapped to a display output.

It's nice for a wfh setup where I have a personal desktop and a work laptop, and I can quickly switch between them just by changing the display output.

bitcoinmoney
0 replies
1d5h

I use dell display manager with dell monitors and one of the switches in the article.

anotheryou
0 replies
1d4h

wow, great! (in theory, sadly my monitors suck. Dell one refuses to see dp and the cheap one does not react to hdmi when set through the tool... I got one specific setup with normal kvm that mostly works, all others don't...)