Bagaimana cara menutup semua instance program secara instan?

11

Kucing pacar saya sedang berjalan di laptop saya, dan saya tidak memperhatikannya. Ketika saya menoleh untuk memeriksa, saya melihat bahwa saya memiliki 32 tab "Manajer Arsip". Bagaimana saya bisa menutup semuanya secara instan, seolah-olah menggunakan Alt+ F4pada semuanya sekaligus.

sticsk
sumber

Jawaban:

14

Dari baris perintah:

killall file-roller

Anda dapat melakukan alt + f4 tetapi Anda harus melakukannya untuk setiap pengelola arsip yang dibuka.

Rinzwind
sumber
21
Meskipun beberapa orang mungkin berpendapat bahwa perintah "killall" agak berat, Anda masih merupakan solusi yang jauh lebih manusiawi daripada kill cattindakan yang saya sarankan.
Nick Weinberg
Saya tidak berpikir ada cara yang lebih mudah untuk menghentikan mereka semua. Banyak alt + f4 akan melakukannya tetapi itu bukan pertanyaan ;-)
Rinzwind
5
@NickWeinberg Saya menghargainya :)
cat
5
Saya membaca pertanyaan ini dan menjawab salah. Saya pikir itu tentang kucing yang telah menutup semua, dan OP itu tidak tahu bagaimana kucing itu melakukannya. Saya kagum bahwa kucing itu dapat menulis killall file-roller: D
Viktor Mellgren
1
sialan @ViktorMellgren berhenti membuat saya menumpahkan kopi di layar saya
Rinzwind
3

Pendekatan lain adalah dengan menggunakan wmctrlutilitas (kontrol Window Manager). Ini dapat digunakan untuk memberi tahu pengelola jendela untuk berpura-pura Anda mengklik tombol tutup. Ini menghindari sifat tangan yang berpotensi berat killall; misalnya, beberapa program dengan dokumen yang belum disimpan akan segera keluar ketika mereka terbunuh (bahkan dengan lembut), sambil mengklik tombol tutup menampilkan "Anda ingin menyimpan?" cepat.

Perintah dasarnya adalah wmctrl -c WINDOWTITLE, jadi dalam kasus ini wmctrl -c "Archive Manager"(dengan asumsi ia tidak memiliki file terbuka: yang mengubah judul). Sayangnya, itu hanya menutup satu per satu, jadi kita perlu berbuat lebih banyak untuk menutup semuanya.

wmctrl mengembalikan kesuksesan jika menemukan kecocokan, sehingga kami dapat mengulang sampai gagal:

while wmctrl -c "Archive Manager"; do sleep 0.1; done

Ini selalu memilih jendela pertama yang ditemukannya, jadi kita perlu tidur sebentar untuk menghindari mengirimkan aliran perintah tutup ke jendela pertama yang sudah sibuk ditutup - yang dapat menyebabkan kesalahan yang menghentikan loop.

Ini sederhana dan biasanya berhasil, tetapi tidur dalam jumlah waktu yang ditentukan dan berharap jendela ditutup sebelum kita coba lagi adalah cara yang berantakan dan lambat untuk menghindari kesalahan. Yang ingin kami lakukan adalah segera mengirim satu pesan dekat ke setiap jendela yang cocok.

Kita dapat menemukan semua jendela yang terbuka wmctrl -l. Ini mencantumkan nomor jendela numerik yang dapat kita gunakan untuk mengidentifikasi setiap jendela satu per satu, walaupun mereka semua memiliki judul yang sama. Maka kita perlu memfilter hanya ke jendela yang cocok ( grepperintah), tarik keluar hanya id jendela ( cutperintah) dan memanggil wmctrl -i -cmasing-masing. The -idiperlukan untuk mencocokkan jendela id bukan judul jendela.

for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
    wmctrl -i -c $w
done

Agak rumit untuk hanya mengetik setiap kali kucing menginjak keyboard Anda, tetapi mudah-mudahan teknik praktis untuk disimpan dalam kotak alat skrip Anda.

Harun
sumber
2
Jadi Anda mengharapkan kucing untuk mengetik sesuatu yang layak disimpan?
Rinzwind
0

Anda dapat menggunakan Ctrl+ Qpintasan keyboard yang akan menutup semua jendela yang terbuka dari Archive Manager.


The Ctrl+ Qpintas umum pada Ubuntu (dan banyak distro lain juga). Ini berfungsi sama dengan sebagian besar aplikasi yang saya gunakan sejauh ini. Artinya, itu akan menutup semua jendela aplikasi yang sedang berjalan.

Dan
sumber
Batalkan suara saya, karena saya tidak dapat mengonfirmasi bahwa itu Ctrl+Qmemang benar. Sementara Quitmenu menutup semua jendela yang terbuka dari Archive Manager, tombol pintas tidak melakukan hal yang sama (setidaknya dalam 14,04).
clearkimura
1
@clearkimura Saya tidak dapat mengonfirmasi apakah itu karena saya menggunakan gnome, atau jika itu karena versi Ubuntu, tetapi berfungsi untuk saya di Ubuntu 17.04 (dengan gnome) yang menggunakan Archive Manager versi 3.22.3
Dan