Open eugenesvk opened 6 months ago
The reason I am not super interested in the existing Windows solutions is because they are built on top of Windows drivers which to my understanding cannot be properly published without paying a few hundred dollars to Microsoft (I believe because they require them to be somewhat certified, I am a bit confused by how much engineering work they can put in that for such a low price though). This is why the driver-based approach you linked has a paid version, and limits keyboards to 10 connected keyboards at once on the free one.
I am against adding this feature because of this, and even if someone PRs it I don’t think I could accept it because I would most likely not be able to maintain it afterwards.
I genuinely find the Linux device approach more practical, you can use a Raspberry Pi if you absolutely have nothing else. The real good approach would be for Microsoft to offer the feature, but I understand it is hard because of all the malware issues they struggle with, it would require a better design than the somewhat naive way it is done on Linux.
For context I started this project because I thought it was weird for this feature to only be available as a paid product. I wanted it to be cross-platform so I implemented the Linux thing basically trivially and started looking into Windows to my dismay.
You mention the limitations for Windows and that:
As far as I understand, there exists such a driver https://github.com/oblitum/Interception (not open source and has a huge bug that it bricks after a ~9 re-connects of input devices)
Have you thought about adding an option to integrating your library with that external driver to have a better stop-gap functionality than using Linux and send network events?