如何将键盘输入发送到程序?
也就是说,在Linux GUI下,有没有一种好的手动(可编程)方式或工具,可以在Linux上运行的程序上模拟键盘输入,以便我可以从命令行发送例如“Control-T”到Firefox进程和“echo 'hello'\n”到Gnome终端进程,而不必直接聚焦于这些进程并进行输入?
如何将键盘输入发送到程序?
也就是说,在Linux GUI下,有没有一种好的手动(可编程)方式或工具,可以在Linux上运行的程序上模拟键盘输入,以便我可以从命令行发送例如“Control-T”到Firefox进程和“echo 'hello'\n”到Gnome终端进程,而不必直接聚焦于这些进程并进行输入?
xdotool
可以发送按键,但是只限于聚焦的窗口:
WID=`xdotool search "Mozilla Firefox" | head -1`
xdotool windowactivate $WID
xdotool key ctrl+l
虽然这是一个老话题,但仍有人在寻找解决方案。有人提到了在使用xdotool时需要激活窗口的解决方案。然而,您可以指定窗口甚至使用xdotool查找它。以下是我尝试完成的示例,请按您的需求进行更改。
xdotool key --window $(xdotool search --name "Spotify (Premium |Free )?- Linux Preview" | head -n1) ctrl+KP_Down
xdotool key --window $(xdotool search --name "Audacity" | head -n1) Ctrl+Q
- Salemxdotool
的Ruby DSL,以简化窗口聚焦和模拟键盘输入。以下是一个示例,基于您最初的请求进行改进:我使用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
我找到了这两个程序 xmacro 和 xremote ,你可以看看,但似乎它们的文档不是很好。
我还在这个问题的 SO Q&A 中找到了这个实用程序 xvkbd
,标题是:使用 Bash 脚本将按键码发送到 Xorg + wine。
/usr/include/X11/keysymdef.h
文件中找到的关键符号列表。 - jcubichead -1
? - qed