从命令行发送键盘input到程序

如何将键盘input发送到程序?

也就是说,在一个Linux GUI下,是否有一个很好的手动(可编程)的方式,或者是一个模拟Linux上正在运行的程序的键盘input的工具,这样我就可以从命令行发送,例如“Control-T”到一个Firefox进程和“回声'你好'\ N”的Gnometerminal进程没有实际上关注每个进程和直接input?

Solutions Collecting From Web of "从命令行发送键盘input到程序"

xdotool确实有一种发送按键的方法,如果仅限于一个焦点窗口:

 WID=`xdotool search "Mozilla Firefox" | head -1` xdotool windowactivate $WID xdotool key ctrl+l 

我发现这两个程序xmacro和xremote,你可以看看,但似乎没有很好的文件。

我还发现这个实用程序xvkbd在回答这个问题SO Q&A标题: 发送密钥到Xorg +酒与bash脚本 。

我已经围绕xdotool构建了一个Ruby DSL来简化窗口的聚焦和键盘输入的模拟。 下面是一个例子,请原始请求:

 Mani.new(window_manager: :xmonad) do window :hello, launch: 'urxvt' do run 'echo "hello\n"' end window :firefox, launch: 'firefox', delay: 1.5 do type '{{ctrl+t}}' end end 

这是一个古老的话题,但仍有人可能正在寻找这个,有人在这里提到的解决方案,当使用xdotool时必须激活窗口。 但是,您可以指定窗口,甚至使用xdotool来查找它。 这里是我试图完成的例子,根据需要进行更改。

 xdotool key --window $(xdotool search --name "Spotify (Premium |Free )?- Linux Preview" | head -n1) ctrl+KP_Down