Je pense que xdotool getactivewindowc'est ce que vous voulez - l'avez-vous essayé?
Il imprime l'id de la fenêtre (à partir de la pile de fenêtres) s'il n'y a pas d'autres sous-commandes xdotool sur la ligne de commande.
Par xdotool getactivewindow getwindowpidexemple, getactivewindowplace l'id sur la pile de fenêtres et getwindowpidutilise cet id pour interroger le PID. Notez que l'exécution de cette commande dans le terminal renvoie toujours l'ID de la fenêtre du terminal, car elle est active. Afin d'obtenir l'ID d'une autre fenêtre, essayez de sleep 2s && xdotool getactivewindowsélectionner la fenêtre d'intérêt dans l'intervalle de temps de deux secondes.
Il y a une complication lors de l'utilisation xdotoolavec d'autres outils pour la gestion des fenêtres:
Alors que la xdotoolsortie utilise des nombres décimaux pour les identifiants windwo, la plupart des autres outils utilisent des nombres hexadécimaux pour la sortie (ils prennent généralement en charge les deux pour l'entrée).
Par exemple, si vous trouvez une fenêtre avec xdotool getactivewindow, vous ne trouverez pas le résultat dans la sortie de xwininfo -root -tree, qui répertorie toutes les fenêtres. Il doit d'abord être converti en un nombre hexadécimal:
J'ai essayé la xdotool getactivewindowcommande et le problème est qu'elle n'imprime pas le résultat dans le terminal. Il enregistre le résultat dans la pile de fenêtres. Cette commande imprime un certain nombre mais ce n'est pas l'ID de fenêtre (par exemple 35651588)
Mariusz
Pourquoi pensez-vous que 35651588 n'est pas l'ID de la fenêtre?
Volker Siegel
Oui, je pense que 35651588 n'est pas l'identifiant de la fenêtre. Vous pouvez voir windows id par la commande xwininfo, par exemple xwininfo -root -tree- cette commande imprime toutes les fenêtres et les fenêtres ont un autre type de numérotation.
Mariusz
1
xwininfoaffiche l'id de la fenêtre sous forme de nombres hexadécimaux et xdotool affiche les nombres décimaux, mais c'est la même chose.
Volker Siegel
tu as raison. 35651588 = 0x2200004. xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
xdotool getactivewindow
commande et le problème est qu'elle n'imprime pas le résultat dans le terminal. Il enregistre le résultat dans la pile de fenêtres. Cette commande imprime un certain nombre mais ce n'est pas l'ID de fenêtre (par exemple 35651588)xwininfo -root -tree
- cette commande imprime toutes les fenêtres et les fenêtres ont un autre type de numérotation.xwininfo
affiche l'id de la fenêtre sous forme de nombres hexadécimaux et xdotool affiche les nombres décimaux, mais c'est la même chose.xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
Cette commande fonctionne pour moi
xdotool version 3.20160805.1
la source
xdotool getactivewindow key F5
devrait produire le même résultat