检测 X Window 何时关闭

检测 X Window 何时关闭

我正在Ubuntu 20.04.5 LTS使用XFCE4窗口管理器运行。

我正在寻找一种在关闭特定 X 窗口时启动 shell 脚本的方法。

我知道我可以创建一个程序来循环运行wmctrlxdotool一遍又一遍地检查有问题的 X 窗口是否存在,然后在不再检测到该 X 窗口的存在时执行 shell 脚本。

但我想知道是否有某种基于事件的实用程序可以运行,它可以为我完成部分或全部操作,而不必编写这个基于繁忙等待的程序。

有什么建议么?

先感谢您。

答案1

执行此操作的一个简单方法是使用xprop标准 X11 实用程序。您可以通过窗口 ID、窗口名称或通过单击交互方式来提供识别窗口的方法,并且它会显示该窗口的 X11 属性。添加该选项-spy将使其循环等待将显示的更改属性事件。这不是一个繁忙的循环,而是使用标准的 X11 机制来等待请求的事件。当窗口消失时,事件队列将关闭,并xprop干净地结束。例如,

xterm -title mytest -e 'sleep 5' &
sleep 1
xprop -spy -name mytest
echo "rc=$? xterm done"

通常,只有少数属性会发生变化,例如窗口图标化时。

相关内容