Щоб скласти команду, яка знаходить id
останнє вікно, створене Firefox
(і закрити його), вам потрібно wmctrl
буде встановити:
sudo apt-get install wmctrl
Команда
Потім скористайтеся командою:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Пояснення:
wmctrl -l
перераховує всі вікна, але важливою властивістю команди є те, що вона перераховує вікна в тому порядку, в якому вони були створені .
Тому:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
буде:
список усіх вікон:
wmctrl -l
знайдіть ті (рядки) у назві "Mozilla Firefox":
grep 'Mozilla Firefox'
знайдіть останню (яка також є останньою створеною):
tail -1
витягніть перший рядок у рядку (який є вікном -id):
awk '{ print $1 }'
Команда:
wmctrl -ic
то знищить останнє вікно Firefox своїм id (витончено).
Або ще надійніше:
Незважаючи на те, що вищевказана команда працює добре практично у всіх випадках, є невелика ймовірність зіткнення імен, якщо, наприклад, існує інше вікно з назвою "Mozilla Firefox", але не вікно Firefox
(малоймовірно, але все ж).
Що повинно працювати «водонепроникний» , тому для ідентифікації вікна в списку вікон ( з допомогою wmctrl -lp
) з допомогою ПІД - регулятора з firefox
, замість рядка в імені вікна:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Як ви бачите, у цій команді
wmctrl -l | grep 'Mozilla Firefox'
створюючи рядки, що містять Mozilla Firefox, замінюється наступним:
wmctrl -lp | grep "$(pgrep firefox)"
створюючи лінії, що містять під Firefox (як вихід pgrep firefox
)