मुझे लगता 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)