return to table of content

DeskHop – Fast Desktop Switching

michaelmior
18 replies
7h35m

Synergy works well for this purely in software. Unfortunately it's not free or open source, but it's relatively inexpensive.

https://symless.com/synergy

figmert
6 replies
7h25m

Prior to Synergy going to closed source, it was forked into Barrier[0], which then was forked into input-leap[1]. Both open source.

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

[1] https://github.com/input-leap/input-leap

stavros
2 replies
6h5m

Input leap was forked two years ago and the Readme still says "we hope to have a release ready very soon", which doesn't sound very hopeful. Too bad, Synergy was always a very useful project.

aystatic
1 replies
3h25m

This announcement was only added to the README in early October[1]. In the meantime you can of course compile it yourself/grab a build from GH actions. I'm sure they would appreciate the testing, especially leading up to release :-)

[1]: https://github.com/input-leap/input-leap/commit/78ca8f1ef7b6...

stavros
0 replies
3h22m

Oh good, thanks, I will!

loloquwowndueo
1 replies
4h37m

I haven’t tried Synergy. barrier and input-leap were useless for me as they don’t capture “ctrl-alt” so my crucial “open a terminal” shortcut always opens it on the primary computer. Maybe Wayland is to blame?

elaus
0 replies
3h47m

Didn't have any problems with X11 and various computers - so maybe it really is Wayland-specific?

ddalex
0 replies
6h22m

Unfortunately there is no simple way of makeing this work on a Chromebook

sixothree
2 replies
4h59m

I have a saying “nothing sucks like synergy but they all do”. Not a single one of these technologies is reliable. But synergy is the one that has multiple times made even the connected keyboard stop working to the point where the machine needs to be power cycled to become responsive.

bonki
1 replies
4h1m

Thing is, I used the old OSS Synergy some 15-20 years ago, across Linux, Windows and I believe OSX as well (although I am not 100% certain about the latter). It worked absolutely flawlessly for several years while I used it and I loved it dearly. Fast forward (I had no need for a software kvm until last year) and I use Barrier now and it barely works. Autostart on Windows doesn't work at all, the installer failed to create certificates so nothing worked until I created them manually and sometimes the keyboard dies completely or exhibits frustrating bugs which only a reboot can solve. It's baffling how this used to work so well and is barely usable 15+ years later.

snappysnap
0 replies
2h27m

Totally agree. Back in 2004 I used it daily to bridge between two PCs running on one network, behind a firewall with one running the synergy server and the other the client, and a laptop running the client. Both PCs were under my desk with my laptop and two screens from the PCs on top. I had one keyboard and mouse across three screens powered by three computers and could seamlessly not only move my mouse across all 3, but also copy paste text across too. I believe a newer version (which may never have materialized before it went closed source) was going to have drag n drop across too. It was so easy to work with and remember it very fondly. It was magic stuff.

worldsayshi
1 replies
3h13m

Does Synergy work with multi monitor setups? I've enjoyed Barrier but it doesn't work when any of the machines have multiple displays so I've ditched it for now.

ProcNetDev
0 replies
1h58m

Synergy works with multi-monitor (for me at least). I've been using it for close to two decades. Outside of the Linux kernel, it is probably the single piece of software I've used the longest.

thedookmaster
0 replies
7h31m

https://github.com/debauchee/barrier is the free open source version of this

smileybarry
0 replies
3h44m

The fact that TLS connection encryption is gated behind the $60 edition (vs the $30 personal edition) completely turned me off it. Not a fan of basic security being paywalled.

smcleod
0 replies
5h29m

And its new version has been rewritten so that it’s no longer a native app but an Electron web app.

rzzzt
0 replies
7h21m

Synergy is open core, these portions are licensed as GPL: https://github.com/symless/synergy-core/#License-1-ov-file

There is an open source fork that branches off version 1.9: https://github.com/debauchee/barrier#what-is-it

mmwelt
0 replies
4h13m

Any suggestions for Windows & Android (tablet)? All the solutions seem to only work with desktop OSes.

asmor
0 replies
5h12m

Synergy has some bugs they just don't seem to care about. For instance, if you use a macOS host, the calculation of where your cursor on a Windows/Linux client uses the macOS acceleration curve, but the actual movement of cursors does not. So you end up switching back unintentionally trying to do things on the third of the windows screen closest to your host.

mariopt
14 replies
7h21m

I bought 4 USB hubs just to switch the keyboard and mouse, it's just so annoying how most devices are so terrible. Randomly you have to physically detach the hub several times a day. If you plug webcams and/or USB mics, it only gets even worse.

I'm using Synergy software and it works well, but I still want a proper KVM that can allow for webcams, mics, audio, etc. Features like moving only a group of plugged devices via keyboard shortcuts.

KVM users are underserved for sure.

ccakes
12 replies
7h10m

KVM users are underserved for sure.

100%

