Как закрыть новое окно Firefox из Терминала?

У меня есть несколько экземпляров Firefox, работающих в Ubuntu 14.04. Как я могу закрыть последнее открытое окно / экземпляр из Терминала?

Я попытался использовать псевдоним cfct, определенный в ответе на связанный вопрос, но это не сработало.

2 ответа

Решение

Чтобы сделать команду, которая находит 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 по его идентификатору (изящно).

Или даже более надежно:

Хотя приведенная выше команда работает хорошо практически во всех случаях, существует небольшая вероятность конфликта имен, если, например, существует другое окно с именем "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)"

производя строки, содержащие pid firefox (в качестве вывода pgrep firefox)

Чтобы закрыть окно (также со многими открытыми вкладками), используйте эту команду:

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

Обратите внимание, что wmctrl а также xdotool должен быть установлен:

$ sudo apt-get install wmctrl xdotool

Смотрите также ответ: закройте текущую вкладку Firefox с помощью терминала.

Мой ответ немного изменен, потому что Ctrl+Shift+w закрывает окно Firefox.


Для всех ярлыков см. Сочетания клавиш Firefox.

Другие вопросы по тегам