9

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.

23

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.

|improve this answer|||||
  • Sweet! I'm assuming people use this for remote connections? – SpecialBomb Mar 4 '16 at 21:10
  • @SpecialBomb Depends..i use it sometimes to simulate a key inside a script.. – heemayl Mar 4 '16 at 21:13
  • Well, thanks! I'm going to use it specifically to make my own remote connection thing. – SpecialBomb Mar 4 '16 at 21:15
  • I used it so that my computer wouldn't sleep while I was watching movies. – Liam Mar 5 '16 at 0:11
  • What :key syntax is it to enter UP arrow key? Found it here as xdotool key Up askubuntu.com/q/382005/22308 – Nam G VU Dec 25 '19 at 9:11
0

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]";
|improve this answer|||||
  • 2
    expect won't work with GUI programs. – Dmitry Grigoryev Mar 22 '16 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.