Як закрити нове вікно Firefox з терміналу?


10

У мене є кілька примірників запуску Firefox в Ubuntu 14.04. Як я можу закрити останнє відкрите вікно / примірник із Терміналу?

Я спробував використовувати псевдонім cfct, визначений у відповіді на відповідне запитання , але це не вийшло.


@chaos Я припускаю, що ОП означає вікна, а не вкладки
Яків Влійм

@JacobVlijm ця відповідь також закриває вікна і здається мені єдиним рішенням. Оскільки Firefox виконує лише один процес, не залежно від кількості відкритих вікон, вам потрібно це рішення у дублікатах. killall firefoxбуде SIGTERMвесь процес, а не лише вікно.
хаос

@chaos Я не згоден, дуже добре, я не вдома, подивіться, чи я досить швидкий, щоб дати відповідь у перерві :)
Jacob Vlijm

1
@chaos Дублікати - це коли питання однакові, а не відповіді. Деякі перекриття неминучі.
Сет

Що таке cfct? Пошуки в основному повертають саме це питання.
TRiG

Відповіді:


13

Щоб скласти команду, яка знаходить 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)


2

Щоб закрити вікно (також із багатьма відкритими вкладками), використовуйте цю команду:

wmctrl -a firefox; xdotool key Ctrl+Shift+w

Зауважте , що це wmctrlі xdotoolпотрібно встановити:

$ sudo apt-get install wmctrl xdotool

Дивіться також цю відповідь: Закрийте поточну Firefox вкладки за допомогою терміналу .

Моя відповідь трохи змінена, тому що Ctrl+ Shift+ wзакриває вікно firefox.


Про всі комбінації клавіш див. Ярлики клавіатури Firefox .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.