调出具有特定标题的所有窗口

调出具有特定标题的所有窗口

我正在尝试找到一种方法来调出所有具有一个特定标题的窗口。

例如,我有两个窗口名为superconky(是的,你猜对了,我正试图让 conky 在 lubuntu 中运行)。

我有一个从 LXDE 论坛获得的命令:sh -c 'wmctrl -k on; wmctrl -a superconky;'

我用它来显示桌面,除了 conky。它工作得很好,但前提是你有一个 conky。如果你有两个或多个,你只能看到一个,其他的都会最小化。

所以,我该怎么做才能把所有窗户都升起来?

提前致谢。

答案1

“那么,我该怎么做才能把所有窗户都升起来呢?”

大概你的意思是所有的 conky 窗口?

由于 wmctrl 没有通过指定窗口名称来执行您想要的操作,因此您应该使用更精确的方法来指定窗口 ID。

要获取窗口 ID 列表,请执行以下操作

wmctrl -l

假设你的窗口标题中有 superconky,则从该列表中提取窗口 ID

windowid_list="`wmctrl -l | sed -ne 's|^\([^ ]*\).*superconky.*|\1|p'`"

然后处理列表

if [ -n "${windowid_list}" ]
then
     for windowid in ${windowid_list}
     do
         wmctrl -i -a "${windowid}"
     done
fi

请注意,必须在操作标志(“-a”、“-R”或其他)之前指定表示数字窗口 ID 的“-i”标志,否则不会发生任何事情。

还要注意“-a”会提升并聚焦窗口,并且每次只能聚焦一个窗口。

另外,如果第二个超视距窗口位于第一个窗口的正下方,则当第二个窗口升起时,它将会遮挡第一个窗口。

相关内容