Xdotool --window 功能不起作用

Xdotool --window 功能不起作用

我目前遇到一个非常简单的问题,我一生都无法弄清楚。 xdotool的--window功能不起作用。

我应该能够打开两个终端窗口,获取其中一个的 windowID 并运行

xdotool key --window "WindowID" x

但什么也没发生。

如果我输入不存在的 windowID,则会收到 BadWindowID 错误,因此它会找到该窗口。

如果我输入与我输入命令的同一终端窗口的 windowID,则不会发生任何情况。

我还可以做一个简单的操作sleep 5; xdotool key x并切换到另一个终端窗口,这会正确地导致在新选择的终端窗口中进行击键,但这不是重点。

目前我唯一的(功能性)解决方法是在窗口之间切换,执行击键然后切换回来,从而绕过 --window 函数,但这让我的眼睛流血。

tmp=$(xdotool getactivewindow); xdotool windowactivate --sync $(xdotool search --name "WINDOWNAME") key x; xdotool windowactivate $tmp

我尝试将它作为 bash 脚本以 root 身份运行,我尝试使用将 windowID 作为同一行中的变量并在单独的脚本中获取它。我现在唯一的另一个想法是更新我的发行版,假设我的窗口管理器存在一些故障。

我正在运行 Mint 20、Xfce 64、x11、xfce4-terminal

答案1

(没有足够的代表发表评论,但想支持你的问题。)

多年来我一直在两台不同的机器上经历过这种情况。 (CentOS7 和 Rocky8)

我对 xdotool 非常有经验,可以执行各种窗口激活和搜索操作,但根据我的经验,--window用于输入输入的过滤器从未起作用。

我有很多目标,这里有几个:

  • 在视频通话中切换静音没有切换到该窗口
  • “绕过”系统快捷方式(例如,谷歌幻灯片用于ctrl+m新幻灯片,但它已经是我系统上的全局快捷方式。想要使用xdotool key --window WINDOWID ctrl+m

编辑:刚刚在手册页中找到了前面提到的 SENDEVENT Notes 部分(不知道我是如何错过的)并且能够将击键事件发送到 xterm 而无需切换到它......所以听起来这个功能确实有效,它只是非常有限您可以发送输入的窗口(这是不受控制xdotools的)

相关内容