I want to share keyboard, mouse and monitor between a PC and a MacBook. A KVM with DP+USB on one side and Thunderbolt on the other doesn’t seem to exist.. I feel like this has to be a common use case :(

I know I could break out on a dock first, but I have a particularly high-res monitor which most of the docks baulk at, or only support at 30Hz

nine_k
1 replies
5h7m

Most monitors have 2-3 inputs. Mine has a desktop, a laptop, and occasionally my phone attached to it, using HDMI, DP, and another DP / USB-C respectively.

Unless you switch really often and want subsecond switching time, three's no need to even use a KVM to switch the monitor.

jbverschoor
0 replies
4h44m

Even at twice per day switching using monitor controls would drive me nuts. The buttons, the menu, the delays, blanking and disconnects. By then I already forgot why I was even switching

jwells89
1 replies
6h54m

Closest I’ve found is manually switching the machine plugged into a TB 4/USB 4 dock (CalDigit TS4), with the cables for each computer being managed when unplugged by a magnetic cable pad[0].

It’s a bit clunky but not too bad once you have a feel for swapping cables and is less flaky than the more affordable KVMs I’ve tried. Gets me a nicer port loadout to share between machines too, and can be expanded to support as many computers as you’ve got space and patience for.

This does however assume all machines involved can handle outputting a display signal via Thunderbolt or USB C. Not too much of an issue with laptops but it’s still unusual for desktop PCs to have their GPUs hooked up to support TB/USB alt modes.

[0]: https://www.amazon.com/dp/B08XYZFM7D

usrusr
0 replies
5h50m

I even got TB4 signal through one of those USB-C "magnetic" adapters [0], I figured that this would shift wear from repeated plugging from the expensive device to a cheap adapter.

Super annoying when you accidentally disconnect and then the entire device tree has to reboot, but on the hub side, accidental disconnect might be much less of a problem (I use it at the laptop side, to dock with different screen setups)

[0] like this, https://www.amazon.com/dp/B0BV7BPVCL/ but ordered from the Chinese site

zrail
0 replies
5h48m

I have a compromise setup but it seems to work ok. Two MacBooks, one pro, both M1.

One is plugged into a TS3+. The other is plugged into a USB-C dock to get Ethernet and a USB-A input, but I don't use the video out. Instead, I run a Thunderbolt to DP cable from a second TB port to the KVM switch.

I use this KVM ordered on Amazon: Cable Matters USB 3.0 KVM Switch DisplayPort 1.4 for 2 Computers with 8K@60Hz

Pros: preserves 5K@60Hz for both machines, switches keyboard, mouse, and a webcam just fine.

Cons: no hot key switching, another remote to lose, no EDID emulation so the computers fall asleep when they're not active, switching takes a bit. Sometimes a machine doesn't wake up when I switch back to it so I have to fiddle with cables, but that's been pretty rare.

wombat-man
0 replies
5h44m

I share a mouse and keyboard between pc and mac with a usb switcher.

Two monitors. Both the mac and pc are connected to each monitor. I just switch inputs as needed.

It’s not as good as one button press but heck i can monitor something in both systems if I want

vladvasiliu
0 replies
7h5m

I know it's suboptimal, but can't you do the split on the macbook? The TB port should output pure DP, so you plug that on the DP-in on the KVM. You plug a second USB-only cable that goes to the KVM USB in.

rewgs
0 replies
55m

I want to share keyboard, mouse and monitor between a PC and a MacBook. A KVM with DP+USB on one side and Thunderbolt on the other doesn’t seem to exist.

It does if you use the built-in KVM in a recent Dell Ultrasharp display, and change Thunderbolt to USB-C.

My setup is a MacBook Air plugged into the USB-C port, a Windows PC plugged into the Displayport/USB port. Mouse and keyboard are plugged into the display.

I switch inputs via a StreamDeck. The StreamDeck just sends a key command; on macOS, BetterDisplay handles input switching, and on Windows, the Dell Display Manager app does the job.

Switching is a touch slower than I'd like, but beyond that, it's flawless.

pzmarzly
0 replies
6h9m

I'm in the same boat as you. After trying and returning a few KVMs, I found a decent USB-only KVM switch [0] that works with 4K HDR + PD devices (I think it just electronically connects and disconnects cables), it works amazingly with switching between Macs, but my PC GPU doesn't have USB output, just DP. I have bought a Thunderbolt PCI-E card (ASUS ThunderboltEX 4), it worked, but only turned on once Windows has fully booted, so I returned it too. I'm considering buying an USB-C signal muxer [1] but they are a bit too expensive for my liking. I guess there isn't enough market to produce them and sell them at reasonable price - most people, including myself, just accept having to switch video input separately from USB KVM.

[0] https://www.amazon.co.uk/dp/B0BN5D2NXX

[1] https://www.amazon.co.uk/dp/B0732W9DG8

me_jumper
0 replies
5h59m
fexatious
0 replies
2h58m

I share two monitors and audio equipment between a desktop and a windows laptop (dell XPS) using a "dumb kvm" that wrangles a few USB outputs and two DisplayPort inputs. the laptop only has USB-C output so it connects to a fancy thunderbolt dock borrowed from a friend which then goes to the KVM. I have a third monitor only connected to the desktop with a laptop stand in front of it for a third screen

It takes a couple seconds to switch but otherwise works flawlessly unlike my previous solution of shitty dongles, switching dual input monitors, and moving a usb hub input cable between machines. I also considered rebuilding the desktop to have a thunderbolt output and buying a thunderbolt switching KVM but I couldnt make it work

desktop - kvm - fancy dock - laptop Full diagram: https://imgur.com/a/ah54fjd

conwaytwitty
0 replies
5h4m

If you want a proper kvm, see the offering from level1techs/wendell (not affiliated, just a satisfied customer) at https://www.store.level1techs.com/products/hardware

I used one with 4x dual dp switching at home to run desktop with linux, pcie passthrough gaming vm on same machine and my work laptop via a dell thunderbolt dock connected to it.

Works extremely well, with modern features tested for (gsync, high refresh etc etc).

edit: one thing to note is that you need really good quality cables, so don't cheap out

rkangel
0 replies
4h42m

The best setup I've found is what I lucked into at work. It's a Benq monitor (32", 4k) that does the KVM itself. There's a couple of Displayport inputs, each if which has a couple of USBs with it, as well as a USB C which is both peripheral and display input (and decent power output). Then there's a little pick on the desk for switching.

The nice thing is that it continually presents a monitor to all the inputs even when they're not being displayed. Means you don't get the flickering as Windows sorts itself out and so a much faster and more seamless switch.

1f60c
14 replies
6h59m

Ever tried to move that YT video slider to a specific position but your mouse moves too jumpy and suddenly you are moving your hand super-carefully like you're 5 and playing "Operation" all over again?

On YouTube specifically, you can scrub through a video frame-by-frame using the , (comma) and . (period) keys, no custom hardware required. :-)

acjohnson55
5 replies
4h36m

I wish there was a solution for Android. Sliders for fine grained selections are horrible in touch interfaces.

layer8
1 replies
4h24m

Same on iOS.

benjijay
0 replies
2h53m

At least in Android you can pull the slider up for finer control, though every now and then they tweak how well this works so YMMV

AlexErrant
1 replies
3h42m

"fine grained" is relative, but you can go forwards/backwards 10 seconds in YouTube Android by doubletapping to the left/right of center on a video. If it's paused, doubletap to the left/right of the play button. It should also work on iOS, but I don't have an iPhone so can't confirm.

https://www.majorgeeks.com/content/page/youtube_double_tap.h...

codetrotter
0 replies
3h8m

I use iOS and can confirm that double tap on left or right side works to jump forward backward there too. I often use it when I watch a video and I miss what was said so I jump back a bit and watch again.

benjijay
0 replies
2h54m

You can pull the slider up for finer control, though every now and then they tweak how well this works so YMMV

noman-land
3 replies
6h40m

Anything between 30 seconds and 1 frame is impossible.

dave8088
2 replies
6h13m

The J and L keys will skip back and forth 10 seconds.

s4i
1 replies
5h5m

And left and right 5 secs.

sixothree
0 replies
5h2m

Control left and right for chapters.

Brajeshwar
2 replies
6h18m

That's nice. Btw, I'm curious, what kinda mouse do you guys use that makes you hold your breath while you scroll? I believe mice these days are super precise and works pretty well.

mikelevins
0 replies
1h50m

The mouse ain't the problem.

Once I was fast and precise, with sharp close vision. Now I'm not.

Enjoy your capabilities while you have them. Decline awaits us all.

Defletter
0 replies
5h48m

Because it's not necessarily the mouse, but us :P

hrvach
0 replies
6h25m

Wow, did not know that. TIL. Thank you!

jbverschoor
9 replies
5h21m

Good to note that it doesn't require client software to detect edges.

To get the mouse cursor to magically jump across, the mouse hid report descriptor was changed to use absolute coordinates and then the mouse reports (that still come in relative movements) accumulate internally, keeping the accurate tally on the position.

So it works like synergykm / barrier, without clipboard features and without client software.

Very nice.

tapland
7 replies
4h33m

Very nice to not require the computers to connect over the network.

tiku
6 replies
3h32m

This was a concern for me, that is why i've used Synergy over VPN and it worked quite well. It also works on networks where you can't reach the other pc's that way.

colordrops
2 replies
3h6m

I initially used synergy at work between two computers and a coworker teased me about the security implications, so I found it very little effort to pipe over an SSH tunnel

jbverschoor
0 replies
21m

Barrier has built-in encryption

abustamam
0 replies
1h37m

Can you share some info about that? How is it different from synergy business/enterprise where it encrypts your data? (aside from owning the encryption)

fragmede
1 replies
1h39m

tailscale makes the VPN easy these days.

azinman2
0 replies
1h7m

I also like zerotier

jbverschoor
0 replies
22m

You should check out https://pikvm.org/

toddmorey
0 replies
2h4m

Yes this is so clever and beautiful. Projects like these are my favorite thing to discover on HN.

nulld3v
8 replies
4h41m

I have a similar project inspired by another similar project (https://github.com/jfedor2/screen-hopper).

My own version of this consists of two programs.

One program runs on a Linux desktop and listens to input events from the Linux input subsystem (evdev). When you press a specific key, it will start consuming all events and sending them over USB serial to a RPI Pico. Pressing the key again will toggle back into passive listening mode.

The RPI Pico is programmed to receive Linux evdev events over serial, translate them into USB HID events and send them to another Windows PC.

The end result is a KM switch that switches instantly between a Linux PC and a PC running an OS of your choice.

Epic wiring photo: https://ibb.co/m0zhzgz. I used another Pico as a USB serial adapter.

As a hardware noob, needing only 2 wires was a huge relief and I think this is a great starter project for other hardware noobs.

Both programs were < 100 LOC. There are tons of Rust crates and python packages to listen to Linux evdev. The program on the Pico was quite simple too, basically just a loop with a big switch statement and there are Rust crates to send USB HID events. You can use COBS to send stuff over serial without worrying about framing.

Ultimately I never ended up open sourcing it because of some USB serial bugs (it would not reconnect properly to the Linux desktop after getting disconnected). Not sure if it was because of Linux or the Pico. I still use it, the bugs aren't a problem because I never disconnect the wires.

I also specifically left out the absolute mouse feature since I play a lot of FPS games and it wouldn't work with those. I have the switch key bound to a button on the side of my mouse anyway so I can switch systems without even touching my keyboard.

hrvach
4 replies
4h17m

That's an awesome idea, man. I wish I thought of that.

I learned about about that screen hopper project only yesterday, and it just confirmed my theory - whatever I try to do, somebody smarter than me already made, only better, smoother running and with nicer features :)

I play no games whatsoever so absolute coords would be perfectly fine, but one of the items on the to-do list is to make it configurable.

nulld3v
1 replies
3h26m

IMO the hardest part of open source is documentation and packaging so hats off to people like you who take that final step from tinkerer's project to open source! Also props to you for the galvanic isolation and actually designing a circuit lol.

I'm sure there's even more keyboard/mouse switching projects out there, there's just no good acronym or search query to find them. You could search for "KVM" but it's just dominated by PiKVM. We should really standardize on something for the SEO.

grepfru_it
0 replies
3h4m

Your project is practically an example for Teensy boards. I made this exact gadget 10 years ago :)

