Is there a command that exists that can simulate keypresses? I want to pipe some data to it to make it type into a GUI program for me.
Asked
Active
Viewed 7.4k times
2 Answers
51
Yes, it is xdotool.
To simulate a key press, use:
xdotool key <key>
For example, to simulate pressing F2:
xdotool key F2
To simulate pressing crtl + c:
xdotool key ctrl+c
To simulate pressing ctrl + c and then a Backspace:
xdotool key ctrl+c BackSpace
Check man xdotool to get more idea.
You might need to install the xdotool package first to use xdotool command.
Jeff Schaller
- 66,199
- 35
- 114
- 250
heemayl
- 54,820
- 8
- 124
- 141
-
Sweet! I'm assuming people use this for remote connections? – SpecialBomb Mar 04 '16 at 21:10
-
@SpecialBomb Depends..i use it sometimes to simulate a key inside a script.. – heemayl Mar 04 '16 at 21:13
-
Well, thanks! I'm going to use it specifically to make my own remote connection thing. – SpecialBomb Mar 04 '16 at 21:15
-
1I used it so that my computer wouldn't sleep while I was watching movies. – Liam Mar 05 '16 at 00:11
-
1What :key syntax is it to enter UP arrow key? Found it here as `xdotool key Up` https://askubuntu.com/q/382005/22308 – Nam G VU Dec 25 '19 at 09:11
-
This lags out my PC – xjcl Feb 15 '21 at 12:51
2
Use expect (man expect)
#!/usr/bin/expect
#set timeout 10
set clientName [lindex $argv 0];
set hostName [lindex $argv 1];
set passWord [lindex $argv 2];
spawn ssh "$hostName";
expect "Password:";
send "$passWord\r";
expect "$hostName";
send "cd /apps/bin\r";
expect " bin]";