如何杀死所有打开的窗口?

Joe*_*Joe 11 kill x11 logout kiosk

我想关闭出现在我桌面上的所有窗口。我曾想过这样做pkill,但我一次只能设法杀死他们,这不是我想要的。最终目标是将其放入一个脚本中以运行信息亭,它将检测信息亭软件是否正在运行(我想出了这部分),如果没有,它将杀死所有打开的窗口,然后重新启动我的亭软件。

Mic*_*mer 5

最简单的方法使用xdotool

xdotool search "" windowkill %@
Run Code Online (Sandbox Code Playgroud)

xdotool search ""列出每个窗口。windowkill %@杀死他们中的每一个人;%@的是上次搜索的所有结果。

您可能更喜欢使用--maxdepth 1选项search所选窗口限制为顶级窗口。


Gui*_*een 3

这至少适用于 kde 和 xfce(gnome 未测试,但也可能有效):

1)安装wmctrl

2)然后创建一个名为的脚本close_windows.sh

# close all open windows gracefully without closing the Desktop environment
WIN_IDs=$(wmctrl -l | grep -vwE "Desktop$|xfce4-panel$" | cut -f1 -d' ')
for i in $WIN_IDs; do wmctrl -ic "$i"; done
# Keep checking and waiting until all windows are closed (you probably don't need this section)
while test $WIN_IDs; do 
    sleep 0.1; 
    WIN_IDs=$(wmctrl -l | grep -vwE "Desktop$|xfce4-panel$" | cut -f1 -d' ')
done 
Run Code Online (Sandbox Code Playgroud)

3)使其可执行:chmod +x ./close_windows.sh

3) 在开始菜单中创建一个指向 close_windows 脚本的条目。

4) 从该条目执行 close_windows 脚本。

来源: https: //forum.manjaro.org/index.php? topic=4412.0 :