Ultimately my friend was explaining his 'mouse jiggler' vbscript and I thought 'how can I make this a hardware version' this led to a design and once you have a design it is easy to query google for design hints at the component level "usb hid microcontroller" "usb passthrough [teensy|arduino]" "usb init host controller [teensy|arduino]" "mouse path [teensy|arduino]" etc etc

drakenot
1 replies
57m

I’m trying to grok the absolute coordinate issue.

Does this mean your solution would break if someone was playing a FPS/game?

And is the solution to use relative coordinates but lose the auto transition feature? Meaning that you would have to manually switch?

shhsshs
0 replies
10m

Many FPS games move the camera by listening to relative mouse movements and moving your camera a corresponding amount, while keeping your cursor hidden and in the center of the screen. Absolute movements cause different issues depending on the particular game.

I am not familiar with HID but I assume there is a way for the computer to provide feedback to the input device about the cursor’s current position. If that’s correct, it could probably be done with relative movements just fine.

resoluteteeth
0 replies
2h16m

I'm sure people would be interested in seeing it even if it still has bugs

fragmede
0 replies
1h40m

Ultimately I never ended up open sourcing it because of some USB serial bugs

Shouldn't that be a reason to open source it? Nerdsnipe someone else into figuring out the sublety that's causing the bug!

