I know, because I wanted to automate a GUI task using PyAutoGUI and it wouldnt work on wayland no matter what.
I personally use wl-kbptr, and the problem above is the only one that can't be solved without explicit support from the compositor.
I often try a session with Labwc/LxQt instead of my Openbox/LxQt, and while there is progress, still not fully usable, so still no Wayland for me. But with X11, I can at least add xvfb, xdotool, and other utils, and AI has no problem writing (and testing) a GUI for me.
So in the sense as far as I understand it is that in wayland one application is not allowed to use the input of IO devices to interact with other applications.
(This is partially an assumption on my part as I currently don't have an unrestricted Windows machine to verify, but considering the non-functional button and "download on Windows" message it displays it seemed safe to assume)
Hint mode as a feature being able to click all active links on the screen is great and very useful.
Two features I've added recently that have made never using a mouse much more feasible:
1. Search mode - Search for any text on the page, jump to it and then use vim keybindings to select text from there and copy => I use this 20+ times a day
2. Scroll mode - Any scroll area on the page is highlighted with a hint, but when selected it clicks the scroll area and allows you to use keybindings like j/k/gg/G to scroll up and down. I loved this from vimium and wanted to everywhere
Feel free to steal those :)
When Neverclick generates the key combinations, it prioritizes keys in the center of the keyboard. It then sorts the key combinations from most to least convenient (so for example JJ and FF would be at the top of the list). It then assigns the most convenient key combinations to UI elements closest to the center of the screen because that's where people are most likely to want to perform a mouse action.
As the other commenter already said, with dynamic data, you can't really make things repeatable. However, it's still really cozy to use and way better than if it were randomly generated and assigned (which is how it used to work before it was updated to the new system).
I've trialed a handful of these mouse-less programs before and I always run into the same hurdles.
E.g. where one or more of my apps have sliders which I can't interact with using clicks instead of drags (so I can't interact with it at all), or needing to click things like my MacOS dock, or even resize a window.
I've had a poor experience with accessibility apis, they're clunky, slow, and unpredictable, and as you said many apps aren't built with accessibility in mind. With computer vision you don't have to worry about that.
This might sound strange, but the cv system in Neverclick actually runs significantly faster than UI Automation (which is the accessibility api on windows) in nearly all of my personal tests. I can't believe that accessibility apis are so poorly optimized that raw pixel analysis is faster lol. Also, I have users that use Neverclick on 10 year old hardware and they tell me that the cv runs instantly whereas UI Automation is super laggy for them.
Also, accessibility apis typically don't give you useful bounding boxes for text in text editors, this is another advantage of the cv approach.
I really wish the title of the post was "Desktop application for performing mouse actions with your keyboard using computer vision" so that it's more obvious that it uses cv, although it's my fault since the current title is how I have it in the readme and they probably just copied that.
- Fake commit history
- No source code, despite being hosted on github
- Windows-only binaries available for download
If I weren't on my work computer I would pull down those binaries to see what is in them. It sure smells fishy.
Neverclick is digitally signed with Microsoft Trusted Signing (now known as Azure Artifact Signing). I had to send them my address and ID to get my identity verified so that I'd get approved for it.
Is there anything else I can do to put your mind at ease?
Ok, how does it use CV? This is not explained. Does it track eye movements? Do I need a webcam, or two?
Github has no source code.
Pass for me.
This is so very sketchy.