如何知道活动窗口的pid

如何知道活动(聚焦)窗口的pid?

我想编写一个脚本,其中有必要知道用户是否正在积极使用程序[浏览互联网与某事物说火狐]或做其他事情[用文字说文字说gedit]

在我的情况下,我想下载大文件,但不想损害浏览速度。 所以,当我浏览活动窗口是firefox,我想停止下载。 当我阅读pdf活动窗口是PDF阅读器,我想恢复下载。 而已。

xdpyinfo在其大量输出中隐藏了具有焦点的窗口的窗口id(请参阅: 哪个窗口具有当前焦点? )。 有了它,您可以使用xprop来获取关联的PID。

 xprop -id `xdpyinfo | grep -Eo 'window 0x[^,]+' | cut -d" " -f2` | grep PID 

最后,我设法使用xdotool获取主动聚焦窗口的PID

 xprop -id `xdotool getwindowfocus` | grep '_NET_WM_PID' | grep -oE '[[:digit:]]*$' 

您可以安装wmctrl然后使用它列出所有窗口, wmctrl -l