Antworten:
Über die Befehlszeile:
killall file-roller
Sie können alt + f4 ausführen, dies müssen Sie jedoch für jeden geöffneten Archivmanager tun.
killall file-roller
: D
Ein anderer Ansatz wäre die Verwendung des wmctrl
Dienstprogramms (Windows Manager-Steuerelement). Dies kann verwendet werden, um den Fenstermanager anzuweisen, so zu tun, als hätten Sie auf die Schaltfläche zum Schließen geklickt. Dies vermeidet die potenziell hartnäckige Natur von killall
; Beispielsweise werden einige Programme mit einem nicht gespeicherten Dokument sofort beendet, wenn sie beendet werden (sogar sanft). Wenn Sie auf die Schaltfläche "Schließen" klicken, wird die Meldung "Möchten Sie speichern?" angezeigt. Prompt.
Der grundlegende Befehl lautet wmctrl -c WINDOWTITLE
also in diesem Fall wmctrl -c "Archive Manager"
(vorausgesetzt, es gibt keine geöffnete Datei: das ändert den Titel). Leider wird immer nur einer geschlossen, sodass wir mehr tun müssen, um alle zu schließen.
wmctrl
Gibt den Erfolg zurück, wenn eine Übereinstimmung gefunden wird, sodass wir eine Schleife ausführen können, bis sie fehlschlägt:
while wmctrl -c "Archive Manager"; do sleep 0.1; done
Dadurch wird immer das erste Fenster ausgewählt, das gefunden wird. Daher müssen wir eine Weile schlafen, um zu vermeiden, dass kontinuierlich ein Strom von Schließbefehlen an das erste Fenster gesendet wird, das bereits geschlossen ist. Dies kann einen Fehler verursachen, der die Schleife stoppt.
Dies ist einfach und funktioniert normalerweise, aber eine bestimmte Zeit zu schlafen und zu hoffen, dass sich ein Fenster schließt, bevor wir es erneut versuchen, ist ein unordentlicher und langsamer Weg, um den Fehler zu vermeiden. Was wir wirklich tun möchten, ist, sofort eine Abschlussnachricht an jedes passende Fenster zu senden.
Wir können alle offenen Fenster mit finden wmctrl -l
. Hier wird eine numerische Fenster-ID aufgelistet, mit der wir jedes Fenster einzeln identifizieren können, auch wenn alle denselben Titel haben. Dann müssen wir nur nach den passenden Fenstern (dem grep
Befehl) filtern, nur die Fenster-ID (den cut
Befehl) herausziehen und wmctrl -i -c
für jedes aufrufen . Das -i
wird benötigt, um mit der Fenster-ID anstelle des Fenstertitels übereinzustimmen.
for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
wmctrl -i -c $w
done
Ein bisschen kompliziert, wenn Sie nur eingeben, wenn eine Katze auf Ihre Tastatur tritt, aber hoffentlich eine praktische Technik, um sie in Ihrer Skript-Toolbox zu behalten.
Sie können die Tastenkombination Ctrl+ verwenden, mit der Qalle geöffneten Fenster von Archive Manager geschlossen werden.
Die Verknüpfung Ctrl+ Qist unter Ubuntu (und vielen anderen Distributionen) üblich. Es funktioniert genauso mit den meisten Anwendungen, die ich bisher verwendet habe. Das heißt, es werden alle Fenster einer laufenden Anwendung geschlossen.
Ctrl+Q
tatsächlich der Fall ist. Während das Quit
Menü alle geöffneten Fenster von Archive Manager geschlossen hat, hat die Tastenkombination nicht dasselbe getan (zumindest in 14.04).
kill cat
Aktion, die ich vorschlagen wollte.