Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
YDOTOOL(1)		     General Commands Manual		      YDOTOOL(1)

NAME
     ydotool - command-line /dev/uinput automation tool

SYNOPSIS
     ydotool cmd args

     ydotool cmd --help

DESCRIPTION
     ydotool lets you programmatically (or manually) simulate keyboard input and
     mouse activity, etc. The ydotoold(8) daemon must be running.

     Currently implemented command(s):

     type
	 Type a string
     key
	 Press keys
     mousemove
	 Move mouse pointer to absolute position
     click
	 Click on mouse buttons

KEYBOARD COMMANDS
     key [-d,--key-delay <ms>] [<KEYCODE:PRESSED> ...]

	 Type a given keycode.

	 e.g. 28:1 28:0 means pressing on the Enter button on a standard US key-
	 board.  (where  :1  for pressed means the key is down and then :0 means
	 the key is released)

	 42:1 38:1 38:0 24:1 24:0 38:1 38:0 42:0 - "LOL"

	 Non-interpretable values, such as 0, aaa, l0l, will only cause a delay.

	 See `/usr/include/linux/input-event-codes.h' for  available  key  codes
	 (KEY_*).

	 You  can  find the key name/number your keyboard is sending to libinput
	 by running `sudo libinput record` and then selecting your keyboard from
	 the list it will show you the libinput proper key name and  number  for
	 each key you press.

	 Options: -d,--key-delay <ms>
	     Delay time between keystrokes. Default 12ms.

     type  [-D,--next-delay  <ms>]  [-d,--key-delay <ms>] [-f,--file <filepath>]
     "text"

	 Types text as if you had typed it on the keyboard.

	 Options:

	 -d,--key-delay <ms>
	     Delay time between key events (up/down each). Default 12ms.

	 -D,--next-delay <ms>
	     Delay between strings. Default 0ms.

	 -f,--file <filepath>
	     Specify a file, the contents of which will be typed as if passed as
	     an argument. The filepath may also be '-' to read from stdin.

	 Example: to type 'Hello world!' you would do:
	     ydotool type 'Hello world!'

MOUSE COMMANDS
     mousemove [-a,--absolute] <x> <y>
	 Move the mouse to the relative X and Y coordinates on the screen.

	 Options: --absolute
	     Use absolute position

	 Example: to move the cursor to absolute coordinates (100,100):
	     ydotool mousemove --absolute 100 100

     click [-d,--next-delay <ms>] [-r,--repeat N ] [button ...]
	 Send a click.

	 Options: -d,--next-delay <ms>
	     Delay between input events (up/down, a compete click means  doubled
	     time). Default 25ms.

	 -r,--repeat N
	     Repeat entire sequence N times

	 all  mouse  buttons  are  represented using hexadecimal numeric values,
	 with an optional bit mask to specify if mouse up/down needs to be omit-
	 ted.

	 *   0x00 - LEFT
	 *   0x01 - RIGHT
	 *   0x02 - MIDDLE
	 *   0x03 - SIDE
	 *   0x04 - EXTR
	 *   0x05 - FORWARD
	 *   0x06 - BACK
	 *   0x07 - TASK
	 *   0x40 - Mouse down
	 *   0x80 - Mouse up

     Examples:

	 *   0x00: chooses left button, but does nothing (you can  use	this  to
	     implement extra sleeps)
	 *   0xC0: left button click (down then up)
	 *   0x41: right button down
	 *   0x82: middle button up

	 The '0x' prefix can be omitted if you want.

YDOTOOL SOCKET
     The  socket  to  write to for ydotoold(8) can be changed by the environment
     variable YDOTOOL_SOCKET.

AUTHOR
     ydotool was written by ReimuNotMoe.

     This manpage was written by bob.hepple@gmail.com but updated since.

LICENCE
     AGPLv3

SEE ALSO
     ydotoold(8)

     Project site: <https://github.com/ReimuNotMoe/ydotool>

				   2026-08-29			      YDOTOOL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ydotool&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help