wmctrl
Plus d'infos
- Créateur
- Tomáš Stýblo
- Année
- 2003
- Type
- Outil en ligne de commande
- Licence
- GPL
L'outil en ligne de commande qui pilote tout gestionnaire de fenêtres conforme à EWMH — lister les fenêtres, en activer une, maximiser, changer de bureau — en envoyant exactement les messages qu'enverrait un paginateur.
Une fois qu'EWMH avait fixé la façon dont barres des tâches et paginateurs parlent au gestionnaire de fenêtres, il devenait possible d'écrire un programme qui le fasse depuis un script. Tomáš Stýblo a publié wmctrl en 2003 ; la version 1.07 de 2005 fut la dernière et reste celle que les distributions empaquettent, avec quelques correctifs. wmctrl -l liste chaque fenêtre avec son identifiant, son bureau et son titre, -a "Firefox" active et fait monter la première fenêtre qui correspond, -s 2 passe au troisième bureau, -d liste les bureaux avec leurs zones de travail, et -r fenêtre -b add,maximized_vert,maximized_horz modifie _NET_WM_STATE exactement comme le bouton du gestionnaire de fenêtres. -m révèle quel gestionnaire de fenêtres tourne, d'après _NET_SUPPORTING_WM_CHECK.
L'outil ne touche jamais directement aux fenêtres. Tout passe par des ClientMessages envoyés à la fenêtre racine, si bien que le gestionnaire de fenêtres conserve sa politique ; les activations sont envoyées avec le champ source réglé sur « pager », ce qui fait que la protection contre le vol de focus les laisse passer comme une décision de l'utilisateur. Cela fait de wmctrl le choix terne mais fiable pour les scripts qui disposent les fenêtres à l'ouverture de session, tandis que xdotool prend le relais là où EWMH s'arrête et où XTEST est nécessaire. Sous Wayland, rien de tout cela ne fonctionne, puisqu'aucun client n'a le droit de voir les fenêtres des autres, et chaque compositeur a sa propre commande.