मुझे लगता xdotool getactivewindowहै कि आप क्या चाहते हैं - क्या आपने इसकी कोशिश की?
यह विंडो आईडी (विंडो स्टैक से) को प्रिंट करता है यदि कमांड लाइन पर कोई और xdotool उपकमांड नहीं हैं।
में xdotool getactivewindow getwindowpidउदाहरण के लिए, getactivewindowखिड़की स्टैक पर आईडी डालता है, और getwindowpidपीआईडी क्वेरी करने के लिए इस आईडी का उपयोग करता है। ध्यान दें कि टर्मिनल में उस कमांड को चलाने से टर्मिनल विंडो की आईडी हमेशा वापस आ जाएगी, क्योंकि यह सक्रिय है। किसी अन्य विंडो से ID प्राप्त करने के लिए sleep 2s && xdotool getactivewindowदो सेकंड के समय में रुचि की विंडो का चयन करें।
xdotoolविंडो हैंडलिंग के लिए अन्य उपकरणों के साथ
उपयोग करने पर एक जटिलता है :
जबकि xdotoolआउटपुट विंडोव आईडी के लिए दशमलव संख्याओं का उपयोग करता है, अधिकांश अन्य उपकरण आउटपुट के लिए हेक्साडेसिमल संख्याओं का उपयोग करते हैं (वे इनपुट के लिए आमतौर पर दोनों का समर्थन करते हैं)।
उदाहरण के लिए, यदि आपको एक विंडो मिलती है, तो आपको xdotool getactivewindowआउटपुट के परिणाम नहीं मिलेंगे xwininfo -root -tree, जो सभी विंडो को सूचीबद्ध करता है। इसे पहले एक हेक्साडेसिमल नंबर में बदलना होगा:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
दशमलव को हेक्साडेसिमल में बदलना:
printf 0x%x 69206716
षोडश आधारी को दशमलव में बदलना:
printf %i 0x42002bc
xdotool getactivewindowकमांड की कोशिश की और समस्या यह है कि यह टर्मिनल में परिणाम नहीं प्रिंट करता है। यह विंडो स्टैक के परिणाम को सहेजता है। यह कमांड कुछ संख्या प्रिंट करता है, लेकिन यह विंडो आईडी नहीं है (जैसे 35651588)