जवाबों:
खैर, बाद में 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
जो मुझे यहां मिला
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrlएक -iविकल्प है, जो अपने हेक्स पहचानकर्ता के साथ खिड़की के साथ काम करने का समर्थन करता है। और इसलिए आप ऐसा कर सकते हैं wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai- जो कुछ ऐसा ही करेगा
उपयोग करते समय 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 से रुकी हुई है। यह अभी भी मेरी पसंद का उपकरण है। व्यक्तिगत कारणों से, जॉर्डन सिसेल (मूल लेखक) पहले की तरह सक्रिय नहीं है, इसलिए परियोजना में योगदान करने में संकोच न करें।
xdotool windowraiseखिड़की को सामने लाता है लेकिन खिड़की पर ध्यान केंद्रित नहीं करता है या खिड़की के साथ डेस्कटॉप पर स्विच नहीं करता है। इसके बजाय,windowactivateतीनों करेंगे।