向两个窗口发送一个按键(Ubuntu)

向两个窗口发送一个按键(Ubuntu)

我正在运行 Ubuntu Linux。我有两个并排运行的打开的终端窗口。我希望能够按一次回车键,并将该按键发送到两个窗口。

(我正在做的是使用调试器在两个不同的系统上逐步执行一些代码,并且我不想在逐步执行代码时不断地在窗口之间来回切换。)

谢谢!

答案1

我没有看到在你的一个调试窗口中执行此操作的简单方法,但你可以使用第三个窗口运行一个环绕的脚本韋克。它在 ubuntu 存储库中(可能在 universe 中)。该脚本可以读取您的键盘输入,然后调用 xvkbd 两次,将击键发送到两个窗口。通常是一个图形程序,使用

xvkbd -window xterm2 -text $foo

将按键事件发送到特定窗口,但不调用 UI。您还可能会发现控制端帮助识别窗口和其他内容。一个简单的脚本可能是:

#!/bin/bash

while [ 1 ]; do
    wmctrl -i -a 0x02200003   #forcibly set focus in window running script
    read keys
    xvkbd -window 0x2202ea4 -text "$keys\r"
    xvkbd -window 0x2200084 -text "$keys\r"
done

答案2

据我回忆,你无法在 GNOME 终端中执行此操作。

如果您想尝试 Konsole,Send Input to All SessionsKonsole 3 中有一个选项,它将Copy Input to...在 Konsole 4 中提供。

答案3

终结者应用程序(不要与Java 应用程序同名的版本提供了您所需的功能。您可以使用 来从 Ubuntu 的存储库安装它apt-get install terminator

工作原理如下:

  • 运行终结者
  • 在选项卡或框架中打开多个会话
  • 点击框架左上角的按钮
  • 选择“新建组...”菜单项
  • 输入群组名称
  • 在您想要发送击键的每个会话中,从菜单中选择该组
  • 您可以使用“广播组”和“广播关闭”菜单项来切换广播按键。

也有用于此目的的键盘快捷键。

答案4

除了clusterssh,它基本上是为此而设计的,但坚持生成自己的终端,你可以使用拉克斯,这是将按键分配/发送到多个 X11 窗口的通用解决方案。它尚未打包,但我会打包,因为我现在需要“类似 clusterssh 的东西,仅适用于 virt-manager”,并且发现这是我的首选工具。

相关内容