Commande shell pour amener une fenêtre de programme devant une autre?


Réponses:


14
  • Installer wmctrl Installer wmctrl

    wmctrl -a <name>

  • Vous pouvez également utiliser xdotool Installer xdotool

Remarque:

  • Vous trouverez plus d'informations sur xdotool ici .

Bien sûr, éditez votre message comme je compose le mien ... :()
frabjous

Vous pouvez trouver le nom de votre fenêtre avec wmctrl -l Le nom est le texte après le dernier tiret: <ID de fenêtre> <ID de bureau> <machine client> <titre de fenêtre>
jorfus

8

Une autre option est xdotool :

xdotool search --class Nautilus windowactivate


2
Échoue pour moi avecXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino

Probablement, le bogue ici - d'après mon expérience --classname ou --name (s'il est connu) fonctionne parfois lorsque --class ne fonctionne pas.
frabjous

Dans mon cas, il était possible d'ouvrir une fenêtre en utilisant l'ID de xwininfoet en émettant plusieurs xdotoolcommandes différentes supplémentaires (dont je ne me souviens plus). Lorsque j'ai essayé d'automatiser cela (pour xwininfom'en débarrasser ), j'ai eu des artefacts visuels en raison de fenêtres autrement cachées qui ont également été sélectionnées. Je n'ai simplement trouvé aucun moyen générique de traiter correctement les fenêtres arbitraires. Après être passé à wmctrl -atout, il a immédiatement fonctionné sans problème, sans aucun ajustement supplémentaire. Veuillez noter que j'aime bien xdotool, mais il semble difficile de soulever juste la bonne fenêtre avec.
Tino

2

Lors de l'utilisation xdotool, il semble difficile de mettre en avant toutes les fenêtres d'une application ou d'une classe donnée en utilisant une seule commande. Je finis par avoir de meilleurs résultats en l'enveloppant dans une forboucle au niveau du shell. Utilisation de Bash:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

Quelques remarques:

  • Par défaut, xdotool searchrecherchera le modèle (ici Firefox) dans le nom de la fenêtre, la classe et le nom de classe. Si vous souhaitez restreindre votre espace de recherche, utilisez les pertinentes --class, --nameou des --classnameoptions.
  • L' --desktop 0option limite la recherche au premier bureau. Cela semble être une solution de contournement pour éviter ce qui est XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)mentionné dans certains commentaires.
  • Au moment d'écrire ces lignes, le xdotoolprojet est au point mort depuis 2015. Il reste cependant mon outil de choix. Pour des raisons personnelles, Jordan Sissel (l'auteur original) n'est pas aussi actif que lui, alors n'hésitez pas à contribuer au projet.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.