drakenot
0 replies
59m

Would you be willing to throw it into a repo with a warning that it is user-beware with no support?

fevangelou
8 replies
6h58m

Seriously, if any VC is reading this, get this man some funding to make it a real project. Even at double or triple what it costs, it's still cheaper than any other commercial competitor.

xbmcuser
2 replies
6h21m

If it gets really popular here on hacker news won't be long before chinese devices based on it start appearing. Or if someone is willing to invest $10-20k they could have devices ready to sell in less than 2-3 weeks.

lovelyviking
0 replies
3h8m

Or if someone is willing to invest $10-20k they could have devices ready to sell in less than 2-3 weeks.

Can you elaborate on this for someone unfamiliar with production? How one come up with the number and such time estimation?

jbverschoor
0 replies
4h41m

With built-in networking so they can send your keylogs ;-)

ipsum2
2 replies
6h57m

Not every cool project needs to be a startup.

jamesholden
1 replies
6h50m

This. So much this. It's also really cool as a 'niche' project, and felt even approachable to someone like me who hasn't ever done more soldering than his first PS1 and a modchip.

fevangelou
0 replies
1h54m

I read some months ago that tinypilotkvm.com is doing JUST fine.

So yeah, sometimes niche markets can be profitable. And it doesn't have to be millions of dollars in VC money obviously to be invested.

layer8
0 replies
4h10m

Better make a Kickstarter or similar out of it. Don’t tie yourself to VC money if you can help it.

joshchaney
0 replies
3h33m
sheepscreek
7 replies
2h4m

I’ve been using a software solution for this for over a decade. It’s called Synergy (https://symless.com/synergy) and it is fast - switches instantly over wifi and also works across Windows/Mac/Linux.

samstave
3 replies
1h41m

Cant believe I am only learning about this now. Darn - I've needed this for over a decade.

Also, havent heard Full Sail in a really long time... Had a friend from growing up that went there and became famous...

THanks for the link - Ill be installing this around my place today :-)

dsr_
2 replies
1h16m

https://github.com/debauchee/barrier is the still-open fork.

hijinks
1 replies
57m

barrier is basically a dead project now. The active members of the project forked it and are going to release when ready but

https://github.com/input-leap/input-leap

Keep an eye on that for anything new

apitman
0 replies
10m

How much ongoing development is needed for something like this? I've been using synergy/barrier for years and the features I need have changed barely if at all during that time. Seems like a prime candidate for "finished" software.

ortusdux
0 replies
17m

A few months ago my mouse stopped working on my 2nd computer. It took me a few minutes to fix because I just plain forgot I was running Synergy. I checked, and my setup had been working without issue for 4-5 years. Definitely near the top of my list for valuable paid software.

jevogel
0 replies
8m

I tried to use this for a while but it didn't work well when using different VPNs on different computers. So, I bought a commercial device similar to the DIY one here and it works amazingly well. It doesn't require you to log in to the computers first and you can switch by moving across screen edges or with a series of keystrokes. You can also switch the attached USB devices independently of the keyboard and mouse.

The product is sometimes called a boundless, borderless, or roaming KM switch.

https://www.cdw.com/product/siig-4-port-roaming-km-switch-wi...

AtlasBarfed
0 replies
8m

With VR headsets and increasing 8k TV affordability, screen real estate is really getting big.

Technies almost always have a laptop, phone, and home desktop up at once, often have some media/fileshare, and then there are VMs to further the complexity.

Here's what I've been wanting for years: a big ass 8k wraparound monitor, and it has clickable widgets in the desktop to turn on the computer/VM and activate the display feed into some part of the desktop.

There's a primary desktop area, and that area is surrounded by "neutral zones/buffer zones where if you take the mouse into that area and click on it, it would swap the "primary" area to that machine and place the former machine's display into one of the peripheral areas of the large display, or secondary monitors.

With "cores to spare" in modern Moore's law scaling, I should be able to have several OSes seamlessly running at once, not the virtualbox stuff or other clunkiness, a much more seamless experience. There's a lot of hardware/CPU features to support it, but of course the OS vendors/distros have no prioritization to do something like that. It's also a fundamental failing of IoT.

