基本上,我想从命令行启动一个应用程序,并有办法存储该ID供以后使用,所以我可以用wmctrl操作该窗口。像这样的东西
openandgetID "vlc" > ~/.IDofVLC
所以我总是可以读取这个文件来获取它所在窗口的数字ID,以便我可以操作它。
答案 0 :(得分:0)
一般来说,这是不可能的。但是,表现良好的客户端为其窗口设置_NET_WM_PID
属性,因此一旦获得进程pid,就可以等到创建主窗口并遍历所有窗口树检查每个窗口_NET_WM_PID
属性。
此外,您可以利用startup notification协议 - 简而言之,一些客户端可以使用启动通知编码的有效负载(包括pid和启动状态)广播ClientMessage(将其发送到root,但您也可以监听它们)。