Ответы:
Из командной строки:
killall file-roller
Вы можете сделать alt + f4, но вам нужно сделать это для каждого менеджера архива, который был открыт.
killall file-roller
: D
Другой подход - использовать wmctrl
утилиту (элемент управления Window Manager). Это может быть использовано, чтобы сообщить оконному менеджеру, что вы притворяетесь, что нажали кнопку закрытия. Это позволяет избежать потенциально сурового характера killall
; например, некоторые программы с несохраненным документом сразу же завершают свою работу после их уничтожения (даже осторожно), а при нажатии кнопки закрытия появляется сообщение «Хотите сохранить?» незамедлительный.
Основная команда wmctrl -c WINDOWTITLE
, так что в этом случае wmctrl -c "Archive Manager"
(при условии, что у нее нет открытого файла: это меняет заголовок). К сожалению, он закрывается только по одному, поэтому нам нужно сделать больше, чтобы закрыть все из них.
wmctrl
возвращает успех, если находит совпадение, поэтому мы можем зацикливаться, пока он не завершится неудачей:
while wmctrl -c "Archive Manager"; do sleep 0.1; done
При этом всегда выбирается первое найденное окно, поэтому нам нужно немного поспать, чтобы избежать непрерывной отправки потока команд закрытия в первое окно, которое уже занято закрытием - это может вызвать ошибку, которая останавливает цикл.
Это просто и обычно работает, но спать определенное количество времени и надеяться, что окно закрывается, прежде чем мы попробуем снова, - грязный и медленный способ избежать ошибки. Что мы действительно хотим сделать, так это немедленно отправить одно закрытое сообщение в каждое соответствующее окно.
Мы можем найти все открытые окна с wmctrl -l
. В этом списке указан числовой идентификатор окна, который мы можем использовать для индивидуальной идентификации каждого окна, даже если все они имеют одинаковый заголовок. Затем нам нужно отфильтровать только соответствующие окна ( grep
команда), извлечь только идентификатор окна ( cut
команда) и вызвать wmctrl -i -c
каждое из них. -i
Необходимо , чтобы соответствовать идентификатор окна вместо заголовка окна.
for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
wmctrl -i -c $w
done
Немного сложнее просто вводить текст, когда кошка наступает на клавиатуру, но, надеюсь, это полезная техника для хранения в вашем наборе сценариев.
Вы можете использовать сочетание клавиш Ctrl+, Qкоторое закроет все открытые окна диспетчера архивов.
Ctrl+ QЯрлык часто встречается на Ubuntu (и много других распределений, а). Он работает так же с большинством приложений, которые я использовал до сих пор. То есть он закроет все окна работающего приложения.
Ctrl+Q
самом деле это делает. В то время как Quit
меню закрывало все открытые окна диспетчера архивов, сочетание клавиш не делало то же самое (по крайней мере, в 14.04).
kill cat
действие, которое я собирался предложить.