Somewhat aside, it'd rock if someone would kindly make a more protocol-first alternative. It'd be nice to be able to have something standard that was easy to implement on our own. I don't even have license dodging in mind, just thinking of weird interesting targets that might be useful to vKVM to/from.
PacAnimal•1h ago
Hydra is my solution. Now used by a couple of colleagues at work, and available to you on GitHub. It lets you do all of these things and more:
* Runs on MacOS, Linux, and Windows.
* Translates visible characters to Unicode and transmits the character instead of a keycode, letting the target machine figure out how to type that character.
* Switches configurations automatically, based on WiFi SSID, power status, and more, so your laptop can control your other machine at work, yet be controlled by your desktop at home.
* Does end to end encryption with a simple shared secret.
* Keeps your screensaver from activating when input is registered on either machine in the setup.
* Lets you copy files (Mac/Windows only, for now) using ctrl+opt+super+c/v. Images and text sync on the regular clipboard.
* Can run directly by launching the executable, or --install (--uninstall) on Windows and MacOS, which lets it run as a service (and control the Windows lock screen remotely for unlocking)
* Lets you have any number of "master" machines controlling any number of "slave" machines, even fighting over the same one at the same time if you are so inclined.
* It even supports a funky setup with a headless Raspberry Pi that uses a standard PC keyboard, to provide input on a Mac without needing lots of custom setup on the Mac to map the keys correctly.
It also uses a self-hosted, single container, Docker based "hub" called "Styx" to connect machines together, so it can work between a laptop connected to corporate VPN and a desktop, as long as both can reach the hub over SignalR/HTTPS. The hub can also be run on either participant in a local network, if desired, as Hydra embeds Styx as well.
Try it out if you feel like it. A star would be awesome, and if you make a pull request you're an amazing person <3