[HN Gopher] DeskHop - Fast Desktop Switching
       ___________________________________________________________________
        
       DeskHop - Fast Desktop Switching
        
       Author : rcarmo
       Score  : 909 points
       Date   : 2023-12-27 09:53 UTC (13 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | codetrotter wrote:
       | 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
        
       | michaelmior wrote:
       | 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
        
         | thedookmaster wrote:
         | https://github.com/debauchee/barrier is the free open source
         | version of this
        
         | figmert wrote:
         | 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
        
           | ddalex wrote:
           | Unfortunately there is no simple way of makeing this work on
           | a Chromebook
        
           | stavros wrote:
           | 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 wrote:
             | 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 wrote:
               | Oh good, thanks, I will!
        
           | loloquwowndueo wrote:
           | 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 wrote:
             | Didn't have any problems with X11 and various computers -
             | so maybe it really is Wayland-specific?
        
         | rzzzt wrote:
         | 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
        
         | smcleod wrote:
         | And its new version has been rewritten so that it's no longer a
         | native app but an Electron web app.
        
         | asmor wrote:
         | 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.
        
         | sixothree wrote:
         | 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 wrote:
           | 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 wrote:
             | 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.
        
             | jtriangle wrote:
             | Turn off clipboard sharing, use a config file, and barrier
             | works well on most systems.
             | 
             | Way too much BS to get it running though.
        
         | mmwelt wrote:
         | Any suggestions for Windows & Android (tablet)? All the
         | solutions seem to only work with desktop OSes.
        
         | smileybarry wrote:
         | 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.
        
         | worldsayshi wrote:
         | 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 wrote:
           | 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.
        
           | jtriangle wrote:
           | I use barrier across 4 monitors and three devices, works
           | fine.
           | 
           | Nowadays you have to look at the logs and search through a
           | pile of github issues to find the right solution to make it
           | work, but once it's up it's pretty trouble free.
           | 
           | Only real pain point is clipboard sharing, which works for
           | small clipboards, but, copy too much text and it takes
           | forever to switch.
        
       | mariopt wrote:
       | 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 wrote:
         | > 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
        
           | vladvasiliu wrote:
           | 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.
        
           | jwells89 wrote:
           | 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 wrote:
             | 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
        
           | pzmarzly wrote:
           | 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 wrote:
           | how about these?
           | 
           | Anker 553 USB-C Docking Station (KVM Switch): -
           | https://www.anker.com/products/83k2?variant=42726922125462 -
           | https://www.amazon.com/Anker-Docking-Station-Desktop-
           | Display...
           | 
           | iDock C10 KVM Switch Docking Station -
           | https://www.avaccess.com/products/idock-c10/
        
           | zrail wrote:
           | 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 wrote:
           | 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
        
           | nine_k wrote:
           | 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 wrote:
             | 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
        
           | conwaytwitty wrote:
           | 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
        
           | fexatious wrote:
           | 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
        
           | rewgs wrote:
           | > 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.
        
         | rkangel wrote:
         | 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.
        
           | jlundberg wrote:
           | Which benq model is this?
        
             | rkangel wrote:
             | Looks like it's the PD3205U (https://www.amazon.co.uk/BenQ-
             | PD3205U-Designer-Technology-Co...). Am not at work to
             | double check.
        
         | adra wrote:
         | I've been very happy with my tesmart dual DP 4 port KVM. The
         | only limitation I have is that it's only usb 2 host controller,
         | so a lot of higher speed devices like some webcams can't get
         | switched using it.
         | 
         | LAlso if you need Apple products in the mix, you have to use
         | two physical usb3 cables from the mac just to distinguish the
         | two display channels because apple hates MST for reasons
         | (another reason to hate their arbitrary bs).
        
       | LoganDark wrote:
       | 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 wrote:
         | This doesn't seem to do the mouse position-triggered switching?
        
           | joshchaney wrote:
           | 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 wrote:
             | 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.
        
           | LoganDark wrote:
           | I'm referring to the fact that it maintains an independent
           | connection to each monitor in order to facilitate fast
           | switching. Almost no other DP switches do this.
        
       | leshokunin wrote:
       | 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.
        
       | Tigress8780 wrote:
       | 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 wrote:
         | 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 wrote:
           | 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 wrote:
             | 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 wrote:
               | 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 wrote:
         | 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.
        
       | 1f60c wrote:
       | > 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. :-)
        
         | noman-land wrote:
         | Anything between 30 seconds and 1 frame is impossible.
        
           | dave8088 wrote:
           | The J and L keys will skip back and forth 10 seconds.
        
             | s4i wrote:
             | And left and right 5 secs.
        
               | sixothree wrote:
               | Control left and right for chapters.
        
               | dishsoap wrote:
               | I wonder when they added that, I remember wanting it and
               | it not existing when they first rolled out the chapters
               | feature around 2020.
        
         | hrvach wrote:
         | Wow, did not know that. TIL. Thank you!
        
         | Brajeshwar wrote:
         | 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.
        
           | Defletter wrote:
           | Because it's not necessarily the mouse, but us :P
        
           | mikelevins wrote:
           | 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.
        
         | acjohnson55 wrote:
         | I wish there was a solution for Android. Sliders for fine
         | grained selections are horrible in touch interfaces.
        
           | layer8 wrote:
           | Same on iOS.
        
             | benjijay wrote:
             | 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 wrote:
           | "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 wrote:
             | 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 wrote:
           | You can pull the slider up for finer control, though every
           | now and then they tweak how well this works so YMMV
        
       | fevangelou wrote:
       | 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.
        
         | ipsum2 wrote:
         | Not every cool project needs to be a startup.
        
           | jamesholden wrote:
           | 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 wrote:
             | 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.
        
         | xbmcuser wrote:
         | 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.
        
           | jbverschoor wrote:
           | With built-in networking so they can send your keylogs ;-)
        
           | lovelyviking wrote:
           | > 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?
        
         | layer8 wrote:
         | Better make a Kickstarter or similar out of it. Don't tie
         | yourself to VC money if you can help it.
        
         | joshchaney wrote:
         | One exists already.
         | https://www.store.level1techs.com/products/p/4-port-km-switc...
        
       | IshKebab wrote:
       | > 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 wrote:
         | 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...
        
       | fock wrote:
       | 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?
        
       | archerx wrote:
       | 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.
        
         | smokel wrote:
         | 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.
        
         | vidarh wrote:
         | 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.
        
       | jbverschoor wrote:
       | 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 wrote:
         | Very nice to not require the computers to connect over the
         | network.
        
           | tiku wrote:
           | 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 wrote:
             | 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
        
               | abustamam wrote:
               | 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)
        
               | jbverschoor wrote:
               | Barrier has built-in encryption
        
             | fragmede wrote:
             | tailscale makes the VPN easy these days.
        
               | azinman2 wrote:
               | I also like zerotier
        
               | chatmasta wrote:
               | I doubt the reason for avoiding connection is a technical
               | barrier but rather a security one. For example, I prefer
               | to keep my personal and work laptops completely
               | airgapped.
        
             | jbverschoor wrote:
             | You should check out https://pikvm.org/
        
         | toddmorey wrote:
         | Yes this is so clever and beautiful. Projects like these are my
         | favorite thing to discover on HN.
        
       | munro wrote:
       | 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!
        
       | jnordwick wrote:
       | 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.
        
       | victorbjorklund wrote:
       | Wow. This looks just like what I been wanting for a while.
        
       | zschuessler wrote:
       | 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 wrote:
         | 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).
        
       | nirav72 wrote:
       | 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 wrote:
         | 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.
        
       | rplnt wrote:
       | 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 wrote:
         | 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 wrote:
           | That's pretty interesting, how long does the switch take?
        
             | nirav72 wrote:
             | 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.
        
       | nulld3v wrote:
       | 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 wrote:
         | 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 wrote:
           | 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 wrote:
             | 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 wrote:
           | 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 wrote:
             | 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.
        
             | hrvach wrote:
             | I'm not very versed in gaming, so have very little
             | knowledge about what games want. It should be possible to
             | implement a relative mode too and some way to switch
             | between the modes so when working use absolute, when
             | playing use relative.
        
         | resoluteteeth wrote:
         | I'm sure people would be interested in seeing it even if it
         | still has bugs
        
         | fragmede wrote:
         | > 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 wrote:
         | Would you be willing to throw it into a repo with a warning
         | that it is user-beware with no support?
        
         | nulld3v wrote:
         | A bunch of folks have suggested I open source this regardless
         | of the bugs and I think their arguments have merit!
         | 
         | Here's the source, provided as is: https://github.com/null-
         | dev/picokvm
        
       | moneywoes wrote:
       | anyway to have this work on a mac and android tablet?
        
       | dotwaffle wrote:
       | At first glance I thought this was going to be a reinvented Sun
       | Ray!
        
       | vs4vijay wrote:
       | 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 wrote:
         | 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
        
         | go_prodev wrote:
         | Glad to see it mentioned here. I used it a few years ago and it
         | worked really well.
         | 
         | It makes it especially easy to drag and drop file copies across
         | computers.
        
       | Waterluvian wrote:
       | 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 wrote:
         | 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.
        
       | dvektor wrote:
       | 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.
        
       | tiku wrote:
       | 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.
        
       | fersarr wrote:
       | Very cool! Take my money :) In my case I would like to share
       | mouse, keyboard and monitor. So, just switching between two
       | laptops.
        
       | woodpanel wrote:
       | very nice. For apple-only users there is a built-in option to
       | connect your macs in the same manner called "universal control".
        
       | david422 wrote:
       | 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 wrote:
       | 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.
        
         | bryanlarsen wrote:
         | "lan-mouse" works for me on Wayland.
        
       | lancetipton wrote:
       | 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.
        
       | nemacol wrote:
       | 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?
        
       | kidsil wrote:
       | 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?
        
         | jevogel wrote:
         | Already exists.
         | 
         | https://www.cdw.com/product/siig-4-port-roaming-km-switch-wi...
        
       | giancarlostoro wrote:
       | 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.
        
       | shermantanktop wrote:
       | 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 wrote:
         | It uses a Pi Pico, not the Linux SBC. Arduino-tier.
        
           | shermantanktop wrote:
           | Ah! Didn't catch that, thanks.
        
         | hrvach wrote:
         | 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 :-)
        
         | phreack wrote:
         | 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.
        
         | wjdp wrote:
         | 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.
        
       | peab wrote:
       | This is so cool, kudos to you for sharing
        
       | ulrischa wrote:
       | Shut up and take my money :) Fun aside: this is awesome. I would
       | like to buy one preassembled
        
       | pcunite wrote:
       | 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 wrote:
         | 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.
        
       | adroitboss wrote:
       | 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.
        
       | treprinum wrote:
       | 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 wrote:
         | Similar setup, I have a switcher that has my
         | mouse/keyboard/microphone connected. One tap, switch between my
         | Macbook and my Windows Desktop.
        
       | tamimio wrote:
       | 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.
        
       | NelsonMinar wrote:
       | This seems clever and useful enough to be turned into a
       | manufactured product.
        
       | sheepscreek wrote:
       | 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 wrote:
         | 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_ wrote:
           | https://github.com/debauchee/barrier is the still-open fork.
        
             | hijinks wrote:
             | 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 wrote:
               | 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.
        
               | ryukafalz wrote:
               | Barrier doesn't support Wayland, which is a pretty big
               | missing piece at the moment for Linux users.
        
               | bryanlarsen wrote:
               | I use "lan-mouse" on Wayland.
        
         | ortusdux wrote:
         | 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.
        
         | AtlasBarfed wrote:
         | 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.
        
           | arghwhat wrote:
           | > 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.
           | 
           | No. The hardware features that allow running multiple OS's at
           | once _is_ what VirtualBox /QEMU/HyperV/Xen/etc. use, and
           | those feature require a privileged OS to manage it.
           | 
           | The hardware does not support having multiple OS's manage the
           | machine at once - even if they could be made to run, they'd
           | step on each other and make hardware crash as they all try to
           | configure it differently at the same time, and with them all
           | in ring 0 they'd be able to arbitrarily compromise each
           | other. Plus, you'd be annoyed that each of, say, 3 OS's could
           | only use 1/3rd of all resources - 16 cores and 64 GB of RAM
           | may seem like lot, but 5 cores and 21 GB of RAM does not.
           | 
           | It's a dumb idea. Just get a better OS, a better hypervisor,
           | better "fastboot to other OS" features (say, 1-5 seconds
           | "hibernate and resume other OS"), or another desktop.
        
           | sfilmeyer wrote:
           | >Techies almost always have a laptop, phone, and home desktop
           | up at once
           | 
           | What definition are you using here? I like tech and worked as
           | a software engineer (not working now), and I haven't owned a
           | desktop in over a decade. If we're talking "almost always", I
           | think these days I have 0 phones/laptops up most of the time
           | followed by 1 in pretty close second place, and even having 2
           | (let alone 3 or more) is uncommon for me.
        
         | jevogel wrote:
         | 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...
        
           | Nullabillity wrote:
           | The computers need to be able to reach each other, yes. You
           | should be able to do that by adding a route overriding the
           | VPN route (just like how any VPN client has to prevent the
           | traffic to the VPN server from going through the tunnel).
        
         | s0rce wrote:
         | Synergy is great, its widely used on complex lab equipment
         | where different parts are controlled by different PCs,
         | sometimes running different OSes.
        
           | geocrasher wrote:
           | My first use of Synergy was in the mid 2000's, using the same
           | KB/Mouse on a Windows XP machine with a Debian desktop box
           | next to it. Worked fabulously for a long time.
        
         | thallada wrote:
         | No one has mentioned ShareMouse yet?
         | (https://www.sharemouse.com/) In my experience it has worked
         | way better than Synergy. I switched after getting fed up with
         | the synergy developers not responding to various multi-year old
         | bugs that made the software unworkable for me (e.g.
         | https://github.com/symless/synergy-core/issues/5992).
         | 
         | The only downside is that you have to "renew maintenance" to
         | continue receiving updates to ShareMouse after a year. But I
         | haven't done that yet and it still works fine for me.
        
         | kentoss wrote:
         | Synergy, Barrier, and Input Leap are all pretty good software
         | solutions stemming from the same ancestor. The latter two are
         | free and open source. Synergy has a nice way of organizing the
         | boundaries between your machines.
         | 
         | I wish any solution had custom monitor interleaving. My
         | personal setup is such that the monitors are not set up
         | linearly, and each monitor can independently switch to each
         | machine. Specifying the boundaries on a per-monitor and per-
         | machine basis would be amazing, but it doesn't seem to exist in
         | software or hardware form.
         | 
         | I spoke to Synergy recently and they said it is on the road map
         | as a popular feature request. Hopefully soon!
        
         | fnordpiglet wrote:
         | Looks awesome, but sad they put TLS as a premium feature above
         | the basic for pay sku. Security should be default in everything
         | and for free. It's not a luxury, it's a table stakes bare
         | minimum thing. (That said I'll try it out and if it's good I'll
         | license the premium sku for the copy and paste feature)
        
         | synergy20 wrote:
         | I bought Synergy and ended up not using it shortly, nowadays I
         | use a cheap physical USB switch(about $20) that can work with 4
         | PCs sharing one set of keyboard and mouse, super robust for me,
         | and quick too.
        
           | trallnag wrote:
           | What about switching display input source?
        
       | docmars wrote:
       | 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!
        
       | deltaburnt wrote:
       | 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 wrote:
         | That's what I do too. Thunderbolt is excellent, but it would be
         | nice to not need to physically swap cables.
        
         | ravetcofx wrote:
         | Thunderbolt 3/4 Switch for about $400 Canadian
         | https://www.amazon.ca/Thunderbolt-Peripheral-Charging-Suppor...
        
         | abustamam wrote:
         | 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.
        
           | deltaburnt wrote:
           | This was indeed my first approach, but my employer disallows
           | the use of synergy between personal and corporate devices (I
           | could use it across two corporate devices though).
        
         | baumy wrote:
         | If you have a monitor that can serve as a USB hub (pretty easy
         | to find) and has a thunderbolt input (less easy to find but
         | there are options), you can hook multiple machines up to the
         | monitor and use `ddccontrol` to toggle the monitor's active
         | input. The devices hooked up to the monitor via USB can then
         | follow the monitor to any of the connected computers.
         | 
         | I have my mouse, keyboard, and webcam plugged into my monitor.
         | The monitor is connected to both my work laptop and personal
         | desktop. I wrote a script using `ddccontrol` that I have bound
         | to a hotkey on the laptop and desktop which toggles the active
         | input. Switching the display and USB peripherals back and forth
         | between the two machines is just a keyboard hotkey.
         | 
         | The commands look something like this: `ddccontrol -r 0x60 -w
         | 3855 dev:/dev/i2c-7 >/dev/null 2>&1'
         | 
         | With the exact arguments dependent on your particular hardware.
        
           | conqrr wrote:
           | Damn, I didn't know usb on monitor was a thing. This could
           | work for me if I get a new monitor since I use a single
           | display for multiple boxes. Maybe I could try Synergy too
           | with the ddccontrol command
        
       | sedivy94 wrote:
       | I experienced a very unusual bug with a Tripp Lite KVM once
       | because a feature like this was baked in.
        
       | davidthewatson wrote:
       | 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!
        
       | mmanfrin wrote:
       | 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.
        
         | silicate wrote:
         | 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
        
         | teshigahara wrote:
         | 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.
        
         | jwiz wrote:
         | https://github.com/haimgel/display-switch might be a piece of
         | what you need to get this working.
        
       | deagle50 wrote:
       | Omg I wanted to build exact this. Thank you!
        
       | camhenlin wrote:
       | 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.
        
       | vaidhy wrote:
       | 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 wrote:
         | 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 wrote:
           | 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 wrote:
         | I believe you should have no difficulties finding these in the
         | US - try Newark, Mouser, DigiKey, Arrow.
        
       | epakai wrote:
       | 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.
        
       | lofaszvanitt wrote:
       | 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?
        
       | conqrr wrote:
       | I use a single monitor, keyboard, mouse for both work and
       | personal and need to switch between these pain free. I haven't
       | come across a seamless solution as most of the software ones rely
       | on mulitiple displays. My current solution is 3 button press on
       | each device (monitor, keyboard, mouse) to switch.
        
         | scrapcode wrote:
         | What hardware do you use to split the keyboard and mouse? I
         | have the same situation but have different input devices for
         | each machine and just change monitor inputs as needed.
         | 
         | Also, is it possible for one device to keylog when the keyboard
         | is switched to the other?
        
           | conqrr wrote:
           | My Targus keyboard/mouse support multiple devices and have a
           | physical button to switch.
        
         | Sander3Utile wrote:
         | A kvm switch can reduce that down to 1 button press.
        
       | amelius wrote:
       | Another solution is to simply run a VNC server on one of the
       | desktops, and a VNC client on the desktop that has your keyboard
       | and mouse attached.
       | 
       | This is super flexible, as that computer can now be in another
       | room or building.
        
       | throwaway892238 wrote:
       | Meanwhile I'm over here wishing I could make my Mac switch
       | virtual desktops and windows quickly and seamlessly, but compared
       | to Linux and even Windows, it feels dog slow. There's also a
       | weird quirk of the AltTab app where sometimes you try to alt+tab
       | back to a previous window, and the previous window+desktop
       | appears, but the focus is actually still on the first window, so
       | keyboard shortcuts go to the wrong app. You have to not only
       | alt+tab, but then click on the window you just switched to, to
       | change focus. Kind of insane that this basic desktop
       | functionality doesn't work well on a $2,000+ machine.
        
       | LorenzoGood wrote:
       | I really like the idea of a hardware solution for a problem like
       | this, as opposed to a software solution.
        
       | gigel82 wrote:
       | I use Barrier[1] and even with full software integration it
       | sometimes gets things wrong (especially if you have a game or
       | something else doing mouse capture); I'd be surprised if this can
       | be solved entirely in hardware, but it sure looks amazing.
       | 
       | https://github.com/debauchee/barrier
        
       | aschla wrote:
       | I recently put something together similar to this, to switch
       | between my personal PopOS/Windows machine and my work Macbook
       | Pro.
       | 
       | I used one of these manual USB switchers,
       | (https://sabrent.com/products/usb-sw30), and connected its switch
       | to a Raspberry Pi 4B via GPIO (4B is overkill by wanted hardwired
       | network). There's a small separate keyboard (which will later be
       | a macro keypad of some sort), connected to the Pi. Using
       | inputexec (https://github.com/rbarrois/inputexec) to detect
       | keypresses and then firing off a specific script to send a
       | network request to the LG TV I use as a monitor to switch the
       | source, and then set the GPIO connected to the USB switcher to
       | high or low to switch the keyboard/mouse to the other machine.
       | 
       | I can also turn on/off the TV using the same WebOS API (and Wake-
       | on-lan) as used during the source switch. A Kasa smart outlet
       | also gets toggled to turn on/off a BenQ ScreenBar Halo
       | (https://www.benq.com/en-us/lighting/monitor-light.html).
       | 
       | So with 4 different keypresses, I can switch to Work, to
       | Personal, turn off monitor and light, and turn on monitor and
       | light.
        
       | doctorhandshake wrote:
       | >> NOTE: Both computers need to be connected and powered on for
       | this to work (as each board gets powered by the computer it plugs
       | into).
       | 
       | It's not clear to me what would happen in the event that only one
       | of the two computers was powered up. Would the powered pico pass
       | the mouse off to a dead pico at the screen edge and then have no
       | twin to pass it back, leaving the powered machine with no USB
       | devices?
        
       | spatalo wrote:
       | Is there any such solution that allows to use Windows Precision
       | Touchpad gestures?
        
       | odysseus wrote:
       | What if you want to switch ONE monitor, for example a 5K Apple
       | Studio Display, between a Mac Mini and a MacBook?
       | 
       | Does a reliable solution exist that includes all accessories
       | built in/attached to the monitor? (Ethernet, monitor speakers,
       | monitor camera, power delivery charging, etc.)
        
         | dhruvarora013 wrote:
         | My "dumb" solution here is that I've plugged all peripherals
         | into a dock. I have a cable go from my dock to my Macbook or
         | desktop. I have to physically replug every time but it's just
         | the one cable for charging + data transfer so it is simple
         | enough
        
         | HellsMaddy wrote:
         | I built something like this. Luckily my monitor has an IR
         | remote control, which allowed me to record and replay control
         | codes to switch inputs. I used a USB hub that also had an IR
         | remote control for my keyboard/mouse, and I used a teensy with
         | an IR LED to send codes to both the USB switch and monitor. I
         | used an IR repeater/extender to route the IR signal from
         | underneath my desk where the teensy/usb switch are to the back
         | of my monitor where it can reach the monitor's IR receiver. I
         | also made a little NodeJS app that shares my clipboard between
         | my computers. Although the whole setup is pretty hacky, it
         | works surprisingly well.
        
         | jaktet wrote:
         | I use this and it generally works fine: https://a.co/d/5vDBGMM
         | . I had issues with getting full framerate and resolution until
         | I tried a few different cables. The only issues I have are that
         | sometimes the monitor will get all glitchy on one computer.
         | Turning it off and on sometimes helps, restarting the computer
         | sometimes help, and other times it just doesn't work one day
         | and works fine the next. Overall though I've only had the issue
         | where it's glitchy and I distorts the screen and I couldn't fix
         | it for that one day it happened -\\_(tsu)_/-
         | 
         | It hasn't been enough of an issue to mess with it more or try a
         | different one
        
       | lawnchair wrote:
       | Did this back in '99 with a program called x2vnc.
        
       | puetzk wrote:
       | Now it just need to be combined with something like
       | https://github.com/haimgel/display-switch to do a DDC/CI monitor
       | input switch as the USB activity moves around.
       | 
       | With a device like this you'd be missing the on_usb_connect
       | event, but presumably you could do something (a special HID
       | device button, an extra device id appearing, who knows) to make
       | it work.
        
       ___________________________________________________________________
       (page generated 2023-12-27 23:00 UTC)