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

FreeBSD Manual Pages

  
 
  

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
	   keyboard. (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	libin-
	   put	by running `sudo libinput record` and then selecting your key-
	   board 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 dou-
	       bled 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
	   omitted.

	      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  environ-
       ment 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>

				  2025-11-02			    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.0>

home | help