We are all moving towards a world where we have a dozen decent-class computing devices (Multicore multiGhz phone, 2x that for a tablet, 2x that for a laptop, and 2x that for a desktop) even not counting IoT, media, etc.

We need a truly distributed OS that can handle this stuff. Windows/Android/iOS/OSX won't do it, they are in the walled garden business we need Linux to do it. The cloud projects, k8s / etc wanted a "datacenter OS" but basically failed.

shermantanktop
5 replies
2h52m

This is great, but why use raspberry pi? Seems like the same functionality would be easier and more robust using an embedded-type system like Arduino. Teensy boards in particular can act as USB hosts.

aappleby
1 replies
2h50m

It uses a Pi Pico, not the Linux SBC. Arduino-tier.

shermantanktop
0 replies
2h48m

Ah! Didn’t catch that, thanks.

wjdp
0 replies
2h43m

These are Raspberry Pi Picos, they are embedded type devices and not the usual Pis you're used to. The keyboard I'm using right now uses the same chip (RP2040) as the Pico, runs QMK and seems to be more performant (flashes faster anyway) than the normal microcontrollers you tend to get in plancks and the like.

phreack
0 replies
2h44m

Most times, the answer to these types of questions on hobby projects is that the maker either knew more about Pies than Arduinos, or simply had a Pi lying around and not an Arduino in their home when inspiration struck, heh.

I've certainly been guilty of doing something "a worse way" simply because it's what I first thought of and was available to me, and you gotta strike while the mental iron's hot.

hrvach
0 replies
2h47m

It's not a full Raspberry Pi, but their RP2040 microcontroller based board. Teensy boards are awesome but they are kind of pricey. This one is 4-5$, it's in stock everywhere, and what's usually the most important reason for making such decisions - I had two lying around from a previous project :-)

Tigress8780
5 replies
7h3m

I recently had the idea of making similar hardware with ESP32 (some of them has USB hardware). You may lose mouse acceleration, but many do not like this to begin with, so it's fine.

Does absolute mouse work correctly when two systems have very different (total) resolution? For example, one is a laptop with a single screen, and another one is a desktop with three screens.

jalk
3 replies
6h32m

How does absolute mouse work? The mouse hw just reports delta x/y and has no idea how the corners of your screen map to your desk surface. So it sounds like special hw. or very frequent recalibration of “corners” after moving mouse when machine is off or lifting+moving (which would essentially be what would happen when using it on machine 2)

DannyBee
2 replies
4h37m

It is not putting your mouse itself in absolute mode (only graphics tablets really operate in absolute mouse mode). It's just outputting absolute mode reports to the host.

Absolute mouse HID report has a logical/physical min/max, not just delta. Regardless of size of screen, min/max correspond to the boundaries in absolute mode.

So it's just keeping track internally of the incremental relative accumulation of your mouse as you move it, and i assume, when you hit the min/max, swapping screens.

I assume it's reporting a high enough min/max resolution to make this not happen crappily.

The polling rate on mice is usually only 125hz (8ms), so it has plenty of time to handle the input.

Even "gaming" mice are usually only 1000hz (1ms).

I would guess, looking at it, that it takes a few microseconds to handle the mouse moves, max.

lovelyviking
1 replies
2h56m

As I understand GPIO speed is limited and below usb 2.0 speed if I am not mistaken. So what is the maximum speed of this setup? How ‘gaming” gaming mouse can be?

gruturo
0 replies
1h19m

