我希望能够通过
Python跟踪我的X11显示器上当前关注的应用程序.目的是将其与时间跟踪工具联系起来,这样我就可以记录我花费多少时间无效.
我已经在http://thpinfo.com/2007/09/x11-idle-time-and-focused-window-in.html找到了这段代码:
import Xlib.display display = Xlib.display.Display() focus = display.get_input_focus() print "WM Class: %s" % ( focus.focus.get_wm_class(),) print "WM Name: %s" % ( focus.focus.get_wm_name(),)
但是,它似乎对我不起作用.显然,无论关注哪个应用程序,get_wm_class()和get_wm_name()都只返回None.
当然,解决方案需要与Compiz等所有这些新奇的窗口管理器一起使用.
解决方法
喔!我自己想通了:
import Xlib.display display = Xlib.display.Display() window = display.get_input_focus().focus wmname = window.get_wm_name() wmclass = window.get_wm_class() if wmclass is None and wmname is None: window = window.query_tree().parent wmname = window.get_wm_name() print "WM Name: %s" % ( wmname,)