मैं ट्रैक करने में सक्षम होना चाहता हूं कि वर्तमान में कौन सा एप्लिकेशन पाइथन से अपने एक्स 11 डिस्प्ले पर केंद्रित है। इसका इरादा एक टाइमट्रैकिंग टूल में बांधना है ताकि मैं ट्रैक कर सकूं कि मैं अनुत्पादक होने में कितना समय व्यतीत करता हूं।मैं वर्तमान में केंद्रित एप्लिकेशन का पता कैसे लगा सकता हूं?
मैं पहले से ही 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() बस कोई भी वापस नहीं करते हैं।
बेशक समाधान को इन सभी नए फंक्ड विंडो प्रबंधकों जैसे कंपिज़ और इस तरह के साथ काम करने की आवश्यकता है।
तो, 'window.query_tree() वास्तव में क्या करता है? मैंने पाया है कि मैंने भी वांछित परिणाम प्राप्त करने के लिए इसका उपयोग किया है, लेकिन इसके पीछे का अर्थ/कार्य अभी भी मेरे लिए एक रहस्य है। पायथन Xlib दस्तावेज़ या तो बहुत मदद नहीं कर रहे हैं। – erb