Collaboration with enigo crate #1527
pentamassiv
started this conversation in
Ideas
Replies: 1 comment
-
For uinput on Linux I use the crate: https://github.com/emberian/evdev. The examples directory should hopefully be relatively straightforward to read from. For macOS, notable is that objc is used for mouse and unicode output, but keyboard output uses karabiner, dependent on this crate: The OS event output components of kanata don't change much and generally works already, so I likely won't be swapping it out for a long time. Though there are some known issues in macOS related to mouse drag in screenshots... #1315 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
I am the maintainer of the enigo crate. I just found the project. Very cool!
There seem to be large overlaps of the code and we likely have similar problems testing the code. I was wondering if there is interest in collaborating? For example I imaging it to be very cumbersome for you to test new releases as well. It looks like you build the code, but don't run integration tests. I've been working on some tests in the CI, but they are still messy and have problems. If we work together, we might be able to solve them and that would make publishing new versions much easier for all of us.
Additionally I noticed that you are using the unmaintained
winapi
crate instead ofwindows
. On macOS you useobjc
instead ofobjc2
. I ported the enigo code to these new and maintained libraries, so you could have a look at the code. Please let me know if you find bugs with it, if you do.On the other hand, I would like to add the possibility to use
/dev/uinput
to simulate input on Linux as well, so there is code from you, that I can learn from. Since you use LGPL, it won't be possible to copy though.In issue #106, you mentioned that this missing option is (one of) the reasons why you prefer not using enigo. Since then I took over the maintenance and have been actively developing the crate. Maybe at some point in the future if those issues are fixed, you could even use enigo to minimize code duplication.
These are just some of the examples I was thinking about when looking at the code. Please think of them as ideas for discussion and not suggestions.
Beta Was this translation helpful? Give feedback.
All reactions