From a quick google search (to make sure I'm not just stating my memories, but actual facts) the RP2040 can toggle a GPIO at about 66MHz (via its PIOs. Otherwise a bit slower, and using more CPU). USB 1 is 1.5 or 12Mbps, so you should have no issues even if you bit bang it.

Despite the USB protocol overhead, it is plenty even for a gaming mouse. Pretty sure there's no point polling it at above 1 kilohertz or so.

DannyBee
0 replies
4h35m

Absolute mouse "works" in any situation. You are responsible for reporting the physical and logical min/max values for the mouse. The host translates these into screen coordinates.

So if you report the max x/y as 32767, and the current x/y as 32767, the host will translate it to the corner, regardless of size of screen.

vaidhy
3 replies
37m

Where can you get these parts in US? I can probably order the pico, but others seems hard to find.

(or is the answer AliExpress)?

wrigby
1 replies
26m

For the electrical components, Digi-Key[1] and Mouser are the two go-to’s. I didn’t read 100% of everything, but unless he’s selling the PCB’s you’ll have to get them fabricated from the Gerber files in the repo. JLC is the go-to for this - expect to pay $5-$10 for a single-sided design like this, and you’ll probably get free shipping if it’s your first order.

1: ADuM1201 - https://www.digikey.com/en/products/base-product/analog-devi...

20after4
0 replies
4m

It still blows my mind that I can order a few custom boards from JLC and have them in < 1 week for < $25 with international shipping included.

hrvach
0 replies
21m

I believe you should have no difficulties finding these in the US - try Newark, Mouser, DigiKey, Arrow.

rplnt
3 replies
4h44m

Just responding to the clunky and slow switching that is available. I have this wireless DELL mouse+keyboard set that switches quite easily and fast. Supports up to three devices (dongle + 2x BT). Dedicated key for tge switch, wirelss is instant, BT takes roughly 2 seconds.

I can't recommend it though, as the mouse scroll wheel broke pretty quickly, and it's apparently a common problem. Can't "warranty it" individually. I do like the keyboard so far.

nirav72
2 replies
4h33m

Some dell monitors also allow switching video input via keyboard + mouse using the Dell Display Manager utility. You can set custom hotkeys for each input. I have a dell monitor as my daily driver and its my central monitor in a multi display setup simply because of the display input switching capability. Beats having to buy a expensive DisplayPort KVM.

hrvach
1 replies
4h12m

That's pretty interesting, how long does the switch take?

nirav72
0 replies
2h33m

Its about 2 seconds. Although, there is slightly longer delay when switching from a dell laptop connected to the monitor's HDMI input than the PC connected to the displayport input. I suspect it has something to do with the dell laptop going through a thunderbolt4 dock and outputting via HDMI.

mmanfrin
3 replies
1h24m

What I really need is this + monitor input switching. I want to use both my monitors with both computers and just be able to hit a single button to swap everything.

teshigahara
0 replies
1h19m

Many KVM switches do this, just search Amazon for KVM switch + HDMI/Display Port, but they're often not great in my experience. My last one only lasted a couple of years and would sometimes fail to pick up my monitor.

silicate
0 replies
1h23m

My m32u monitor has a built in kvm switch and I switch between my Mac and pc with a button push. Monitor/keyboard/mouse and usb speakers

jwiz
0 replies
1h14m

https://github.com/haimgel/display-switch might be a piece of what you need to get this working.

deltaburnt
3 replies
1h50m

After going down the hellish rabbit hole of KVM and thunderbolt dock shopping, I started to fantasize about doing a project like this. So many horror stories of cheap electronics frying your ports, the switch adding input delays, etc. It's not that I didn't want to shell out the money, but it seemed like all the recommended solutions were either ancient (still had VGA connections) or were enterprise grade (close to $1000). I would have settled for a little robot arm that just physically unplugs one USB cable and plugs in another.

Essentially I found that the easiest way to swap between my computers is to physically disconnect a thunderbolt cable from one and plug it into another. As far as I can tell there's no such thing as a thunderbolt switch, so this is the local minima I'm stuck in until I try and make my own solution.

shepherdjerred
0 replies
1h46m

That's what I do too. Thunderbolt is excellent, but it would be nice to not need to physically swap cables.

ravetcofx
0 replies
1h44m

Thunderbolt 3/4 Switch for about $400 Canadian https://www.amazon.ca/Thunderbolt-Peripheral-Charging-Suppor...

abustamam
0 replies
1h40m

I use a software called Synergy.

https://symless.com/synergy

I have one keyboard and mouse connected to one "host" machine, and two machines connected as clients.

Sometimes if the host machine bogs a bit (like running a build or something) then the clients will have some latency but I've used this setup for gaming and work for two years and it's been pretty good.

My only complaint (about my personal setup, not the software) is that one machine has absolutely no peripherals attached to it aside from a monitor, so if I need to update the software, I need to connect a keyboard and mouse in order to do so.

Again, an issue with my setup and a caveat of using software as opposed to hardware.

LoganDark
3 replies
7h6m

Level1Techs does the same thing for DisplayPort if you want fast monitor switching. Just be prepared for the price: https://www.store.level1techs.com/products/p/14-kvm-switch-d...

layer8
2 replies
4h7m

This doesn’t seem to do the mouse position-triggered switching?

joshchaney
1 replies
3h36m

Not sure why they posted that when Level1Techs does actually have USB KM with mouse roaming. https://www.store.level1techs.com/products/p/4-port-km-switc...

layer8
0 replies
2h1m

GP was indicating monitor switching, which your link doesn’t do. The equivalent of TFA for monitor switching would be full KVM switching when the mouse crosses the outer screen edge.

archerx
2 replies
5h28m

Why not use Remote Desktop? I work on multiple computers on one laptop and if your network is fast enough it’s silky smooth. For linux I use VNC and it works well but isn’t as nice as RDP.

vidarh
0 replies
4h2m

Because that doesn't do the same thing. The point is to have two monitors connected to separate machines, and use the same mouse and keyboard to control both of them.

smokel
0 replies
4h8m

In many cases remote desktop is a great solution. However, a hardware based KVM can be preferable for several reasons.

Security: remote desktop requires the machines to be on the same network.

Performance and compatibility: hardware accelerated rendering often does not play nice with remote desktop.

zschuessler
1 replies
5h4m

One of the coolest hack projects I've seen in some time. Looking at the schematics took me back to my electronics technology class, learning the value of heat syncs and accidentally setting amps on fire :,)

Having an accompanying explainer article or video is something I'd pay/donate for, just out of sheer curiosity of the work involved.

hrvach
0 replies
4h5m

Thank you so much for the kind words. I'm hardly an expert but I will try to write something when I find some extra cycles. It was done to fix a problem I was seeing on a daily basis, but then I figured out it might help others (also gave me an excuse to practice kicad and 3d modelling).

vs4vijay
1 replies
4h9m

On Windows, you have the option of using a tool named Mouse Without Borders, which was developed by Microsoft Garage and is now part of Windows PowerToys.

Links:

  - https://www.microsoft.com/en-us/garage/profiles/mouse-without-borders  
  - https://github.com/microsoft/PowerToys

riedel
0 replies
2h4m

Barrier is a Cross-Plattform, open source Synergy fork that works quite well without any additional HW too [0]

Edit: I just noticed it is unmaintained (never bothered actually because it works. Input leap is the continuation

[0] https://github.com/debauchee/barrier [1] https://github.com/input-leap/input-leap

treprinum
1 replies
2h32m

I use a cheap 4-way USB port 2.0 sharing switch (for printers) that can be found on eBay for $10. I even used two chained together with another 2-way switch when I had 12 computers around me. You just press a single button corresponding to a single computer and all your keyboard/mouse events are going there.

nkotov
0 replies
2h26m

Similar setup, I have a switcher that has my mouse/keyboard/microphone connected. One tap, switch between my Macbook and my Windows Desktop.

pcunite
1 replies
2h46m

I literally installed Mouse without Borders this week! But hardware is better for secure login screens and the like. So, I still have a KVM switch. One thing I learned is that I don't want seamless mouse between two monitors.

So, I setup "holding" down CTRL which allows the mouse to pass. Its just a nice way to stop accidents and for when I want auto window sizing at borders. This project looks great if it can support holding down CTRL to allow the mouse to pass into the other screen.

I also love clipboard copy. That is kinda a biggie some days.

hrvach
0 replies
1h34m

This is a really great idea! If you don't mind, I'll put this on a list of to-do features.

I was testing a "nudge" feature, where you need to move a mouse a little faster towards the other screen to have it jump across. It was not bad, even though I've found it to be most intuitive when the cursor simply moves freely like it was one big desktop.

Clipboard would be awesome to have, but considering privacy, security and data protection concerns, it's just too risky.

nirav72
1 replies
4h48m

This been one of my biggest frustrations - I also use a USB 3.0 switch to toggle mouse & keyboard input between two PCs. I'll be on a teams call meeting where I don't have a lot to say and then someone mentions my name or messages me. I'm suddenly fiddling around looking to find the button to switch inputs back to the PC running teams. I thought about wiring up a ESP32 or Rpi Pico W with couple of optoisolators to the button pins on the USB switch. Then expose a http endpoint to simply toggle inputs between two machines via autohotkey script + keyboard shortcut. Only problem was that I couldn't come up with a way to determine which input is active. So gave up on the idea. But I like this solution.

mouth
0 replies
1h37m

Have you looked into a headset compatible with Teams that has a mute button? My work provided a Logitech branded headset that has volume, hang up, and mute buttons on the cord, which makes it much easier to unmute myself while multitasking.

Waterluvian
1 replies
3h55m

How do modern KVMs address OSes thinking an HDMI or USB device is unplugged when switching? I’ve never found a solution that actually works because of this issue.

It seems this only addresses KB/Mouse by keeping them enumerated on the host PCs at all times and just sending no inputs to one. So that feels fairly solved. But what about monitors?

green-salt
0 replies
28m

I've found this really depends on the monitor. My Samsung gaming monitor hates this, while the plain Dell ones I have will switch around decently.

IshKebab
1 replies
6h45m

All I wanted was a way to use a keyboard shortcut to quickly switch outputs, paired with the ability to do the same by magically moving the mouse pointer between monitors.

Most KVM switches have a keyboard shortcut (mine is scroll lock, scroll lock, 1/2). Mine also supports the mouse based switching but it's unusable because to work it needs to emulate a mouse with zero acceleration. Also this doesn't switch video.

I've had the same idea tbh but the inability to switch video and the software complexity put me off. A KVM switch is better (except the cost).

damagednoob
0 replies
4h45m

I have a KVM switch[1] and it's double middle mouse click to switch outputs. Works well with Mac, Linux or Windows.

[1]: https://www.amazon.co.uk/dp/B08GBXTW2Q?ref=ppx_pop_mob_ap_sh...

woodpanel
0 replies
3h16m

very nice. For apple-only users there is a built-in option to connect your macs in the same manner called "universal control".

victorbjorklund
0 replies
5h8m

Wow. This looks just like what I been wanting for a while.

ulrischa
0 replies
2h48m

Shut up and take my money :) Fun aside: this is awesome. I would like to buy one preassembled

tiku
0 replies
3h33m

I've been using Synergy with my mac and windows desktop, and in the past I've used Input Director between two windows machines. It was good enough to game on LAN parties.

tamimio
0 replies
2h14m

Here’s how I do it now, three machines two are linux and one is windows: I use Logetic MX master 3 mouse, it can connect to three devices via Bluetooth, if I need to switch from one to another, I click a button in bottom to switch it to the next one, and being wireless is very handy since one machine is far away from where I sit and it’s connected to a big screen.

sedivy94
0 replies
1h35m

I experienced a very unusual bug with a Tripp Lite KVM once because a feature like this was baked in.

peab
0 replies
2h50m

This is so cool, kudos to you for sharing

nemacol
0 replies
3h1m

This looks great. I have a work PC and personal PC on the same desk but cannot install anything on the work PC. Would be great to declutter my desk with this.

Unrelated - surprised JLCPCB does not have a way to share a link to a PCB so folks can buy a board without needing to upload the files themselves. Maybe I am missing it?

munro
0 replies
5h10m

Wow!! Very cool! I tried to use a KVM to switch from my personal macbook, work macbook, and gaming computer.... the hardware was awful, I had just ended up manually switching. The gaming computer had its own keyboard&mouse, so it was just switching the monitor (and there would be horrendous latency).

Anyway, I think this space has tons of low hanging fruit for improvement. And so many KVM products are insanely priced, and they're not even good.

Also how the ADuM1201 works is very cool!

moneywoes
0 replies
4h33m

anyway to have this work on a mac and android tablet?

lofaszvanitt
0 replies
23m

How the switch via screen edge works if it doesn't need any progs installed on your computer? Doesn't the absolute mouse coordinate space need two identical monitors? And how it figures out when you are at the edge of the screen?

leshokunin
0 replies
7h3m

The video in the Readme is well worth watching. I expected some kind of clicking to enable the kvm and switch devices. This is moving your mouse and keypresses across devices instantly. While I like Synergy, a hardware solution would work without much software and potentially much configuration.

lancetipton
0 replies
3h5m

This is awesome and it looks like the exact solution I've been looking for. That said, I'm way out of my depth when it comes to building this. What would it take to get a step by step tutorial on how to build this thing? I read through the readme, and there's some good info there, but a few things went over my head.

Never used a Pico board, only exp is with a Tensor board that came out a few years back.

Any further advice on where / how to get started with is would be appreciated?

Also great work, the transition looks super smooth.

kidsil
0 replies
2h58m

I had the same need and ended up using a USB Hub that required manual clicks to switch between devices. All software-based or network-based switches were a no-go in my case. I love the idea of a hardware-based switch that allows for seamless transitions between devices.

Who will pick up the gauntlet and allow those of us without a soldering iron to buy a ready-to-use box?

jnordwick
0 replies
5h9m

When I worked at Virtu we had all the desks on wheels, pull the plug and roll away. Even better than switching. We moved them around all the time.

giancarlostoro
0 replies
2h53m

I use a Nulea trackball and a Nulea keyboard. I bought two of the trackballs. The previous trackball I had, the scrollwheel was dying too often (for $60 it was kind of annoying) and the Logitech MX trackball, eventually the switch for clicking dies, and replacing it yourself is more than just a 2 minute task, not worth it for me).

