Perintah Shell untuk membawa jendela program di depan yang lain?

12

Apakah ada perintah shell untuk membawa program yang sudah mulai di gnome di depan yang lain.

yaitu:

Gedit dan Nautilus sudah dimulai. Nautilus di latar belakang dan Gedit di latar depan.

Bagaimana cara membawa Nautilus di depan dengan perintah shell?

NES
sumber
1
Lainnya: superuser.com/questions/183680/…
karthick87

Jawaban:

14

catatan:

  • Informasi lebih lanjut tentang xdotool dapat ditemukan di sini .
karthick87
sumber
Yakin mengedit posting Anda sama seperti saya menyusun posting saya ... :()
frabjous
Anda dapat menemukan nama jendela Anda dengan wmctrl -l Namanya adalah teks setelah tanda hubung terakhir: <window ID> <desktop ID> <client machine> <window title>
jorfus
8

Pilihan lain adalah xdotool :

xdotool search --class Nautilus windowactivate

luar biasa
sumber
2
Gagal bagi saya denganXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino
Mungkin bug di sini - menurut pengalaman saya --classname atau --name (jika diketahui) terkadang bekerja ketika --class tidak.
frabjous
Dalam kasus saya adalah mungkin untuk menaikkan jendela menggunakan ID dari xwininfodan mengeluarkan beberapa xdotoolperintah berbeda tambahan (yang saya tidak ingat lagi). Ketika saya mencoba untuk mengotomatisasi itu (untuk menghilangkan xwininfo) saya mendapat artefak visual karena jika tidak ada jendela tersembunyi yang dipilih juga. Saya hanya menemukan tidak ada cara umum untuk mengatasi windows sewenang-wenang dengan benar. Setelah beralih ke wmctrl -asemuanya segera bekerja dengan sempurna di luar kotak tanpa tweaker lebih lanjut. Harap dicatat bahwa saya suka xdotool, tetapi tampaknya sulit untuk menaikkan jendela yang tepat dengannya.
Tino
2

Saat menggunakan xdotool, tampaknya sulit untuk membawa ke depan semua jendela untuk aplikasi atau kelas yang diberikan hanya dengan satu perintah. Saya akhirnya memiliki hasil yang lebih baik dengan membungkusnya dalam satu forlingkaran di tingkat shell. Menggunakan Bash:

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

Beberapa komentar:

  • Secara default, xdotool searchakan mencari pola (di sini Firefox) di nama jendela, kelas, dan nama kelas. Jika Anda ingin membatasi ruang pencarian Anda, gunakan opsi yang relevan --class, --nameatau --classname.
  • The --desktop 0pilihan membatasi pencarian ke desktop pertama. Ini tampaknya menjadi solusi untuk menghindari yang XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)disebutkan dalam beberapa komentar.
  • Pada saat penulisan ini, xdotoolproyek ini macet sejak tahun 2015. Ini masih menjadi alat pilihan saya. Untuk alasan pribadi, Jordan Sissel (penulis asli) tidak seaktif dia, jadi jangan ragu untuk berkontribusi pada proyek.
Sylvain Leroux
sumber