我正在尝试找到一种方法来调出所有具有一个特定标题的窗口。
例如,我有两个窗口名为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”会提升并聚焦窗口,并且每次只能聚焦一个窗口。
另外,如果第二个超视距窗口位于第一个窗口的正下方,则当第二个窗口升起时,它将会遮挡第一个窗口。