Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration with an external driver on Windows #2

Open
eugenesvk opened this issue Mar 12, 2024 · 2 comments
Open

Integration with an external driver on Windows #2

eugenesvk opened this issue Mar 12, 2024 · 2 comments

Comments

@eugenesvk
Copy link

You mention the limitations for Windows and that:

The only option left is to write a custom driver to implement Linux-like functionality in the Windows NT kernel, which is hard to do in a secure way and costs multiple hundreds of dollars to publish because of certification requirements. I am not doing 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?

@Moxinilian
Copy link
Owner

Moxinilian commented Mar 12, 2024

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.

@Moxinilian
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants