BlueM / cliclick

macOS CLI tool for emulating mouse and keyboard events
https://www.bluem.net
Other
1.59k stars 116 forks source link

Move cursor command no longer seems to work after 12.4 update #149

Open drmishra opened 2 years ago

drmishra commented 2 years ago

After updating to MacOS 12.4 the move cursor command doesn't seem to work anymore. My first thought is that it may be Universal Control related, but disabling it doesn't seem to help. Also, the click command still works (the mouse moves to the specified coordinates and the click action occurs).

Macbook Pro 2019 macOS Monterey 12.4 cliclick v5.0.1 (installed through homebrew)

amirh19 commented 2 years ago

Same for Mac OS Big Sur 11.6.6

RichSimon commented 2 years ago

I'm on 12.4 and move is working fine for me, been using it all day (from a file source). Homebrew installed, 5.0.1. Also been using Universal Control.

drmishra commented 2 years ago

@RichSimon do you have multiple displays connected?

One thing I neglected to mention in my initial post that could be relevant is that I have three external displays connected via a Dell D6000 dock in addition to the laptop display. I just tried a test without the dock connected, but saw the same behavior (the move command did nothing, but the click command did move the cursor and perform the click).

In case it's helpful, the commands I tried were: cliclick m:0,0 (not working) cliclick c:0,0 (working)

I also just tried things with the -m verbose flag and it prints out "Move to 0,0", but still does nothing for me.

RichSimon commented 2 years ago

I am running only on an iMac (Retina 5K, 27-inch, 2017), no external displays.

Just confirmed both those commands work for me.

BlueM commented 2 years ago

I am not able to reproduce the problem on 12.4, neither with Universal Control enabled nor disabled.

drmishra commented 2 years ago

Well, that's perplexing. I haven't had time yet to checkout the project and try to debug things on my own, but I may have some time over the weekend. If you have any tips or thoughts on what to look into, please let me know.

seanw2020 commented 2 years ago

I'm seeing the same behavior on Mac Monterrey 12.4, although without external monitors. Interestingly, clicking at a specific location works, but not moving the mouse without clicking.

colbygatte commented 2 years ago

Monterrey 12.4, 2019 macbook and no external displays The move command seems to only work when sending multiple commands. The only exception I've found involves the wait command.

cliclick m:0,0 # no effect
cliclick w:200 m:0,0 # waits, but doesn't move
cliclick -w 200 m:0,0 # no effect (doesn't wait or move)

# everything else I tried works as expected
cliclick m:. m:0,0
cliclick m:0,0 m:. 
cliclick c:. m:0,0 
cliclick m:0,0 c:.
# etc
drmishra commented 2 years ago

Apparently I've never read the documentation that closely; I had no idea you could send multiple commands at once! This is working for me, too. Interestingly, if I do something like cliclick m:0,0 m:100,100 it does both moves. I would have guessed that maybe the first one would have been ignored or something since only doing one move doesn't work for me.

For what it's worth, there have been random times where just running it once will miraculously work, but then running it again doesn't.

amirh19 commented 2 years ago

I confirm behavior pointed by @colbygatte , sending 2 commands will work. cliclick m:0,0 m:100,100.

alexchandel commented 2 years ago

On 12.5, executing one single move command does not work, like cliclick m:+200,+200. But executing two does, like cliclick m:+200,+200 m:+200,+200. So this is likely a bug.

totoroot commented 2 years ago

I can confirm what @colbygatte stated in his comment. I'm running cliclick version 5.1 installed with brew on macOS Monterey 12.5.1. Happens both with and without external displays connected.

For anyone stumbling over this, here is another workaround:

Instead of issuing two move commands or a click command to make it work, I found it easier to just set an easing factor with -e like cliclick -e 20 m:0,0.

More information on this option from the CLI help:

-e <easing> Set an easing factor for mouse movements. The higher this value is (default: 0), the more will mouse movements seem “natural” or “human-like”, which also implies: will beslower. If this option is used, the actual speed will also depend on the distance between the start and the end position, i.e. the time needed for moving will be higher if the distance is larger.

Note that if setting the easing factor too low (default is 0), the cursor will not end up precisely at the specified coordinates, so I recommend using a value of greater than 20.

That might be another issue worth raising.

BlueM commented 1 year ago

Meanwhile I’m on 12.6 and still: everything works for me. And as long as that’s the case, I don’t have the slightest idea how to approach the problem.

Maybe a shot in the dark, but a question who those who can reproduce the problem: are you using external mice (or other pointer devices)? Does the misbehavior still occur without external mouse?

keschei commented 1 year ago

I upgraded my MacBook Pro 2019 from MacOS 10.15 to 13.2 and now have this issue. Same behavior between cliclick v4.0.1 and latest v5.1

It is the same when using bare laptop or connected to my dock with multiple monitors and mouse.

Strange indeed. This is a great app, hoping the root cause can be identified!