123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- .\" Generated by scdoc 1.11.1
- .\" 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" "2022-02-01"
- .P
- .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.\& It does this by writing directly to \fI/dev/uinput\fR so it generally needs to run as root.\&
- .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
- \fBmousemove_relative\fR
- .RS 4
- Move mouse pointer to relative position
- .RE
- \fBclick\fR
- .RS 4
- Click on mouse buttons
- .RE
- \fBrecorder\fR
- .RS 4
- Record/replay input events
- .RE
- \fBmouseup\fR
- .RS 4
- Send a mouse up event.\&
- .RE
- \fBmousedown\fR
- .RS 4
- Send a mouse down event.\&
- .P
- .RE
- .SH KEYBOARD COMMANDS
- \fBkey\fR [\fB--up\fR] [\fB--down\fR] [\fB--delay\fR \fI<ms>\fR] [\fB--key-delay\fR \fI<ms>\fR] [\fB--repeat\fR \fI<times>\fR] [\fB--repeat-delay <ms>\fR] [\fB--persist-delay <ms>\fR] \fI<key sequence>\fR
- .P
- .RS 4
- Type a given keystroke.\& Examples being "alt+r", "ctrl+J",
- "ctrl+alt+n", "backspace".\&
- .P
- Options:
- .P
- \fB--up\fR
- .RS 4
- Only keyup
- .P
- .RE
- \fB--down\fR
- .RS 4
- Only keydown
- .P
- .RE
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before starting to output keystrokes.\& Default 100ms.\&
- .P
- .RE
- \fB--key-delay\fR \fI<ms>\fR
- .RS 4
- Delay time between keystrokes.\& Default 12ms.\&
- .P
- .RE
- \fB--repeat\fR \fI<times>\fR
- .RS 4
- Times to repeat the key sequence.\&
- .P
- .RE
- \fB--repeat-delay\fR \fI<ms>\fR
- .RS 4
- Delay time between repetitions.\& Default 0ms.\&
- .P
- .RE
- \fB--persist-delay\fR \fI<ms>\fR
- .RS 4
- Keep virtual device alive for \fI<ms>\fR ms.\& Should be used in conjunction with \fB--down\fR or \fB--up\fR
- .P
- .RE
- Generally, any valid name from \fI/usr/include/linux/input-event-codes.\&h\fR will work.\& Multiple keys are separated by '+'.\&
- .P
- Each key sequence can be any number of modifiers and keys, separated by plus (+)
- For example: alt+r Alt+F4 CTRL+alt+f3 aLT+1+2+3 ctrl+Backspace
- .P
- Since we are emulating keyboard input, combinations like Shift+# is invalid because typing a `#' involves pressing Shift and 3.\&
- .P
- Example: Switch to tty1:
- .RS 4
- ydotool key ctrl+alt+f1
- .P
- .RE
- Example: Close a window in graphical environment:
- .RS 4
- ydotool key Alt+F4
- .P
- .RE
- .RE
- \fBtype\fR [\fB--delay\fR \fI<ms>\fR] [\fB--key-delay\fR \fI<ms>\fR] [\fB--args\fR \fI<N>\fR] [\fB--file\fR \fI<filepath>\fR] "\fIsomething to type\fR"
- .P
- .RS 4
- Types text as if you had typed it on the keyboard.\&
- .P
- Options:
- .P
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before starting typing.\& Default 100ms.\&
- .P
- .RE
- \fB--key-delay\fR \fI<ms>\fR
- .RS 4
- Delay time between keystrokes.\& Default 12ms.\&
- .P
- .RE
- \fB--args\fR \fI<N>\fR
- .RS 4
- ?\&?\&?\&?\&
- .P
- .RE
- \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--delay\fR \fI<ms>\fR] \fI<x> <y>\fR
- .RS 4
- Move the mouse to the specific X and Y coordinates on the screen.\&
- .P
- Options:
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before starting move.\& Default 100ms.\&
- .P
- .RE
- Example: to move the cursor to absolute coordinates (100,100):
- .RS 4
- ydotool mousemove 100 100
- .P
- .RE
- .RE
- \fBmousemove_relative\fR [\fB--delay\fR \fI<ms>\fR] \fI<x>\fR \fI<y>\fR
- .RS 4
- Move the mouse x,y pixels relative to the current position of the mouse cursor.\&
- .P
- Options:
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before starting move.\& Default 100ms.\&
- .P
- .RE
- Example: Relatively move mouse pointer to -100,100:
- .RS 4
- ydotool mousemove_relative -- -100 100
- .P
- .RE
- .RE
- \fBclick\fR [\fB--delay\fR \fI<ms>\fR] \fIbutton\fR
- .RS 4
- Send a click.\& Buttons are: 1=left 2=right 3=middle
- .P
- Options:
- .P
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before click.\& Default 100ms.\&
- .P
- .RE
- Example: Mouse right click:
- .RS 4
- ydotool click 2
- .P
- .RE
- .RE
- \fBrecorder\fR [\fB--delay\fR \fI<ms>\fR] [\fB--record\fR \fI<devices>\fR] [\fB--replay\fR \fI<input files>\fR] [\fB--display\fR] [\fB--duration\fR \fI<ms>\fR]
- .P
- .RS 4
- Options:
- .P
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay time before start recording/replaying.\& Default 5000ms.\&
- .P
- .RE
- \fB--record\fR \fI<devices>\fR
- .RS 4
- Devices to record from.\& Default is all, including non-keyboard devices.\&
- .P
- .RE
- \fB--replay\fR \fI<input files>\fR
- .RS 4
- The record file can't be replayed on an architecture with different endianness.\&
- .P
- .RE
- \fB--display\fR
- .RS 4
- ?\&?\&?\&?\&
- .P
- .RE
- \fB--duration\fR \fI<ms>\fR
- .RS 4
- Record duration.\& Otherwise use SIGINT to stop recording.\&
- .P
- .RE
- .RE
- \fBmouseup\fR [\fB--delay\fR \fI<ms>\fR] \fIbutton\fR
- .RS 4
- Send a mouse up event.\& Buttons are: 1=left 2=right 3=middle
- .P
- Options:
- .P
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before click.\& Default 100ms.\&
- .P
- .RE
- Example: Mouse right click:
- .RS 4
- ydotool click 2
- .P
- .RE
- .RE
- \fBmousedown\fR [\fB--delay\fR \fI<ms>\fR] \fIbutton\fR
- .RS 4
- Send a mouse down event.\& Buttons are: 1=left 2=right 3=middle
- .P
- Options:
- .P
- \fB--delay\fR \fI<ms>\fR
- .RS 4
- Delay before click.\& Default 100ms.\&
- .P
- .RE
- Example: Mouse right click:
- .RS 4
- ydotool click 2
- .P
- .RE
- .RE
- .SH AUTHOR
- .P
- ydotool was written by ReimuNotMoe.\&
- .P
- This man page by bob.\&hepple@gmail.\&com
- .P
- .SH BUGS
- .P
- When \fBydotool\fR(1) runs and creates a virtual input device, it will take some time for your graphical environment (eg X11/Wayland) to recognize and enable the virtual input device.\& (Usually done by udev)
- .P
- If the delay is too short, the virtual input device may not be recognized & enabled by the graphical environment in time.\&
- .P
- In order to solve this problem, there is a persistent background service, \fBydotoold\fR(1), to hold a persistent virtual device, and accept input from \fBydotool\fR(1).\& When \fBydotoold\fR(1) is unavailable, \fBydotool\fR(1) will work without it.\&
- .P
- .SH COPYRIGHT
- MIT License
- .P
- .SH SEE ALSO
- .P
- \fBydotoold\fR(8)
- .P
- Project site: <https://github.\&com/ReimuNotMoe/ydotool>
|