Shell命令将程序窗口带到另一个窗口之前?


Answers:


14

注意:

  • 有关xdotool的更多信息,请参见此处

确定编辑您的帖子,就像我正在撰写我的... :()
frabjous 2011年

您可以使用wmctrl -l查找窗口名称。名称是最后一个破折号后的文本:<窗口ID> <桌面ID> <客户端计算机> <窗口标题>
jorfus

8

另一个选择是xdotool

xdotool search --class Nautilus windowactivate


2
XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino

可能是这里的错误-以我的经验--classname或--name(如果知道)有时会在--class无效时起作用。
frabjous

在我的情况下,可以使用来自的ID来引发一个窗口xwininfo并发出几个其他不同的xdotool命令(我已经不记得了)。当我尝试使它自动化(摆脱xwininfo)时,由于还选择了其他隐藏窗口,因此我得到了视觉伪像。我只是没有找到正确解决任意窗口的通用方法。切换到wmctrl -a所有内容后,无需任何进一步调整即可立即正常工作。请注意,我喜欢xdotool,但似乎很难用它来提出正确的窗口。
蒂诺

2

使用时xdotool,似乎仅使用一个命令就可以将给定应用程序或类的所有窗口置于最前面。通过将其包装在forShell级别的循环中,最终得到了更好的结果。使用Bash:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

几句话:

  • 默认情况下,xdotool searchFirefox在窗口名称,类和类名中搜索模式(此处为)。如果你想限制你的搜索空间,使用相关的--class--name--classname选项。
  • --desktop 0选项将搜索限制为第一个桌面。这似乎是一种避免XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)某些注释中提及的解决方法。
  • 在撰写本文时,该xdotool项目自2015年以来一直处于停滞状态。尽管如此,它仍然是我的首选工具。由于个人原因,Jordan Sissel(原始作者)并不像以前那样活跃,因此请为该项目做出贡献。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.