Yanıtlar:
Şey, sudo apt-get install wmctrl-ing sonra , bu bash betiği ile oynayabilirsiniz:
#! /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
Burada bulduğum
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl-ionaltılık tanımlayıcı ile pencere ile çalışmayı destekleyen bir seçeneğe sahiptir . Ve böylece bunu yapabilirsiniz wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai- ki bu da benzer bir şey yapar
Kullanırken xdotool, yalnızca bir komut kullanarak belirli bir uygulama veya sınıf için tüm pencereleri öne getirmek zor görünüyor . forKabuk düzeyinde bir döngü içine sarılarak daha iyi sonuçlar elde ediyorum . Bash Kullanımı:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Birkaç açıklama:
xdotool searchmodeli (burada Firefox) pencere adı, sınıf ve sınıf adında arar . Eğer arama alanını kısıtlamak istiyorsanız, ilgili kullanabilir --class, --nameya da --classnameseçenekleri.--desktop 0Seçenek ilk masaüstüne arama sınırlar. Bu XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1), bazı yorumlarda bahsedilenlerden kaçınmak için bir geçici çözüm gibi görünüyor .xdotoolproje 2015'ten beri durmaktadır. Hala seçim aracım olmaya devam ediyor. Kişisel nedenlerden ötürü, Jordan Sissel (orijinal yazar) geçmişte olduğu kadar aktif değil, bu yüzden projeye katkıda bulunmaktan çekinmeyin.
xdotool windowraisepencereyi öne getirir, ancak pencereye odaklanmaz veya pencereyle masaüstüne geçmez. bunun yerine,windowactivateüçünü de yapacak.