提升具有特定标题的所有窗口

Jur*_*ala 2 bash lubuntu conky openbox wmctrl

我试图找到一种方法来提升所有具有一个特定标题的窗口。

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

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

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

那么,我应该怎么做才能提升所有的窗户?

提前致谢。

小智 5

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

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

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

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

wmctrl -l
Run Code Online (Sandbox Code Playgroud)

因此,假设您的窗口标题中有 superconky,则仅从该列表中提取窗口 ID

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

然后处理列表

if [ -n "${windowid_list}" ]
then
     for windowid in ${windowid_list}
     do
         wmctrl -i -a "${windowid}"
     done
fi
Run Code Online (Sandbox Code Playgroud)

请注意,必须在操作标志(“-a”、“-R”或其他)之前指定表示数字 windowid 的“-i”标志,否则什么也不会发生。

另请注意,“-a”会引发并聚焦窗口,并且一次只能聚焦一个窗口。

此外,如果第二个 superconky 窗口位于第一个窗口的正下方,则当第二个窗口升起时,它会遮挡第一个窗口。