如何将应用程序的所有窗口置于最前面?

如何将应用程序的所有窗口置于最前面?

有时我想将一个应用程序的所有窗口都置于顶部。目前在 Unity 中实现此目的的唯一方法是单独切换到每个窗口(使用 alt-tab、单击启动器图标并选择每个窗口,或最小化所有其他窗口)。我猜可以使用 wmctrl 来解决这个问题,但我希望有一个更简单的解决方案。

答案1

您可以使用 wmctrl 来实现这一点:

所有窗口都有一个快捷方式,例如如果您只想撤消回到桌面:

wmctrl -k off

如果您确实需要仅打开特定应用程序,则可以使用以下脚本,但它会打开所有工作区上的所有窗口。例如,要打开所有 gnome 终端,您可以执行

pids=" $(pidof gnome-terminal) "
wmctrl -lp | while read id a pid b; do
  test "${pids/ $pid }" != "$pids" && wmctrl -i -a $id
done

答案2

如果您只需要查找某个应用程序的所有窗口(并预览每个窗口的内容),则请在启动栏中单击该应用程序的图标两次。第一次单击时,将激活该应用程序的最新窗口,第二次单击时,将预览该应用程序的所有窗口。从技术上讲,这与“将它们置于顶部”不同,但可能满足您的实际需求(例如,查找所有打开的电子邮件窗口)。

答案3

基于@Lajos的出色回答,可以与任何应用程序配合使用:

function showall {
  pids=" $(pidof $1) "
  wmctrl -lp | while read id a pid b
  do test "${pids/ $pid }" != "$pids" && wmctrl -i -a $id; done
}

然后像这样调用它:

showall gnome-terminal
showall nautilus
showall chrome

相关内容