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 l’alias cfct défini dans une réponse à une question connexe , mais cela n’a pas fonctionné.

Pour faire une commande qui trouve l’ id de la dernière fenêtre créée par Firefox (et pour la fermer), vous aurez besoin de wmctrl pour être installé:

 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 leur ordre de création .

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 y a une petite chance pour des conflits de noms, par exemple si 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 “waterproof” est donc d’identifier les fenêtres dans la liste de fenêtres (à l’aide de 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)" 

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

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

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

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

 $ sudo apt-get install wmctrl xdotool 

Voir aussi cette réponse: Fermez l’onglet actuel firefox à l’aide d’un terminal .

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


Pour tous les raccourcis, voir Raccourcis clavier Firefox .