.\" Generated by scdoc 1.11.2 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "YDOTOOL" "1" "2023-07-12" .SH NAME .P ydotool - command-line \fI/dev/uinput\fR automation tool .P .SH SYNOPSIS .P \fBydotool\fR \fBcmd\fR \fIargs\fR .P \fBydotool\fR \fBcmd\fR --help .P .SH DESCRIPTION .P \fBydotool\fR lets you programmatically (or manually) simulate keyboard input and mouse activity, etc.\& The \fBydotoold\fR(8) daemon must be running.\& .P .P Currently implemented command(s): .P \fBtype\fR .RS 4 Type a string .RE \fBkey\fR .RS 4 Press keys .RE \fBmousemove\fR .RS 4 Move mouse pointer to absolute position .RE \fBclick\fR .RS 4 Click on mouse buttons .P .RE .SH KEYBOARD COMMANDS \fBkey\fR [\fB-d\fR,\fB--key-delay\fR \fI\fR] [\fI\fR .\&.\&.\&] .P .RS 4 Type a given keycode.\& .P 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) .P 42:1 38:1 38:0 24:1 24:0 38:1 38:0 42:0 - "LOL" .P Non-interpretable values, such as 0, aaa, l0l, will only cause a delay.\& .P See `/usr/include/linux/input-event-codes.\&h'\& for available key codes (KEY_*).\& .P 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.\& .P Options: \fB-d\fR,\fB--key-delay\fR \fI\fR .RS 4 Delay time between keystrokes.\& Default 12ms.\& .P .RE .RE \fBtype\fR [\fB-D\fR,\fB--next-delay\fR \fI\fR] [\fB-d\fR,\fB--key-delay\fR \fI\fR] [\fB-f\fR,\fB--file\fR \fI\fR] "\fItext\fR" .P .RS 4 Types text as if you had typed it on the keyboard.\& .P Options: .P \fB-d\fR,\fB--key-delay\fR \fI\fR .RS 4 Delay time between key events (up/down each).\& Default 12ms.\& .P .RE \fB-D\fR,\fB--next-delay\fR \fI\fR .RS 4 Delay between strings.\& Default 0ms.\& .P .RE \fB-f\fR,\fB--file\fR \fI\fR .RS 4 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.\& .P .RE Example: to type '\&Hello world!\&'\& you would do: .RS 4 ydotool type '\&Hello world!\&'\& .P .RE .RE .SH MOUSE COMMANDS .P \fBmousemove\fR [\fB-a\fR,\fB--absolute\fR] \fI \fR .RS 4 Move the mouse to the relative X and Y coordinates on the screen.\& .P Options: \fB--absolute\fR .RS 4 Use absolute position .P .RE Example: to move the cursor to absolute coordinates (100,100): .RS 4 ydotool mousemove --absolute 100 100 .P .RE .RE \fBclick\fR [\fB-d\fR,\fB--next-delay\fR \fI\fR] [\fB-r\fR,\fB--repeat\fR \fIN\fR ] [\fIbutton\fR .\&.\&.\&] .RS 4 Send a click.\& .P Options: \fB-d\fR,\fB--next-delay\fR \fI\fR .RS 4 Delay between input events (up/down, a compete click means doubled time).\& Default 25ms.\& .P .RE \fB-r\fR,\fB--repeat\fR \fIN\fR .RS 4 Repeat entire sequence N times .P .RE all mouse buttons are represented using hexadecimal numeric values, with an optional bit mask to specify if mouse up/down needs to be omitted.\& .P .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x00 - LEFT .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x01 - RIGHT .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x02 - MIDDLE .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x03 - SIDE .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x04 - EXTR .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x05 - FORWARD .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x06 - BACK .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x07 - TASK .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x40 - Mouse down .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x80 - Mouse up .RE .RS 4 .RE .RE Examples: .P .RS 4 .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x00: chooses left button, but does nothing (you can use this to implement extra sleeps) .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0xC0: left button click (down then up) .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x41: right button down .RE .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .IP \(bu 4 .\} 0x82: middle button up .RE .P The '\&0x'\& prefix can be omitted if you want.\& .P .RE .SH YDOTOOL SOCKET .P The socket to write to for \fBydotoold\fR(8) can be changed by the environment variable YDOTOOL_SOCKET.\& .P .SH AUTHOR .P ydotool was written by ReimuNotMoe.\& .P This manpage was written by bob.\&hepple@gmail.\&com but updated since.\& .P .SH LICENCE AGPLv3 .P .SH SEE ALSO .P \fBydotoold\fR(8) .P Project site: