#1 Le 15/04/2019, à 21:27
- abecidofugy
[Résolu] Fermer plusieurs programmes en ligne de commande
Salut,
Je suis tombé sur un fil du forum parlant de wmctrl pour fermer un programme
Je fais donc un :
wmctrl -c firefox dolphin amarok kontact soundkonverter kate
Mais seul Firefox se ferme.
Mon terminal est en zsh, mais je ne pense pas que ça vienne de ça comme j’ai mis la commande dans un script bash.
J’ai consulté le man, mais je ne trouve rien dedans… Du coup je me demande si cette commande est celle qu’il me faut… ?
Merci de votre attention.
Dernière modification par abecidofugy (Le 15/04/2019, à 22:11)
KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…
Hors ligne
#2 Le 15/04/2019, à 21:53
- melixgaro
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
Salut,
Ben peut-être que ça n'accepte qu'une seule fenêtre à la fois. Tu dois boucler sur tes programmes et appliquer wmctrl à chacun.
for window in firefox truc muche
do
wmctrl -c "${window}"
done
PS : Je suis surpris que ça marche avec le nom du programme directement. Ne faut-il pas passer l'identifiant de la fenêtre à wmctrl ?
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#3 Le 15/04/2019, à 22:11
- abecidofugy
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
Merci, ça marche avec ta boucle
KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…
Hors ligne
#4 Le 15/04/2019, à 23:23
- kamaris
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
Je suis surpris que ça marche avec le nom du programme directement. Ne faut-il pas passer l'identifiant de la fenêtre à wmctrl ?
D'après la page de manuel, il suffit que le nom de la fenêtre (tel que le donne wmctrl -l) contienne le mot que tu lui donnes dans wmctrl -c mot, sans tenir compte de la casse.
Par contre, c'est plutôt la commande kill qu'on utilise pour terminer les programmes en général.
Hors ligne
#5 Le 16/04/2019, à 00:06
- Watael
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
en bash :
xargs -n1 wmctrl -c <<<"firefox dolphin amarok kontact soundkonverter kate"
?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 16/04/2019, à 01:03
- melixgaro
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
D'après la page de manuel, il suffit que le nom de la fenêtre (tel que le donne wmctrl -l) contienne le mot que tu lui donnes dans wmctrl -c mot, sans tenir compte de la casse.
Par contre, c'est plutôt la commande kill qu'on utilise pour terminer les programmes en général.
ah donc si tu es avec Firefox sur une page à propos de l'éditeur kate, en faisant
wmctrl -c kate
tu fermes firefox ?
Sinon, pour une appli graphique, wmctrl peut permettre une fermeture plus propre que kill -TERM.
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#7 Le 16/04/2019, à 07:00
- serged
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
Par contre, c'est plutôt la commande kill qu'on utilise pour terminer les programmes en général.
kill (et pkill, killall...) tue la tâche, alors que wmctrl ferme la fenêtre :
Par exemple un :
pkill firefox
Va fermer firefox "salement", alors que
wmctrl -c firefox
va le faire proprement (FF posera la question "peut-on fermer tous les onglets" par exemple).
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#8 Le 16/04/2019, à 07:28
- abecidofugy
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
en bash :
xargs -n1 wmctrl -c <<<"firefox dolphin amarok kontact soundkonverter kate"
?
Oui ça marche aussi. Merci.
KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…
Hors ligne
#9 Le 16/04/2019, à 07:55
- kamaris
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
ah donc si tu es avec Firefox sur une page à propos de l'éditeur kate, en faisant
wmctrl -c kate
tu fermes firefox ?
Ben oui, voilà ce que dit man wmctrl :
<WIN> : This argument specifies a window that is the target of an action. By default the argument is treated as if were a string, and windows are examined until one is found with a title the contains the specified string as a substring. The substring matching is done in a case insensitive manner.
Donc si tu as kate d'ouvert et que wmctrl tombe dessus avant Firefox, alors il fermera kate, mais si kate n'est pas ouvert ou que wmctrl tombe dessus après, il fermera Firefox. Par exemple moi, après une recherche « kate » dans DuckDuckGo j'ai :
$ wmctrl -l
0x02e00010 1 mon_ordi kate at DuckDuckGo - Mozilla Firefox
Et si je fais wmctrl -c KaTe, il essaie bien de fermer Firefox (mais il ne le fait car plusieurs onglets ).
Hors ligne
#10 Le 16/04/2019, à 08:00
- kamaris
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
kill (et pkill, killall...) tue la tâche, alors que wmctrl ferme la fenêtre
Oui, précisément, or @abecidofugy disait :
Je suis tombé sur un fil du forum parlant de wmctrl pour fermer un programme
D'où ma remarque.
Hors ligne
#11 Le 16/04/2019, à 10:47
- melixgaro
Re : [Résolu] Fermer plusieurs programmes en ligne de commande
merci kamaris d'avoir testé, j'avais la flemme hier soir vue l'heure…
Linux depuis ~2007. Xubuntu seulement.
Hors ligne