सूक्ति (उबंटू): टर्मिनल से कमांड लाइन का उपयोग करके प्रोग्राम विंडो को सामने कैसे लाया जाए?


14

मेरे पास खुले विंडोज़ के दर्जनों के साथ एक निश्चित कार्य वातावरण है। मैं प्रोग्राम के सामने या कमांड लाइन का उपयोग करके किसी ज्ञात नाम / शीर्षक के साथ एक खिड़की पर कैसे ला सकता हूं?

जवाबों:


12

मैं उपयोग wmctrl -a <name>करता था, जो ठीक काम करता है, लेकिन हाल ही में xdotool, जैसे:

xdotool search --name <name-or-regex-for-name> windowraise

इसकी कई अन्य विशेषताएं भी हैं।

स्थापित करने के लिए:

sudo apt-get install xdotool


5
xdotool windowraiseखिड़की को सामने लाता है लेकिन खिड़की पर ध्यान केंद्रित नहीं करता है या खिड़की के साथ डेस्कटॉप पर स्विच नहीं करता है। इसके बजाय, windowactivateतीनों करेंगे।
jozxyqk

6

खैर, बाद में sudo apt-get install wmctrl, आप इस बैश स्क्रिप्ट के साथ खेल सकते हैं:

#! /bin/bash

WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird

# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:

if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0

जो मुझे यहां मिला


4
ब्रैकेट और बैकटिक्स की कोई आवश्यकता नहीं है:if ! wmctrl -l | grep -q "$WINTITLE"
अगली सूचना तक

wmctrlएक -iविकल्प है, जो अपने हेक्स पहचानकर्ता के साथ खिड़की के साथ काम करने का समर्थन करता है। और इसलिए आप ऐसा कर सकते हैं wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai- जो कुछ ऐसा ही करेगा
vlad-ardelean

0

उपयोग करते समय xdotool, केवल एक कमांड का उपयोग करके किसी दिए गए एप्लिकेशन या क्लास के लिए सभी विंडोज़ को सामने लाना मुश्किल लगता है । मैं forखोल स्तर पर एक लूप में लपेटकर बेहतर परिणाम देता हूं । बैश का उपयोग करना:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

कुछ टिप्पणी:

  • डिफ़ॉल्ट रूप से, विंडो नाम, क्लास और क्लासनाम में xdotool searchपैटर्न (यहां Firefox) खोजेंगे। यदि आप अपनी खोज अंतरिक्ष प्रतिबंधित करना चाहते हैं, तो प्रासंगिक का उपयोग --class, --nameया --classnameविकल्प।
  • --desktop 0विकल्प पहले डेस्कटॉप के लिए खोज सीमित करता है। यह XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)कुछ टिप्पणियों में उल्लिखित से बचने के लिए एक समाधान है ।
  • इस लेखन के समय, xdotoolपरियोजना 2015 से रुकी हुई है। यह अभी भी मेरी पसंद का उपकरण है। व्यक्तिगत कारणों से, जॉर्डन सिसेल (मूल लेखक) पहले की तरह सक्रिय नहीं है, इसलिए परियोजना में योगदान करने में संकोच न करें।


यह AskUbuntu पर पोस्ट किए गए उत्तर की एक प्रति है , लेकिन मुझे लगता है कि यह लिनक्स-स्वाद स्वतंत्र है, इसलिए यह यहां भी उपयोगी हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.