1

我正在运行 Mac OS X 10.7.5。我已经安装了 XQuartz v2.7.4,以及 X11 v2.6.5。我已经用 Xserver 启动了 iTerm2,我相信它工作正常,因为当我运行时xdpyinfo,xterm 和 iterm2 中输出的开头是相同的。

█ $xdpyinfo
显示名称:0
版本号:11.0
供应商字符串:X.Org 基金会
供应商版本号:11006000
X.Org 版本:1.10.6
...

但是,当我在 iTerm2 中运行任何 xdotool 命令时,输出不会显示在同一窗口中:

█ $ xdotool key f
█ - MacBook-Air:~ ()

然而,当我从 xterm 运行时:

bash-3.2$ xdotool 键 f fbash-3.2$ f

所以我可以看出,在 xterm 中,命令的输出会转到正确的窗口,但对于 iTerm2 似乎并非如此。如果您知道我可能做错了什么或遗漏了什么,请告诉我。谢谢!

4

1 回答 1

1

问题是 iTerm2 不是 XQuartz 客户端,当您键入命令时,没有当前的 XQuartz 窗口(因为 MacOS 的焦点是 iTerm2 窗口,而不是 XQuartz 窗口。

xdotool手册页告诉您该key命令有一个选项,可用于将事件重定向到其他窗口

--window window
将击键发送到特定的窗口 id。. 您可以在此处使用“WINDOW STACK”"%1"引用"%@"。如果有窗口堆栈,则默认为“%1”,否则使用当前窗口

如果您使用 给它一个有效的窗口 ID --window,它可能会按预期工作。

于 2017-11-26T19:43:42.693 回答