Bir programın tüm örneklerini anında nasıl kapatabilirim?


11

Kız arkadaşımın kedisi dizüstü bilgisayarımda yürüyordu ve onu fark etmedim. Kontrol etmek için döndüğümde 32 "Arşiv Yöneticisi" sekmem olduğunu görüyorum. Hepsini anında kapatabilirim, sanki hepsinde Alt+ kullanıyormuş gibi F4.

Yanıtlar:


14

Komut satırından:

killall file-roller

Alt + f4 yapabilirsiniz, ancak açılan her arşiv yöneticisi için bunu yapmanız gerekir.


21
Bazıları "killall" komutunun biraz ağır olduğunu iddia etse de, seninkinin kill catönerebileceğim eylemden çok daha insancıl bir çözüm olduğunu.
Nick Weinberg

Hepsini durdurmanın daha kolay bir yolu olduğunu sanmıyorum. Çok sayıda alt + f4 yapardı ama bu soru değildi ;-)
Rinzwind

5
@NickWeinberg Bunu takdir ediyorum :)
kedi

5
Bu soruyu okudum ve yanlış cevapladım. Ben kedinin her şeyi kapatmış olduğunu düşündüm ve bu OP kedinin nasıl yaptığını bilmiyordu. Kedinin yazabildiğine şaşırdım killall file-roller: D
Viktor Mellgren

1
@ViktorMellgren beni ekranımda kahve dökmeyi bırakmayı bırak
Rinzwind

3

Başka bir yaklaşım wmctrlyardımcı programı kullanmak olacaktır (Window Manager kontrolü). Bu, pencere yöneticisine kapat düğmesini tıklamış gibi davranmasını söylemek için kullanılabilir. Bu, potansiyel olarak ağır elli doğayı önler killall; örneğin, kaydedilmemiş bir belgeye sahip bazı programlar, öldürüldüklerinde (hatta yavaşça) hemen çıkarken, kapat düğmesini tıkladığınızda "Kaydetmek istiyor musunuz?" Komut istemi.

Temel komut, wmctrl -c WINDOWTITLEbu durumda wmctrl -c "Archive Manager"( bu durumda açık bir dosya olmadığı varsayılarak: başlığı değiştirir). Ne yazık ki, her seferinde sadece bir tane kapanıyor, bu yüzden hepsini kapatmak için daha fazlasını yapmamız gerekiyor.

wmctrl bir eşleşme bulursa başarı döndürür, böylece başarısız olana kadar döngü yapabiliriz:

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

Bu her zaman bulduğu ilk pencereyi seçer, bu yüzden zaten meşgul olan ilk pencereye sürekli bir yakın komut akışı göndermekten kaçınmak için biraz uyumanız gerekir - bu da döngüyü durduran bir hataya neden olabilir.

Bu basit ve genellikle işe yarıyor, ancak belirli bir süre uyumak ve tekrar denemeden önce bir pencerenin kapanmasını ummak hatayı önlemek için dağınık ve yavaş bir yoldur. Gerçekten yapmak istediğimiz, eşleşen her pencereye hemen bir yakın mesaj göndermektir.

Tüm açık pencereleri bulabiliriz wmctrl -l. Bu, hepsinin başlığı aynı olsa bile, her pencereyi ayrı ayrı tanımlamak için kullanabileceğimiz sayısal bir pencere kimliğini listeler. Sonra sadece eşleşen pencerelere ( grepkomut) filtre uygulamalı , sadece pencere kimliğini ( cutkomut) çıkarmalı ve wmctrl -i -cher birini çağırmalıyız . -iPencere kimliği yerine pencere başlığını maç için gereklidir.

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

Bir kedi klavyenizden her bastığında yazmak için biraz karmaşık, ancak umarım komut dosyası araç kutunuzda tutmak için kullanışlı bir tekniktir.


2
Yani kedinin kurtarmaya değer bir şey yazmasını mı bekliyorsunuz?
Rinzwind

0

Arşiv Yöneticisi'nin tüm açık pencerelerini kapatacak Ctrl+ Qklavye kısayolunu kullanabilirsiniz .


Ctrl+ QKısayol Ubuntu (ve de diğer dağılımlar sürü) yaygındır. Şimdiye kadar kullandığım uygulamaların çoğunda aynı şekilde çalışıyor. Yani, çalışan bir uygulamanın tüm pencerelerini kapatır.


Oyumu geri aldım, çünkü bunu Ctrl+Qgerçekten doğruladı . İken Quitmenü yakın tüm Arşiv Müdürü pencereler açtı mı, kısayol tuşu (en azından 14.04 olarak) aynı yapmadım.
clearkimura

1
@clearkimura Gnome kullandığımdan mı yoksa Ubuntu sürümünden mi kaynaklandığını doğrulayamıyorum, ancak benim için Archive Manager 3.22.3 sürümünü kullanan Ubuntu 17.04 (gnome ile) üzerinde çalışıyor
Dan
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.