I prefer just having two trackballs, especially since they don't move, they're very ergonomic. The keyboard is the style of a Microsoft Ergonomic Keyboard, but it supports multiple devices. The keys are exactly how I wanted them (flat), and its been a good keyboard, supports one USB dongle connection, and two bluetooth connections, which is what I wanted. I was surprised how good the keyboard is after passing on it on Amazon a few times, which led me to try their trackballs, and I was not disappointed with either purchase.

I prefer to just hard switch the keyboard, so I don't get confused as to which computer I'm going to be typing on, sometimes I switch computers to google something personal that I rather not type on a work machine.

fock
0 replies
5h43m

with all the people switching USB-devices collected here: I also have an USB-switch to handle work/private machines (as well as the odd usually headless VM).

Oddly, there is no delay on switching with Windows. Devices are registered instantly and I can type. Linux needs 1-2 seconds... and I just don't know why. Anyone has an idea what to tune?

fersarr
0 replies
3h24m

Very cool! Take my money :) In my case I would like to share mouse, keyboard and monitor. So, just switching between two laptops.

epakai
0 replies
35m

I've used a similar commercial implementation. They're sold as USB or KVM Synchronizer. Some will control 4 machines. The one I had was limited to 2x2 or 4x1 arrangements for the edge switching. Not ideal for a multi-monitor setup, but still pretty cool. I have future plans to combine it with an HDMI multi-viewer to setup a compact gaggle of machines.

