Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Simulate mouse movement in Ubuntu

Problem

Am looking to automatically move the mouse cursor and simulate mouse button clicks from the command-line using an external script. Am not looking to:

  • Record mouse movement and playback (e.g., xnee, xmacro)
  • Instantly move the mouse from one location to another (e.g., xdotool, Python's warp_pointer)

Ideal Solution

What I'd like to do is the following:

  1. Edit a simple script file (e.g., mouse-script.txt).
  2. Add a list of coordinates, movement speeds, delays, and button clicks. For example:
    (x, y, rate) = (500, 500, 50)
    sleep = 5
    click = left
    
  3. Run the script: xsim < mouse-script.txt.

Question

How do you automate mouse movement so that it transitions from its current location to another spot on the screen, at a specific velocity? For example:

xdotool mousemove 500 500 --rate 50

The --rate 50 doesn't exist with xdotool.

like image 973
Dave Jarvis Avatar asked Jun 06 '10 23:06

Dave Jarvis


People also ask

How do I Auto move my mouse in Linux?

# of the screen then change mousemove_relative to mousemove in the xdotool command below. # Set LENGTH to 0 if you do not want the mouse pointer to actually move. # Set LENGTH to 1 if you want the mouse pointer to move just a tiny fraction. # Set LENGTH to e.g. 100 if you want to see more easily the mouse pointer move.

How do I get my cursor in Ubuntu?

In the Appearance panel that appears on the right you just need to click on the menu picker beside the 'cursor' option (it'll read 'Yaru' by default) and select from the cursor themes installed on your system. You'll quickly discover that Ubuntu doesn't ship with many pointer packs out of the box.

What is mouse key in Ubuntu?

This feature is called mouse keys. Open the Activities overview and start typing Accessibility. You can access the Activities overview by pressing on it, by moving your mouse pointer against the top-left corner of the screen, by using Ctrl + Alt + Tab followed by Enter , or by using the Super key.


2 Answers

on newer versions of Ubuntu (14.04+), you can use Autopilot, a UI testing tool for Ubuntu. It is made for creating and running user interface tests, but can also be used for basic GUI automation tasks.

to install:

$ sudo apt-get install python3-autopilot

an example script (Python3) to automate mouse movement:

#!/usr/bin/env python3

from autopilot.input import Mouse

mouse = Mouse.create()
mouse.move(100, 50)
mouse.click()

You would run this just like any other Python3 script. Watch your mouse pointer move!

like image 124
Corey Goldberg Avatar answered Sep 30 '22 17:09

Corey Goldberg


  1. Download xaut for Python
  2. Follow the README instructions
  3. Run:
    sudo apt-get install swig x11proto-xext-dev libx11-dev libxtst-dev
    cd /usr/local/src
    tar zxf xaut-0.2.0.tar.gz
    ./configure
    
  4. Edit src/Makefile
  5. Change the CFLAGS line as follows:
    CFLAGS = -Wall -fPIC -fno-stack-protector
  6. Run:
    make
    
  7. Copy /usr/local/src/xaut-0.2.0/python/build/lib/* to a new directory.
  8. Change to that new directory.
  9. Copy and paste the following script into mm.py:
    import xaut
    mouse = xaut.mouse()
    delay mouse.move_delay( 100 )
    mouse.move( 500, 500 )
    
  10. Run the script:
    python mm.py
like image 41
Dave Jarvis Avatar answered Sep 30 '22 18:09

Dave Jarvis