Я бы хотел отследить, какое приложение в настоящее время ориентировано на мой дисплей X11 от Python. Намерение состоит в том, чтобы связать его с инструментом отслеживания времени, чтобы я мог отслеживать, сколько времени я провожу, будучи непродуктивным.
Я уже нашел этот код на 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 и тому подобное.