They were quirky in their implementation, but it still felt cool to have it all done in a little USB switch device.

For my actual setup I still find barrier (forked as input-leap) excellent. I use Linux, Mac, and Windows machines without issue. I even play games with with my input going over the network this way.

dvektor
0 replies
3h44m

Wow this is awesome. I use a KVM switch currently and it takes a solid 2-3 seconds and for that reason I find myself usually just SSH'ing into the other computer and having a tmux session instead.

Excellent work.

dotwaffle
0 replies
4h12m

At first glance I thought this was going to be a reinvented Sun Ray!

docmars
0 replies
1h51m

This is really impressive. Interesting to see a no-fuss hardware-only solution out there for this! I never thought it was possible. Nice work!

deagle50
0 replies
1h24m

Omg I wanted to build exact this. Thank you!

davidthewatson
0 replies
1h29m

This is amazing!

I'm saying that as a long-time user of a desktop setup consisting of Lin-Mac-Win boxes arranged left-to-right for at least two decades. Polyglot is to programming languages as multi-platform is to hardware. Fortunately, that's gotten easier as system-on-a-chip or SoC designs have proliferated in the last few years.

My current setup consists of 2x $250 Ryzen SoC Mac-mini copies straight outta Shenzhen and an M1 MBP.

I only wish that the once resilient world of open source KVM solutions such as synergy had not devolved into a recursive nightmare of forks where getting a working multi-platform open source software KVM without cost is challenging. Sadly, my current setup uses a good 'ole KVM switch but the button pressing is distracting.

I look forward to trying something like this again one day. Thanks for sharing!

david422
0 replies
3h8m

I have a similar usage and need. I do have a uGreen USB hub that has a button on top that I use to swap between computers - but it does have a slight delay.

I also discovered logitechs k860 keyboard which has 3 buttons on the top for switching between computers. I use it with the USB receiver and a bluetooth laptop. No noticeable lag and works very well.

colordrops
0 replies
3h5m

I used to use Synergy for this until switching to Wayland, which isn't supported. Last time I checked there was a project called RKVM attempting to do the same thing for Wayland but it was very buggy at the time. I should check again to see if there has been any progress.

codetrotter
0 replies
7h45m

Love the intro of the readme.

Also, it may be niche but I had the same thought in the past about this way being the solution for slow switching. Awesome to see someone did all of the work already. Now I just need to find someone selling it on AliExpress so that I won’t even have to lift a finger to have one :D

camhenlin
0 replies
55m

Nice work! If DeskHop could be made to work with a Bluetooth mouse, it would be even better. FWIW I was looking for a similar solution recently. I've got a magic trackpad, keyboard, bluetooth mouse, and monitor. I'd like to swap between 2 computers somewhat easily.

adroitboss
0 replies
2h40m

This looks great! I need to look into it. For a little while I have used a combination of a KVM Switch and Mouse without Bordershttps://www.microsoft.com/en-us/download/details.aspx?id=354... to switch between my computer and the laptop I have on my desk. It would be great to have a local-only option. The application would need to copy the contents of my clipboard from one computer to the next, a feature I don't think I can live without.

NelsonMinar
0 replies
2h10m

This seems clever and useful enough to be turned into a manufactured product.