289 lines
4.9 KiB
Groff
289 lines
4.9 KiB
Groff
.\" 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<ms>\fR] [\fI<KEYCODE:PRESSED>\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<ms>\fR
|
|
.RS 4
|
|
Delay time between keystrokes.\& Default 12ms.\&
|
|
.P
|
|
.RE
|
|
.RE
|
|
\fBtype\fR [\fB-D\fR,\fB--next-delay\fR \fI<ms>\fR] [\fB-d\fR,\fB--key-delay\fR \fI<ms>\fR] [\fB-f\fR,\fB--file\fR \fI<filepath>\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<ms>\fR
|
|
.RS 4
|
|
Delay time between key events (up/down each).\& Default 12ms.\&
|
|
.P
|
|
.RE
|
|
\fB-D\fR,\fB--next-delay\fR \fI<ms>\fR
|
|
.RS 4
|
|
Delay between strings.\& Default 0ms.\&
|
|
.P
|
|
.RE
|
|
\fB-f\fR,\fB--file\fR \fI<filepath>\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<x> <y>\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<ms>\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<ms>\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: <https://github.\&com/ReimuNotMoe/ydotool>
|