web-dev-qa-db-fra.com

Comment fermer une nouvelle fenêtre Firefox à partir du terminal?

J'ai plusieurs instances de Firefox sous Ubuntu 14.04. Comment puis-je fermer la dernière fenêtre/instance ouverte à partir du terminal?

J’ai essayé d’utiliser alias cfct défini dans une réponse à une question connexe , mais cela n’a pas fonctionné.

8
sgu

Pour créer une commande qui trouve la id de la dernière fenêtre créée par Firefox (et pour la fermer), vous devez installer wmctrl:

Sudo apt-get install wmctrl

La commande

Ensuite, utilisez la commande:

wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"


Explication:

wmctrl -l

répertorie toutes les fenêtres, mais une propriété importante de la commande est qu’elle répertorie les fenêtres dans l’ordre dans lequel elles ont été créées ).

Donc:

wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'

volonté:

  • lister toutes les fenêtres:

    wmctrl -l
    
  • trouvez ceux (les lignes) avec 'Mozilla Firefox' dans leur nom:

    grep 'Mozilla Firefox'
    
  • trouvez le dernier (qui est aussi le dernier créé):

    tail -1
    
  • extraire la première chaîne de la ligne (qui est la fenêtre -id):

    awk '{ print $1 }'
    

La commande:

wmctrl -ic

va alors tuer la dernière fenêtre de Firefox par son identifiant (gracefuly).

Ou encore plus fiable:

Bien que la commande ci-dessus fonctionne bien dans pratiquement tous les cas, il est une petite chance d’être confronté à un nom, par exemple. une autre fenêtre existe avec "Mozilla Firefox" dans son nom, mais pas une fenêtre de Firefox (peu probable, mais quand même).

Ce qui devrait fonctionner "imperméable" est donc d'identifier les fenêtres dans la liste des fenêtres (en utilisant wmctrl -lp) par le pid de firefox, au lieu de la chaîne dans le nom de la fenêtre:

wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"

Comme vous pouvez le voir, dans cette commande,

wmctrl -l | grep 'Mozilla Firefox'

produisant les lignes contenant 'Mozilla Firefox', est remplacé par:

wmctrl -lp | grep "$(pgrep firefox)"

produisant les lignes contenant le pid de firefox (comme sortie de pgrep firefox)

13
Jacob Vlijm

Pour fermer une fenêtre (également avec de nombreux onglets ouverts), utilisez cette commande:

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

Notez que , que wmctrl et xdotool doivent être installés:

$ Sudo apt-get install wmctrl xdotool

Voir aussi cette réponse: fermez l'onglet Firefox en utilisant un terminal .

Ma réponse est un peu modifiée, car Ctrl+Shift+w ferme une fenêtre firefox.


Pour tous les raccourcis, voir raccourcis clavier Firefox .

1
chaos