summaryrefslogblamecommitdiffstats
path: root/accessibility/ydotool/ydotool.1
blob: 56b55cb976f6bfe568425e6b16197f12057a3669 (plain) (tree)
1
2
3
4
5
6
7
8
                             





                                                                               
                              





                                                        
                                  




                              


                                                                                                        














                                       


                      


                     
                                                                                     

     
                       
  

                                                                                  
  
                                               
  
                                                                         
  
                                                                                   
  
                                                                                                                                                                                                                                         
  

                                     
     
                                                


   
                                                                                                                                                 





                                                    
                                     
     
                                                               

   
                                      
     
                                       

   
                                      
     
                                                                                                                                         

   
                                                   
     
                                 




                  
                                                         
     
                                                                   

        
                
     
                     



                                                              
                                    


   
                                                                                                                
     
               

        
                                      
     
                                                                                           

   
                               
     
                              

   

                                                                                    
  
     






                    
   
     






                    
   
     






                    
   
     






                    
   
     






                    
   
     






                    
   
     






                    
   







                    
   
     







                    
     






                    
   
  
     
 

   
         
  
     







                                                                                        
   
     






                                      
   

















                       
   
  
                                                 
  

                  
  
                                                                                                         
  
          
  
                                     
  
                                                                         
  

           





                                                        
.\" 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>