जवाबों:
खैर, बाद में 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
तीनों करेंगे।