Gnome (Ubuntu): Terminalden bir komut satırı kullanarak bir program penceresini öne nasıl getirebilirim?


14

Düzinelerce açık Windows ile belirli bir çalışma ortamım var. Programlı olarak veya komut satırını kullanarak bilinen bir ad / başlık içeren bir pencereyi nasıl öne getirebilirim?

Yanıtlar:


12

Kullanıyordum wmctrl -a <name>, bu iyi çalışıyor, ancak son zamanlarda xdotool, örneğin:

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

Başka birçok özelliği de var.

Yüklemek:

sudo apt-get install xdotool


5
xdotool windowraisepencereyi öne getirir, ancak pencereye odaklanmaz veya pencereyle masaüstüne geçmez. bunun yerine, windowactivateüçünü de yapacak.
jozxyqk

6

Ş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


4
Köşeli parantezlere ve ters tırnaklara gerek yok:if ! wmctrl -l | grep -q "$WINTITLE"
sonraki duyuruya kadar duraklatıldı.

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
vlad-ardelean

0

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:

  • Varsayılan olarak, 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 .
  • Bu yazı yazıldığı zaman, 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.


Bu, AskUbuntu'da gönderdiğim bir yanıtın kopyası , ancak Linux-lezzetten bağımsız olduğunu düşünüyorum, bu yüzden burada da yararlı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.